Openmpi MPIOPT
# 华为ARM
MPIOPT="-mca pml ucx --mca btl ^vader,tcp,openib,uct -x UCX_NET_DEVICES=mlx5_0:1"
mpirun -np 4 $MPIOPT ./prob1
mpirun参数¶
-x \¶
- 在执行程序之前将指定的环境变量导出到远程节点。
- 每个 -x 选项只能指定一个环境变量。 可以指定现有环境变量或使用相应值指定新变量名称。 例如:
- 建议用户在环境中设置变量,然后使用 -x 导出(非定义)它们。
MCA 组件¶
设置 MCA(Modular Component Architecture ) 参数
-mca 开关允许将参数传递给各种 MCA(模块化组件架构)模块。 MCA 模块对 MPI 程序有直接影响,因为它们允许在运行时设置可调参数(例如使用哪个 BTL 通信设备驱动程序,向该 BTL 传递什么参数等)。
-mca 开关接受两个参数:\
可以多次使用以指定不同的 \
未知的\
MCA通过环境变量实现¶
OMPI_MCA_\
MCA通过指定包含相关选项的文件实现¶
-tune, --tune \
MCA设置的优先级¶
-mca选项会覆盖环境变量,也会覆盖默认文件
$OPAL_PREFIX/etc/openmpi/openmpi-mca-params.conf
或者$OPAL_PREFIX/etc/openmpi-mca-params.conf
或者$HOME/.openmpi/mca-params.conf
MCA 默认default值¶
https://stackoverflow.com/questions/36635061/how-to-check-which-mca-parameters-are-used-in-openmpi
set mpi_show_mca_params to all
MCA可用的组件-通过ompi_info¶
ompi_info指令¶
ompi_info - 显示有关 Open MPI 安装的信息 三种常见场景: 1. 检查本地配置并查看 Open MPI 是如何安装的。 2. 向 Open MPI 社区提交错误报告/帮助请求 3. 查看已安装的 Open MPI 插件列表并查询它们支持哪些 MCA 参数。 4. ompi_info --all 显示所有MCA选项,包括在某些环境变量值下才可用的隐藏选项
ompi_info查看使用情况¶
比如不清楚 --mca btl vader,可以运行 ompi_info --param btl vader --level 9
BTL¶
MPI point-to-point byte transfer layer, used for MPI
BTL 组件框架负责处理所有点对点消息传送,该层只是简单地移动字节序列,不考虑上层点对点通信协议,包含了一组用于发送/接收或RDMA 的通信组件单元。BTL 不受 MPI 语义的影响,它仅仅是通过最基本的传递功能来在进程间进行数据交换(包括连续的和非连续的数据)。这样的组件框架为网络设备的开发商提供了便利,同时也可以支持更广泛的结点间通信设备。
^号与...符号¶
btl 参数的值是一个由逗号分隔的组件列表,带有可选的前缀 ^(插入符号)来表示排除之后的组件。
在此示例中,组件 comp1 和 comp2 包含在 --mca 框架指定的框架中。组件 comp3 被排除在外,因为它前面有 ^(插入符号)符号。 因为,号的原因是一个整体,所以是排除comp3,comp1两项例如,以下命令从 BTL 框架中排除 tcp 和 openib 组件,并隐式包含所有其他组件
在命令中使用插入符号后跟省略号表示“对其余组件执行相反的操作”。 当 mpirun --mca 命令指定要排除的组件时,省略号后面的插入符号隐式包含该框架中的其余组件。 当 mpirun --mca 命令专门包含组件时,后面跟有省略号的表示“并排除未指定的组件”。例如,以下命令仅包含 btl 的 self、sm 和 gm 组件,并隐式排除其余部分:
PML¶
MPI point-to-point management layer
PML 组件框架负责管理所有消息的传递,实现了 MPI 点点通信原语,包括标准、缓冲、准备和同步四种通信模式。PML 根据具体的调度策略对 MPI 消息进行调度,该策略是根据 BTL 的具体属性决定的。短消息传递协议和长消息传递协议也是在 PML 中实现的。所有控制信息(ACK/NACK/MATCH)也都由 PML 进行管理。这种结构的优点是将传输协议从底层互连中分离出来,显著的降低了代码的复杂度和冗余度,增强了可维护性。
需要进一步的研究学习¶
不使用btl??
遇到的问题¶
暂无
参考文献¶
https://docs.oracle.com/cd/E19923-01/820-6793-10/mca-params.html
https://www.open-mpi.org/faq/?category=openfabrics
http://blog.sysu.tech/MPI/OpenMPI/OpenMPI%E5%B8%B8%E7%94%A8%E6%8A%80%E5%B7%A7/
http://blog.sysu.tech/MPI/OpenMPI/OpenMPI%E5%B8%B8%E7%94%A8%E6%8A%80%E5%B7%A7/
https://blog.csdn.net/qq_15457239/article/details/49152209