如何检查 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) 中。选项包括...

您可以像这样指定您选择的 MCA 组件:

mpirun --mca btl self,openib --mca pml ob1 -np $nProcs ./myprogram


我的问题:

  1. 如果我未指定某些 MCA 参数,默认值是什么?
  2. 是否有详细模式可以打印所有正在使用的 MCA 组件? (我尝试将 -v 添加到我的 mpirun 命令中,但它没有打印任何额外的内容。)

根据您拥有的 Open MPI 版本,ompi_info --param all all(旧版本)或 ompi_info --all(新版本)转储可用 MCA 参数的完整列表。默认值及其来源显示在列表中,并且还记录了大多数参数。某些 MCA 参数只有在设置了某些其他参数后才可用。例如,tuned 模块中控制集体通信操作算法选择的参数仅在一组 coll_tuned_use_dynamic_rulestrue 时才可用。要让 ompi_info 也列出这些,必须将 --mca coll_tuned_use_dynamic_rules true 传递给它。

要在调用 MPI_Init() 时转储所有 MCA 变量,请将 mpi_show_mca_params 设置为 all。然后将每个 MCA 参数的值以及该值的来源转储到标准错误流。