mpiexec vs mpirun

时间:2014-08-13 13:49:59

标签: mpi mpich mpiexec

根据我的小知识mpirunmpiexec两者都是发射器。任何人都能说出mpiexecmpirun之间的确切区别吗?

2 个答案:

答案 0 :(得分:47)

mpiexec在MPI标准中定义(至少是最新版本),我会将您推荐给那些(您最喜欢的搜索引擎会为您找到它们)以获取详细信息。

mpirun是由许多MPI实现实现的命令。然而,它从未被标准化,并且实现之间始终存在微妙的差异。有关详细信息,请参阅您选择的实施文档。

是的,它们都用于启动MPI程序,这些天mpiexec通常更受欢迎,因为它是标准化的。

答案 1 :(得分:20)

我知道问题已得到解答,但我认为答案不是最好的。我在这里用mpirun在集群上遇到了一些问题,并查看mpirun和mpiexec之间是否存在差异。这是我发现的:

  

描述

     

Mpiexec是脚本mpirun的替代程序,它是一部分   mpich包。它用于初始化并行作业   在PBS批处理或交互式环境中。 Mpiexec使用该任务   PBS的管理器库,用于在节点上生成可执行文件的副本   在PBS分配中。

     

使用mpiexec而不是脚本(mpirun)或外部的原因   守护进程(mpd):

     
      
  • 使用TM接口启动任务比为每个进程调用一次单独的rsh或ssh要快得多。
  •   
  • 生成的进程使用的资源使用mpiexec正确计算,并在PBS日志中报告,因为所有进程   并行工作仍然在PBS的控制之下,与使用时不同   启动脚本,如mpirun。
  •   
  • 超出指定的CPU时间限制,挂钟时间,内存使用量或磁盘空间的任务将被PBS彻底杀死。它是   进程很难逃脱资源管理器的控制   使用mpiexec时。
  •   
  • 您可以使用mpiexec来强制执行安全策略。如果需要使用mpiexec和PBS执行环境启动所有作业,   没有必要启用对计算节点的rsh或ssh访问   在集群中。
  •   

参考:https://www.osc.edu/~djohnson/mpiexec/