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

Running MPI programs on a specified number of cores

我是 MPI 编程新手。我想 运行 我的 MPI 程序在指定数量的内核上运行。我通过键入 mpirun --help 引用了帮助选项。它给出了以下输出:

...

-c|-np|--np <arg0>       Number of processes to run

...

-n|--n <arg0>         Number of processes to run

...

然而,当我提到this website时,它在两个不同的地方指定了以下两个不同的东西:

简介中:

mpirun typically works like this

mpirun -np <number of processes> <program name and arguments>

在选项帮助菜单中:

-np <np>
    - specify the number of processors to run on 

在这种情况下,-np 是否指定 进程数到 运行 或处理器到 运行 on ?此外,如何在多台 PC 上 运行 我的 MPI 程序

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

使用-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 or openMPI)。