这是命令 mpirun.lam,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
mpirun - 在 LAM 节点上运行 MPI 程序。
概要
mpirun [-fhvO] [-c # | -np #] [-D | -wd 目录] [-ger | -nger] [-sigs | -nsigs] [-ssi 密钥
值] [-nw | -w] [-nx] [-pty | -npty] [-s 节点] [-t | -toff | -ton] [-tv] [-x
VAR1[=VALUE1][,VAR2[=VALUE2],...]] [[-p prefix_str] [-sa | -sf]] [where] 程序 [--
参数]
请注意: 虽然每个都是单独可选的,但至少有一个 哪里, -例如或 -c 必须
以上述形式指定(即,当不使用模式时)。
mpirun [-fhvO] [-D | -wd 目录] [-ger | -nger] [-sigs | -nsigs] [-ssi 键值] [-nw | -w]
[-nx] [-pty | -npty] [-t | -toff | -ton] [-tv] [-x
VAR1[=VALUE1][,VAR2[=VALUE2],...]] 架构
请注意: - -c2c 和 -拉姆德 选项现在已过时。 用 -SSI 反而。 见“SSI”
部分,如下。
快 概要
如果您只是在寻找如何运行 MPI 应用程序,您可能想要使用
以下命令行:
% mpirun C my_mpi_application
这将运行一个副本 我的_mpi_应用程序 在当前 LAM Universe 中的每个 CPU 上。
或者,可以使用“N”代替“C”,表示一份
我的_mpi_应用程序 应该在当前 LAM 中的每个节点(而不是 CPU)上运行
宇宙。 最后:
% mpirun -np 4 my_mpi_application
可用于告诉 LAM 显式运行四个副本 我的_mpi_应用程序, 调度
在 LAM 宇宙中由 CPU 执行的循环方式。 请参阅本页的其余部分了解更多信息
详细信息,尤其是“位置命名法”部分。
配置
有两种形式 米匹伦 命令——一个用于程序(即 SPMD 风格的
应用程序),一个用于应用程序模式(请参阅 应用程序架构(5))。 两种形式 米匹伦
默认使用以下选项: -手指 -w. 这些可能每个都被它们的覆盖
对应选项,如下所述。
此外, 米匹伦 将发送在本地调用它的目录的名称
node 到每个远程节点,并尝试更改到该目录。 见
下面的“当前工作目录”部分。
-c # 同义词 -例如 (见下文)。
-D 使用可执行程序位置作为创建的当前工作目录
过程。 将设置创建的进程的当前工作目录
在调用用户程序之前。 此选项与
-wd.
-f 不要配置标准 I/O 文件描述符 - 使用默认值。
-h 打印有关此命令的有用信息。
-GeR 启用 GER(保证信封资源)通信协议和错误
报告。 看 MPI(牛奶蛋白分离物)(7) 对 GER 的描述。 这个选项是相互的
与 -手指.
-手指 禁用 GER(保证信封资源)。 此选项是互斥的
- -GeR.
-nsigs 在用户应用程序中不要有 LAM 捕捉信号。 这是默认设置,并且
是互斥的 -签名.
-例如 # 在给定的节点上运行这么多的程序副本。 该选项表示
指定的文件是可执行程序而不是应用程序模式。
如果没有指定节点,则考虑所有 LAM 节点进行调度; 林将
以循环方式安排程序,“环绕”(和
如有必要,可在单个节点上调度多个副本。
-npty 禁用伪 tty 支持。 除非你有伪 tty 的问题
支持,您可能不需要此选项。 与 -pty 互斥。
-西北 退出前不要等待所有进程完成 米匹伦. 这个选项是
互斥 -w.
-nx 不自动导出 LAM_MPI_*、LAM_IMPI_* 或 IMPI_* 环境
远程节点的变量。
-O 多机是同构的。 传递消息时不进行数据转换。
此标志现已过时。
-pty 启用伪 tty 支持。 除其他外,这启用了行缓冲
输出(这可能是您想要的)。 这是默认设置。 相互
与-npty 独占。
-s 节点 从该节点加载程序。 此选项在命令行上无效
如果指定了应用程序架构。
-签名 在用户进程中有 LAM 捕捉信号。 此选项是互斥的
- -nsigs.
-SSI 键 折扣值
将参数发送到各种 SSI 模块。 请参阅下面的“SSI”部分。
-t, -吨 为所有进程启用执行跟踪生成。 跟踪生成将
继续不采取进一步行动。 这些选项与
-toff.
-toff 为所有进程启用执行跟踪生成。 跟踪生成
消息传递流量将在进程集体调用后开始
MPIL_Trace_on(2). 请注意,数据类型和通信器的跟踪生成
将 无论是否为消息启用了跟踪生成,都继续进行
不是。 此选项与 -t 和 -吨.
-电视 在 TotalView Debugger 下启动进程。
-v 冗长; 报告完成的重要步骤。
-w 等待所有应用程序退出之前 米匹伦 退出。
-wd DIR 在用户的程序执行之前切换到目录 dir。 请注意,如果
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 -wd 选项出现在命令行和应用程序模式中,
模式将优先于命令行。 这个选项是相互的
与 -D.
-x 执行前将指定的环境变量导出到远程节点
该程序。 可以指定现有的环境变量(请参阅示例
部分),或使用相应值指定的新变量名称。 这
解析器 -x 选项不是很复杂; 它甚至不明白
引用的值。 建议用户在环境中设置变量,然后
使用 -x 导出(不定义)它们。
-sa 显示所有 MPI 进程的退出状态,无论它们是失败还是失败
运行成功。
-sf 仅当其中一个进程失败时才显示所有进程的退出状态。
-p 前缀字符串
为 [-sa] 和 [-sf] 显示的每个进程状态行添加前缀
前缀字符串。
哪里 一组节点和/或 CPU 标识符,指示从哪里开始 程序。 看
主机(5) 用于描述节点和 CPU 标识符。 米匹伦 将
安排相邻的行列 MPI_COMM_WORLD 当 CPU 标识符在同一节点上时
被使用。 例如,如果 LAM 在 n4 上的 CPU 计数为 0 并且 CPU
n2 上的计数为 1 并且 哪里 是 C,排名 0 到 3 将放在 n0 上,并且
等级 4 和 5 将放置在 n1 上。
ARGS 将这些运行时参数传递给每个新进程。 这些必须始终是
最后的论据 米匹伦. 如果出现以下情况,则此选项在命令行上无效
应用程序模式已指定。
商品描述
一次调用 米匹伦 启动在 LAM 下运行的 MPI 应用程序。 如果申请
就是简单的 SPMD,应用程序可以在 米匹伦 命令行。 如果
应用程序是MIMD,由多个程序组成,一个应用程序模式需要一个
单独的文件。 看 应用程序架构(5) 用于描述应用程序模式语法,但
它基本上包含多个 米匹伦 命令行,减去命令名称本身。 这
为程序的不同实例指定不同选项的能力是另一个
使用应用程序模式的原因。
地址 命名法
如上所述, 米匹伦 可以指定当前 LAM 宇宙中的任意位置。
位置可以由 CPU 或节点指定(由 SYNTAX
节,同上)。 请注意,LAM 不会将进程绑定到 CPU——指定位置
“通过 CPU”实际上是 SMP 的一种便利机制,最终映射到
特定节点。
请注意,LAM 在其中有效地从左到右编号 MPI_COMM_WORLD 等级,
无论使用哪种命名法。 这可能很重要,因为典型的 MPI
程序倾向于与其直接邻居(即 myrank +/- X)进行更多的交流,而不是
远方的邻居。 当邻居最终在同一个节点上时,shmem RPI 可用于
通信而不是网络 RPI,这可以导致更快的 MPI 性能。
按节点指定位置将启动每个指定节点的可执行文件的一个副本。
使用国会大厦“N”告诉 LAM 使用 lambooted 的所有可用节点(请参阅
羔羊(1))。 特定节点的范围也可以用“nR[,R]*”的形式指定,其中
R 指定单个节点号或范围内的有效节点号范围
[0, num_nodes)。 例如:
mpirun 输出
运行可执行文件的一份副本 出 在 LAM Universe 中的所有可用节点上。
MPI_COMM_WORLD rank 0 将在 n0 上,rank 1 将在 n1 上,依此类推。
mpirun n0-3 a.out
运行可执行文件的一份副本 出 在节点 0 到 3 上。 MPI_COMM_WORLD 排名 0
将在 n0 上,排名 1 将在 n1 上,依此类推。
mpirun n0-3,8-11,15 a.out
运行可执行文件的一份副本 出 在节点 0 到 3、8 到 11 和 15 上。
MPI_COMM_WORLD 等级将按如下顺序排列:(0, n0), (1, n1), (2, n2), (3, n3),
(4, n8), (5, n9), (6, n10), (7, n11), (8, n15)。
通过 CPU 指定是启动 MPI 作业的首选方法。 其意图是
使用的引导模式 羔羊(1) 将指示每个节点上有多少 CPU 可用,
然后是一个简单的 米匹伦 命令可用于启动所有这些。 作为
上面提到,指定 CPU 实际上并没有将进程绑定到 CPU——它只是一个
在 SMP 上启动的便利机制。 否则,按 CPU 表示法相同
作为逐节点表示法,除了使用“C”和“c”代替“N”和“n”。
假设在以下示例中,LAM Universe 由四个 4 路 SMP 组成。 所以
c0-3 在 n0 上,c4-7 在 n1 上,c8-11 在 n2 上,13-15 在 n3 上。
mpirun C a.out
运行可执行文件的一份副本 出 在 LAM Universe 中的所有可用 CPU 上。
这通常是启动所有 MPI 作业(甚至
如果它解析为每个节点一个进程)。 MPI_COMM_WORLD 排名 0-3 将在 n0,
4-7 级将在 n1 上,8-11 级将在 n2 上,13-15 级将在 n3 上。
mpirun c0-3 a.out
运行可执行文件的一份副本 出 在 CPU 0 到 3 上。所有四个等级的
MPI_COMM_WORLD 将在 MPI_COMM_WORLD 上。
mpirun c0-3,8-11,15 a.out
运行可执行文件的一份副本 出 在 CPU 0 到 3、8 到 11 和 15 上。
MPI_COMM_WORLD 排名 0-3 将在 n0 上,4-7 将在 n2 上,8 将在 n3 上。
按 CPU 命名法优于按节点命名法的原因是最好的
通过示例显示。 考虑尝试运行第一个 CPU 示例(使用相同的
MPI_COMM_WORLD 映射)与节点命名法——运行一个副本 出 每
可用 CPU,并最大化本地邻居的数量以潜在地最大化 MPI
表现。 一种解决方案是使用以下命令:
mpirun n0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3 a.out
本篇 运作方式,但打字肯定很笨拙。 使用 by-CPU 通常更容易
符号。 人们可能认为以下内容是等价的:
mpirun N -np 16 a.out
这是 而不去 等效,因为 MPI_COMM_WORLD 等级映射将由节点分配
而不是通过 CPU。 因此,等级 0 将在 n0 上,等级 1 将在 n1 上,等等。请注意,
然而,接下来, is 等效,因为 LAM 将缺少 where 解释为“C”:
mpirun -np 16 a.out
但是,“C”往往更方便,尤其是对于批处理排队脚本
因为确切的进程数可能因队列提交而异。 由于批次
系统将确定最终可用的 CPU 数量,有一个通用脚本
有效地说“运行你给我的一切”可能会导致更便携/可重用
脚本。
最后需要注意的是,指定多个 where 子句是完美的
可以接受。 因此,按节点和按 CPU 语法的混合也是有效的,尽管
通常没有用。 例如:
mpirun CN a.out
但是,在某些情况下,指定多个 where 子句可能很有用。 考虑一个
并行应用程序,其中 MPI_COMM_WORLD 等级 0 将是一个“管理器”,因此消耗
CPU 周期很少,因为它通常在等待“工作”进程返回
结果。 因此,可能需要在所有可用的进程上运行一个“工人”进程
CPU,并运行一个额外的进程,即“管理器”:
mpirun c0 C 经理工人程序
应用领域 架构 or 可执行文件 程序?
为了区分这两种不同的形式, 米匹伦 在命令行上查找 where 或 the
-c 选项。 如果两者都未指定,则假定命令行上命名的文件为
是一个应用程序模式。 如果指定了一个或两个,则假定该文件
成为可执行程序。 如果哪里和 -c 两者都被指定,然后副本
程序根据内部 LAM 调度在指定的节点/CPU 上启动
政策。 仅指定一个节点有效地强制 LAM 运行程序的所有副本
在一个地方。 如果 -c 给出,但没有给出位置,那么所有 LAM 节点上的所有可用 CPU 都是
用过的。 如果给出了 where ,但没有给出 -c,然后在每个节点上运行该程序的一个副本。
教学计划 转让
默认情况下,LAM 在目标节点上搜索可执行程序
实例化将运行。 如果文件系统不是共享的,则目标节点是
同构,程序经常重新编译,可以方便的有LAM
将程序从一个源节点(通常是本地节点)转移到每个目标节点。 这
-s 选项指定此行为并标识单个源节点。
定位 档
LAM 通过搜索用户路径中的目录来查找可执行程序
源节点上定义的环境变量。 这种行为符合
登录到源节点并从 shell 执行程序。 在远程节点上,
这 ”。” path 是主目录。
LAM 在三个目录中查找应用程序模式:本地目录、值
LAMAPPLDIR 环境变量和 laminstalldir/boot,其中“laminstalldir”是
安装 LAM/MPI 的目录。
标准版 I / O
LAM 将 UNIX 标准输入定向到所有远程节点上的 /dev/null。 在本地节点上
调用 米匹伦, 标准输入继承自 米匹伦. 默认是以前的
-w 选项以防止对终端的访问冲突。
LAM 将 UNIX 标准输出和错误定向到所有远程节点上的 LAM 守护程序。 我是
将所有捕获的输出/错误发送到调用的节点 米匹伦 并将其打印在
标准输出/错误 米匹伦. 本地进程继承标准输出/错误
米匹伦 并直接转移到它。
因此,可以使用典型的 LAM 应用程序重定向标准 I/O
shell重定向过程 米匹伦.
% mpirun C my_app my_input my_output
注意在这个例子中 仅由 本地节点(即调用 mpirun 的节点
from) 将在 stdin 上接收来自 my_input 的流。 所有其他节点上的标准输入
将绑定到 /dev/null。 但是,来自所有节点的 stdout 将被收集到
my_output 文件。
- -f 选项避免了支持上述标准 I/O 所需的所有设置。
远程进程完全指向/dev/null,本地进程继承文件
描述符来自 羔羊(1)。
伪 支持
- -pty 选项启用了对进程输出的伪 tty 支持(它也由
默认)。 除其他外,这允许来自远程节点的行缓冲输出
(这可能是你想要的)。 可以使用以下命令禁用此选项 -npty 开关。
流程 终止 / 信号 处理
在 MPI 应用程序运行期间,如果任何 rank 异常终止(或者之前退出
调用 MPI_FINALIZE,或因信号而死亡), 米匹伦 会打印出错误
消息并终止 MPI 应用程序的其余部分。
默认情况下,LAM/MPI 只为用户程序中的一个信号安装一个信号处理程序
(默认情况下为 SIGUSR2,但在配置和构建 LAM 时可以覆盖它)。
因此,用户在 LAM/MPI 程序中安装自己的信号处理程序是安全的
(LAM 通过检查进程提供的返回状态来通知信号死亡案例
操作系统)。
用户信号处理程序可能应该避免尝试清理 MPI 状态——LAM 既不是
线程安全或异步信号安全。 例如,如果段故障发生在 MPI_SEND
(可能是因为传入了错误的缓冲区)并调用了用户信号处理程序,如果
用户处理程序尝试调用 MPI_FINALIZE, 坏事可能发生,因为 LAM/MPI 是
发生错误时已经“进入”MPI。 自从 米匹伦 会注意到进程死了
由于信号,用户可能没有必要(也是最安全的)只清理
非 MPI 状态。
如果 -签名 选项用于 米匹伦, LAM/MPI 将安装几个信号处理程序来
在每个等级本地捕获信号,打印错误消息,并杀死其余的
MPI 应用程序。 这是有点多余的行为,因为现在所有这些都由
米匹伦,但它已被保留为向后兼容。
流程 Exit 退出 状态
- -sa, -sf及 -p 参数可用于显示存在的状态
单个 MPI 进程终止时。 -sa 强制显示退出状态
适用于所有流程; -sf 如果至少有一个进程终止,则仅显示存在状态
通过信号或非零退出状态(注意在调用之前退出
MPI_FINALIZE 将导致非零退出状态)。
每个进程的状态被打印出来,每行一个,格式如下:
prefix_string 节点 pid 终止状态
If 杀害 是 1,那么 状态 是信号编号。 如果 杀害 是 0,那么 状态 是出口
进程的状态。
默认值 前缀字符串 是“mpirun:”,但是 -p 可以使用选项覆盖此
字符串。
电流 工进 目录
mpirun 的默认行为相对于处理的目录已更改
将在开始。
- -wd mpirun 的选项允许用户在他们之前更改到任意目录
程序被调用。 它还可以用于应用程序模式文件中以指定工作
特定节点和/或特定应用程序上的目录。
如果 -wd 选项同时出现在架构文件和命令行中,架构文件
directory 将覆盖命令行值。
- -D 选项会将当前工作目录更改为
可执行文件驻留。 它不能用于应用程序架构文件。 -wd 是相互的
与 -D.
如果两者都不是 -wd 也不 -D 指定,本地节点将发送目录名称到
从每个远程节点调用 mpirun。 然后远程节点将尝试
切换到那个目录。 如果它们失败(例如,如果该目录不存在于
节点),它们将从用户的主目录开始。
所有目录更改都发生在调用用户程序之前; 它不会等到
MPI_INIT 叫做。
流程 环境
MPI 应用程序中的进程从 LAM 守护进程继承它们的环境
他们正在运行的节点。 LAM 守护进程的环境在启动时固定
LAM 与 羔羊(1) 并且通常从用户的 shell 继承。 关于起源
节点,这将是其中的外壳 羔羊(1) 被调用; 在远程节点上,确切的
环境由使用的引导 SSI 模块决定 羔羊(1). rsh 启动模块,
例如,使用 rsh/ssh 在远程节点上启动 LAM 守护程序,并且通常
在启动 LAM 守护程序之前执行一个或多个用户的 shell-setup 文件。
运行需要 LD_LIBRARY_PATH 环境的动态链接应用程序时
要设置的变量,必须注意确保在启动时正确设置
我是。
已出口 环境 变量
以 LAM_MPI_*、LAM_IMPI_* 或 IMPI_* 形式命名的所有环境变量将
自动导出到本地和远程节点上的新进程。 这个出口
可能会被抑制 -nx 选项。
此外,该 -x 选项 米匹伦 可用于导出特定的环境变量
到新流程。 虽然语法 -x 选项允许定义新的
变量,请注意此选项的解析器目前不是很复杂 - 它
甚至不理解引用的值。 建议用户在
环境和使用 -x 出口它们; 不要定义它们。
追踪 代
两个开关控制在 LAM 下运行的进程的跟踪生成,并且两者都必须在
实际生成轨迹的开启位置。 第一个开关由控制
米匹伦 第二个开关最初由 米匹伦 但可以在运行时切换
MPIL_Trace_on(2)和 MPIL_Trace_off(2)。 该 -t (-吨 是等价的)和 -toff 选项全部
打开第一个开关。 否则第一个开关关闭并调用 MPIL_Trace_on(2)
在应用程序中是无效的。 这 -t 选项也会打开第二个
转变。 这 -toff 选项关闭第二个开关。 看 MPIL_Trace_on(2)和
灯迹(1) 了解更多详情。
MPI(牛奶蛋白分离物) 时间 转化率提升
LAM 的 MPI 库将 MPI 消息从本地表示转换为 LAM 表示
发送后返回当地代表处。 如果情况
由同构机器网络组成的 LAM,其中本地表示
与 LAM 表示不同,这会导致不必要的转换。
- -O 过去需要开关来向 LAM 指示多台计算机是否是
同质与否。 LAM 现在会自动确定给定的 MPI 作业是否
同质与否。 这 -O 为了向后兼容,标志将被默默接受,
但它被忽略了。
SSI的 (系统 服务范围 界面)
- -SSI 开关允许将参数传递给各种 SSI 模块。 LAM 的 SSI
模块详细描述在 拉姆西(7). SSI 模块对 MPI 有直接影响
程序,因为它们允许在运行时设置可调参数(例如哪个 RPI
要使用的通信设备驱动程序、要传递给该 RPI 的参数等)。
- -SSI switch 有两个参数: 键 和 折扣值。 该 键 参数通常指定
哪个 SSI 模块将接收该值。 例如, 键 “rpi”用于选择
用于传输 MPI 消息的 RPI。 这 折扣值 参数是值
通过。 例如:
mpirun -ssi rpi lamd N foo
告诉 LAM 使用“lamd”RPI 并在每个节点上运行“foo”的单个副本。
mpirun -ssi rpi tcp N foo
告诉 LAM 使用“tcp”RPI。
mpirun -ssi rpi sysv N foo
告诉 LAM 使用“sysv”RPI。
等等。 LAM 的 RPI SSI 模块在 拉姆西_rpi(7)。
- -SSI switch 可以多次使用来指定不同的 键 和 折扣值
论据。 如果相同 键 被指定不止一次, 折扣值s 与
逗号 (",") 分隔它们。
请注意 -SSI switch 只是设置环境变量的快捷方式。 这
之前设置相应的环境变量也可以达到同样的效果
运行 米匹伦. LAM设置的环境变量的形式为:
LAM_MPI_SSI_key=值.
请注意 -SSI switch 覆盖任何先前设置的环境变量。 还要注意
那个未知 键 参数仍然设置为环境变量——它们没有被检查
(由 米匹伦) 的正确性。 非法或不正确 折扣值 争论可能是也可能不是
报告——这取决于特定的 SSI 模块。
- -SSI 开关过时了旧的 -c2c 和 -拉姆德 开关。 这些开关曾经是
相关,因为 LAM 一次只能有两个 RPI 可用:lamd RPI 和一个
C2C RPI。 这不再是真实的——所有 RPI 现在都可以在
运行。 选择 lamd RPI 如上例所示。 这 -c2c 开关没有
直接翻译,因为“C2C”用于指代所有其他非 lamd 的 RPI
转速指数。 像这样, -SSI pi 折扣值 必须用于选择特定的所需 RPI(无论是
是“lamd”或其他 RPI 之一)。
保证 信封 资源中心
默认情况下,LAM 将保证每个 MPI 的最小消息包缓冲量
进程对,将阻止或向试图溢出的进程报告错误
这个系统资源。 这种健壮性和调试功能是在机器中实现的
使用直接通信时的特定方式。 对于正常的 LAM 通信,通过
LAM 守护进程,使用了一个协议。 这 -手指 选项禁用 GER 和采取的措施
支持它。 最小 GER 由系统管理员配置,当 LAM 为
安装。 看到 MPI(牛奶蛋白分离物)(7) 了解更多详情。
示例
请务必查看上面“位置命名法”部分中的示例。
mpirun N prog1
在所有节点上加载并执行 prog1。 在用户的 $PATH 中搜索可执行文件
在每个节点上。
mpirun -c 8 prog1
在 LAM 想要运行它们的任何地方运行 prog8 的 1 个副本。
mpirun n8-10 -v -nw -s n3 prog1 -q
在节点 1、8、9 上加载并执行 prog10。在节点 1 上搜索 prog3 并传输
到三个目标节点。 在创建每个进程时报告。 给“-q”作为
每个新进程的命令行。 不要等待进程完成之前
退出 米匹伦.
mpirun -v 我的应用程序
解析应用程序架构 myapp,并启动其中指定的所有进程。 报告
在创建每个进程时。
mpirun -npty -wd /work/output -x 显示 C my_application
在每个可用 CPU 上启动一份“my_application”副本。 可用数量
之前在启动 LAM 时指定了每个节点上的 CPU 羔羊(1). 作为
上面提到, 米匹伦 将安排相邻的排名 MPI_COMM_WORLD 在同一个节点上
在可能的情况。 例如,如果 n0 的 CPU 计数为 8,而 n1 的 CPU 计数为 4,
米匹伦 将放置 MPI_COMM_WORLD 在 n0 上排名 7 到 0,在 n8 上排名 11 到 1。
这往往会最大化许多并行应用程序的节点上通信; 使用时
结合 LAM 中的多协议网络/共享内存 RPI(请参阅
RELEASE_NOTES 和 INSTALL 文件与 LAM 分发),整体通信
性能可以相当不错。 同时禁用伪 tty 支持,将目录更改为
/work/output,并将 DISPLAY 变量导出到新进程(也许
my_application 将调用 X 应用程序(例如 xv)来显示输出)。
诊断
mpirun: Exec 格式错误
这通常意味着多个进程或适当的 where 子句
未指定,表示 LAM 不知道要运行多少个进程。 看
上面的示例和“位置命名法”部分,以获取有关如何
指定要运行的进程数和/或运行它们的位置。 不过,它也可以
表示在应用程序模式中检测到非 ASCII 字符。 这是
通常是命令行使用错误,其中 米匹伦 期待一个应用程序模式和
给出了一个可执行文件。
mpirun:应用程序模式中的语法错误,第 XXX 行
由于使用或语法错误,无法解析应用程序架构
文件中的给定行。
文件名:没有那个文件或目录
在两种情况下可能会发生此错误。 无法找到指定的文件,或者它有
已找到但用户没有足够的权限来执行程序或
阅读应用程序架构。
返回 VALUE
米匹伦 如果所有等级开始于,则返回 0 米匹伦 调用 MPI_FINALIZE 后退出。 一个非
如果在 mpirun 中发生内部错误,或者一个或多个等级,则返回零值
在调用 MPI_FINALIZE 之前退出。 如果 mpirun 发生内部错误,则
返回相应的错误代码。 如果一个或多个排名之前退出
调用 MPI_FINALIZE,该进程的等级的返回值 米匹伦 第一
在调用 MPI_FINALIZE 之前死亡的通知将被返回。 请注意,一般来说,这
将是第一个死亡的等级,但不能保证如此。
但是,请注意,如果 -西北 使用了开关,mpirun 的返回值没有
指示行列的退出状态。
使用 onworks.net 服务在线使用 mpirun.lam