Backward Compatibility - openpmix/openpmix GitHub Wiki
PMIx offers limited backward compatibility with the PMI-1 and PMI-2 definitions. Support for those definitions is provided by translating the called function into its PMIx equivalent - e.g., a call to PMI_Get invokes a wrapper that translates the provided input parameters, calls PMIx_Get, translates the returned PMIx values into a form compatible with the PMI-1 definition, and returns them.
The following table shows the supported and unsupported functions for both sets of definitions. An 'X' indicates that the function is supported, while a '-' indicates it is not supported.
Notes:
- This support is not intended to fully encompass the PMI-1 and PMI-2 definitions. Instead, the intent was to provide a minimum level of support consistent both with that typically required by parallel programming libraries and found in supporting resource managers. Thus, while every PMI-1 or PMI-2 function definition is present in the respective PMIx-provided library, not every function is actually supported. Unsupported functions will return the PMI_FAIL or PMI2_FAIL response.
- PMIx support for a backward compatible definition does not imply support by the underlying host environment - it only indicates that PMIx will communicate the request
- System-provided values (e.g., universe size) may differ from those returned by PMI-1 or PMI-2 due to differences in definitions and/or implementations
- The table rows reflect the API ordering in the original include files
PMI-1 | PMI-2 | ||
---|---|---|---|
PMI_Init | X | PMI2_Init | X |
PMI_Initialized | X | PMI2_Initialized | X |
PMI_Finalize | X | PMI2_Finalize | X |
PMI_Abort | X | PMI2_Abort | X |
PMI_KVS_Put | X | PMI2_Job_Spawn | X |
PMI_KVS_Commit | X | PMI2_Job_GetId | X |
PMI_KVS_Get | X | PMI2_Job_GetRank | X |
PMI_Barrier | X | PMI2_Info_GetSize | X |
PMI_Get_size | X | PMI2_Job_Connect | X |
PMI_Get_rank | X | PMI2_Job_Disconnect | X |
PMI_Get_universe_size | X | PMI2_KVS_Put | X |
PMI_Get_appnum | X | PMI2_KVS_Fence | X |
PMI_Publish_name | X | PMI2_KVS_Get | X |
PMI_Unpublish_name | X | PMI2_Info_GetNodeAttr | X |
PMI_Lookup_name | X | PMI2_Info_GetNodeAttrIntArray | - |
PMI_Get_id | X | PMI2_Info_PutNodeAttr | X |
PMI_Get_kvs_domain_id | X | PMI2_Info_GetJobAttr | X |
PMI_Get_id_length_max | X | PMI2_Info_GetJobAttrIntArray | - |
PMI_Get_clique_size | X | PMI2_Nameserv_publish | X |
PMI_Get_clique_ranks | X | PMI2_Nameserv_lookup | X |
PMI_KVS_Get_my_name | X | PMI2_Nameserv_unpublish | X |
PMI_KVS_Get_name_length_max | X | ||
PMI_KVS_Get_key_length_max | X | ||
PMI_KVS_Get_value_length_max | X | ||
PMI_KVS_Create | - | ||
PMI_KVS_Destroy | - | ||
PMI_KVS_Iter_first | - | ||
PMI_KVS_Iter_next | - | ||
PMI_Spawn_multiple | X | ||
PMI_Parse_option | - | ||
PMI_Args_to_keyval | - | ||
PMI_Free_keyvals | - | ||
PMI_Get_options | - |