在指定数量的核心上运行MPI程序

时间:2015-03-30 16:34:50

标签: multithreading multiprocessing mpi

我是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程序

在这方面,我们将不胜感激。

1 个答案:

答案 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版本,可能是MPICHopenMPI)。

相关问题