MPI_T(3)
π MPI_T π
Open MPIβs MPI_T interface - General information
Manual name: Open MPI Β· page: MPI_T(3).
β¨ DESCRIPTION β¨
okay bestie, here are the Open MPI-specific notes worth mentioning about its MPI_T interface implementation. π«Ά
π§Έ MPI_T Control Variables π§Έ
Open MPIβs implementation of the MPI_T Control Variable (βcvarβ) APIs is literally an interface to Open MPIβs underlying Modular Component Architecture (MCA) parameters/variables. Simply put: using the MPI_T cvar interface is another mechanism to get/set Open MPI MCA parameters. π
In order of precedence (highest to lowest), Open MPI provides the following mechanisms to set MCA parameters:
- The MPI_T interface has the highest precedence. Specifically: values set via the MPI_T interface will override all other settings. π
- The
mpirun(1)/mpiexec(1)command line (e.g., via theβmcaparameter). - Environment variables.
- Parameter files have the lowest precedence. Specifically: values set via parameter files can be overridden by any of the other MCA-variable setting mechanisms. π₯²
π MPI initialization π
An application may use the MPI_T interface before MPI is initialized to set MCA parameters. Setting MPI-level MCA parameters before MPI is initialized may affect how MPI is initialized (e.g., by influencing which frameworks and components are selected). π§
The following example sets the pml and btl MCA params before invoking MPI_Init in order to force a specific selection of PML and BTL components:
int provided, index, count;
MPI_T_cvar_handle pml_handle, btl_handle;
char pml_value[64], btl_value[64];
MPI_T_init_thread(MPI_THREAD_SINGLE, &provided);
MPI_T_cvar_get_index("pml", &index);
MPI_T_cvar_handle_alloc(index, NULL, &pml_handle, &count);
MPI_T_cvar_write(pml_handle, "ob1");
MPI_T_cvar_get_index("btl", &index);
MPI_T_cvar_handle_alloc(index, NULL, &btl_handle, &count);
MPI_T_cvar_write(btl_handle, "tcp,vader,self");
MPI_T_cvar_read(pml_handle, pml_value);
MPI_T_cvar_read(btl_handle, btl_value);
printf("Set value of cvars: PML: %s, BTL: %s\n",
pml_value, btl_value);
MPI_T_cvar_handle_free(&pml_handle);
MPI_T_cvar_handle_free(&btl_handle);
MPI_Init(NULL, NULL);
// ...
MPI_Finalize();
MPI_T_finalize();
β οΈ Note that once MPI is initialized, most Open MPI cvars become read-only.
For example, after MPI is initialized, it is no longer possible to set the PML and BTL selection mechanisms. This is because many of these MCA parameters are only used during MPI initialization; setting them after MPI has already been initialized would be meaningless, anyway. π
ποΈ MPI_T Categories ποΈ
Open MPIβs MPI_T categories are organized hierarchically:
- Layer (or βprojectβ). There are two layers in Open MPI:
ompi: This layer contains cvars, pvars, and sub categories related to MPI characteristics.opal: This layer generally contains cvars, pvars, and sub categories of lower-layer constructions, such as operating system issues, networking issues, etc.
- Framework or section.
- In most cases, the next level in the hierarchy is the Open MPI MCA framework.
- For example, you can find the
btlframework under theopallayer (because it has to do with the underlying networking). - Additionally, the
pmlframework is under theompilayer (because it has to do with MPI semantics of point-to-point messaging).
- For example, you can find the
- There are a few non-MCA-framework entities under the layer, however.
- For example, there is an
mpisection under both theopalandompilayers for general/core MPI constructs.
- For example, there is an
- In most cases, the next level in the hierarchy is the Open MPI MCA framework.
- Component.
- If relevant, the third level in the hierarchy is the MCA component.
- For example, the
tcpcomponent can be found under theopalframework in theopallayer.
π SEE ALSO π
MPI_T_init_thread
π COPYRIGHT π
2003-2026, The Open MPI Community
xoxo, your Open MPI bestie π β this manual page is from Open MPI, and the date on it is May 14, 2026. Catch you in the group chat! π«Άβ¨
π¦ where this page comes from
- arch rolling: nvhpc-comm-libs 26.9-1 Β· LicenseRef-NVIDIA-HPC-SDK
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms