如何检查 OpenMPI 中使用了哪些 MCA 参数?
How to check which MCA parameters are used in OpenMPI?
在您要使用的 OpenMPI codebase, each module has multiple variants. When calling mpirun
, you can select the modules from the Modular Component Architecture (MCA) 中。选项包括...
- 集体算法 (coll):basic, tuned, inter, cuda, ml, sm, ...
- 字节传输层 (btl):openib、tcp、...
- 点对点管理层 (pml):cm、ob1、...
- 匹配传输层 (mtl):mxm、psm、...
您可以像这样指定您选择的 MCA 组件:
mpirun --mca btl self,openib --mca pml ob1 -np $nProcs ./myprogram
我的问题:
- 如果我未指定某些 MCA 参数,默认值是什么?
- 是否有详细模式可以打印所有正在使用的 MCA 组件? (我尝试将
-v
添加到我的 mpirun
命令中,但它没有打印任何额外的内容。)
根据您拥有的 Open MPI 版本,ompi_info --param all all
(旧版本)或 ompi_info --all
(新版本)转储可用 MCA 参数的完整列表。默认值及其来源显示在列表中,并且还记录了大多数参数。某些 MCA 参数只有在设置了某些其他参数后才可用。例如,tuned
模块中控制集体通信操作算法选择的参数仅在一组 coll_tuned_use_dynamic_rules
到 true
时才可用。要让 ompi_info
也列出这些,必须将 --mca coll_tuned_use_dynamic_rules true
传递给它。
要在调用 MPI_Init()
时转储所有 MCA 变量,请将 mpi_show_mca_params
设置为 all
。然后将每个 MCA 参数的值以及该值的来源转储到标准错误流。
在您要使用的 OpenMPI codebase, each module has multiple variants. When calling mpirun
, you can select the modules from the Modular Component Architecture (MCA) 中。选项包括...
- 集体算法 (coll):basic, tuned, inter, cuda, ml, sm, ...
- 字节传输层 (btl):openib、tcp、...
- 点对点管理层 (pml):cm、ob1、...
- 匹配传输层 (mtl):mxm、psm、...
您可以像这样指定您选择的 MCA 组件:
mpirun --mca btl self,openib --mca pml ob1 -np $nProcs ./myprogram
我的问题:
- 如果我未指定某些 MCA 参数,默认值是什么?
- 是否有详细模式可以打印所有正在使用的 MCA 组件? (我尝试将
-v
添加到我的mpirun
命令中,但它没有打印任何额外的内容。)
根据您拥有的 Open MPI 版本,ompi_info --param all all
(旧版本)或 ompi_info --all
(新版本)转储可用 MCA 参数的完整列表。默认值及其来源显示在列表中,并且还记录了大多数参数。某些 MCA 参数只有在设置了某些其他参数后才可用。例如,tuned
模块中控制集体通信操作算法选择的参数仅在一组 coll_tuned_use_dynamic_rules
到 true
时才可用。要让 ompi_info
也列出这些,必须将 --mca coll_tuned_use_dynamic_rules true
传递给它。
要在调用 MPI_Init()
时转储所有 MCA 变量,请将 mpi_show_mca_params
设置为 all
。然后将每个 MCA 参数的值以及该值的来源转储到标准错误流。