我是英特尔OneAPI的新手,但我安装了OneAPI软件包,当我运行mpirun -n .
如果设置N=3(例如),我将收到如下输出:
迭代#1..。迭代#1..。迭代#1..。迭代2..。迭代2..。迭代2..。
与其将我指定的核心划分到程序中,相反,它运行程序N次,并将每个进程划分为一个核心。我想知道如何设置这一点,以便N核被划分为1进程。
其他有用的信息是,我正在运行一个名为Quantum的程序,我使用NUMA2x18核双处理器运行这个程序,每个内核有2个线程。我最初安装英特尔OneAPI是因为我注意到,如果我用mpirun指定了72个内核,计算需求就会增加50-60倍,而不是只运行一个内核,并希望OneAPI能够解决这个问题。
发布于 2022-08-22 03:55:05
因此,使用-np的mpirun会像您看到的那样,说明要运行多少给定进程的实例。
你看过他们文件的这一部分吗?
https://www.quantum-espresso.org/Doc/user_guide/
我不知道您是如何构建它的,也不确定您正在使用哪些函数,但是如果您使用OpenMP构建了它们的多线程库,那么您应该在进程中为这些库调用获取N个线程。
否则,您将仅限于MPI并行代码中的MPI并行。
我不知道当你说你使用了所有的72种代码,而计算需求增加的时候,你会期望什么呢?这不是你想要的吗?你的目标是最终的结果完成得更快吗?在OpenMP或MPI中,您应该会看到计算资源使用量上升。
祝好运!
https://stackoverflow.com/questions/73431055
复制相似问题