我是MPI编程的新手。我想在指定数量的内核上运行我的MPI程序。我通过输入mpirun --help
来提及帮助选项。它给出了以下输出:
... -c|-np|--np <arg0> Number of processes to run ... -n|--n <arg0> Number of processes to run ...
但是,当我提到this website时,它在两个不同的地方指定了以下两个不同的东西:
在介绍中:
mpirun通常像这样工作
mpirun -np <number of processes> <program name and arguments>
并在选项帮助菜单中:
-np <np>
- specify the number of processors to run on
在这种情况下,-np
是否指定 要运行的进程数或要在 上运行的处理器?此外,如何在多台PC上运行我的MPI程序?
在这方面,我们将不胜感激。
答案 0 :(得分:3)
使用-np指定进程。作业运行的实际处理器数量取决于您配置MPI和计算机体系结构的方式。如果在本地计算机上正确设置了mpi,mpirun -np 2 ./a.out
将在两个处理器上运行两个进程。如果您的本地计算机有四个核心并且您运行mpirun -np 8 ./a.out
,则应该运行8个进程,每个处理器运行两个(如果核心允许多线程,这可能是明智的)。检查top
以查看实际使用的处理器数量。
要在多台PC上运行,您需要在主机文件中指定PC网络地址列表,并使用像hydra或mpd这样的流程管理器启动振铃,例如:适用于8台PC或节点mpd -n 8 -f ~/mpd.hosts
。您需要设置ssh以使用密钥身份验证并在每台PC上安装MPI。有许多好的教程可以引导您完成此过程(查看教程中您使用的MPI版本,可能是MPICH或openMPI)。