根据我的小知识mpirun
和mpiexec
两者都是发射器。任何人都能说出mpiexec
和mpirun
之间的确切区别吗?
答案 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访问 在集群中。