没有选项的 mpirun 仅在一个进程上运行程序
mpirun without options runs a program on one process only
Here 我读了
If no value is provided for the number of copies to execute (i.e.,
neither the "-np" nor its synonyms are provided on the command line),
Open MPI will automatically execute a copy of the program on each
process slot (see below for description of a "process slot")
所以我希望
mpirun program
到 运行 程序的八个副本(实际上是一个简单的 hello world),因为我有一个 Intel® Core™ i7-2630QM CPU @ 2.00GHz × 8,但它没有' t: 它只是 运行 一个进程。
如果您没有指定要使用的进程数,mpirun
会尝试从(指定或)默认主机文件中获取它们。来自 corresponding section of the man page you linked:
If the hostfile does not provide slots information, a default of 1 is assumed.
由于您没有修改此文件(我假设),mpirun
将仅使用一个插槽。
在我的机器上,默认主机文件位于
/etc/openmpi-x86_64/openmpi-default-hostfile
i7-2630QM 是 4 核 CPU,每个核有两个硬件线程。对于计算密集型程序,您最好启动四个 MPI 进程而不是八个。
只需使用 mpiexec -n 4 ...
,因为您不需要主机文件来在执行 mpiexec
的同一节点上启动进程。
在远程节点上启动 MPI 进程时使用主机文件。如果您真的需要创建一个,请执行以下操作:
hostname slots=4 max_slots=8
(将hostname
替换为机器的主机名)
运行程序为
mpiexec -hostfile name_of_hostfile ...
如果您的 MPI 程序可以使用超线程,max_slots=8
允许您使用最多八个 MPI 进程超额订阅节点。您还可以将环境变量 OMPI_MCA_orte_default_hostfile
设置为主机文件的完整路径,而不是每次都显式地将其作为参数传递给 mpiexec
.
如果您碰巧使用分布式资源管理器,如 Torque、LSF、SGE 等,那么,如果正确编译,Open MPI 会与环境集成并自动从预留中构建主机和插槽列表。
Here 我读了
If no value is provided for the number of copies to execute (i.e., neither the "-np" nor its synonyms are provided on the command line), Open MPI will automatically execute a copy of the program on each process slot (see below for description of a "process slot")
所以我希望
mpirun program
到 运行 程序的八个副本(实际上是一个简单的 hello world),因为我有一个 Intel® Core™ i7-2630QM CPU @ 2.00GHz × 8,但它没有' t: 它只是 运行 一个进程。
如果您没有指定要使用的进程数,mpirun
会尝试从(指定或)默认主机文件中获取它们。来自 corresponding section of the man page you linked:
If the hostfile does not provide slots information, a default of 1 is assumed.
由于您没有修改此文件(我假设),mpirun
将仅使用一个插槽。
在我的机器上,默认主机文件位于
/etc/openmpi-x86_64/openmpi-default-hostfile
i7-2630QM 是 4 核 CPU,每个核有两个硬件线程。对于计算密集型程序,您最好启动四个 MPI 进程而不是八个。
只需使用 mpiexec -n 4 ...
,因为您不需要主机文件来在执行 mpiexec
的同一节点上启动进程。
在远程节点上启动 MPI 进程时使用主机文件。如果您真的需要创建一个,请执行以下操作:
hostname slots=4 max_slots=8
(将hostname
替换为机器的主机名)
运行程序为
mpiexec -hostfile name_of_hostfile ...
如果您的 MPI 程序可以使用超线程,max_slots=8
允许您使用最多八个 MPI 进程超额订阅节点。您还可以将环境变量 OMPI_MCA_orte_default_hostfile
设置为主机文件的完整路径,而不是每次都显式地将其作为参数传递给 mpiexec
.
如果您碰巧使用分布式资源管理器,如 Torque、LSF、SGE 等,那么,如果正确编译,Open MPI 会与环境集成并自动从预留中构建主机和插槽列表。