如何检查OpenMPI中使用的MCA参数?

时间:2016-04-14 22:24:19

标签: parallel-processing mpi distributed-computing openmpi hpc

OpenMPI代码库中,每个模块都有多个变体。致电mpirun时,您可以从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

我的问题:

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

1 个答案:

答案 0 :(得分:1)

根据您拥有的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参数的值以及该值的来源转储到标准错误流中。