A number of chapters refer to deprecated or replaced MPI-1 constructs. These are constructs that continue to be part of the MPI standard, as documented in Chapter Deprecated Functions , but that users are recommended not to continue using, since better solutions were provided with MPI-2. For example, the Fortran binding for MPI-1 functions that have address arguments uses INTEGER. This is not consistent with the C binding, and causes problems on machines with 32 bit INTEGERs and 64 bit addresses. In MPI-2, these functions were given new names with new bindings for the address arguments. The use of the old functions is deprecated. For consistency, here and in a few other cases, new C functions are also provided, even though the new functions are equivalent to the old functions. The old names are deprecated. Another example is provided by the MPI-1 predefined datatypes MPI_UB and MPI_LB. They are deprecated, since their use is awkward and error-prone. The MPI-2 function MPI_TYPE_CREATE_RESIZED provides a more convenient mechanism to achieve the same effect.
Table 1 shows a list of all of the deprecated constructs. Note that the constants MPI_LB and MPI_UB are replaced by the function MPI_TYPE_CREATE_RESIZED; this is because their principal use was as input datatypes to MPI_TYPE_STRUCT to create resized datatypes. Also note that some C typedefs and Fortran subroutine names are included in this list; they are the types of callback functions.
Deprecated | MPI-2 Replacement |
MPI_ADDRESS | MPI_GET_ADDRESS |
MPI_TYPE_HINDEXED | MPI_TYPE_CREATE_HINDEXED |
MPI_TYPE_HVECTOR | MPI_TYPE_CREATE_HVECTOR |
MPI_TYPE_STRUCT | MPI_TYPE_CREATE_STRUCT |
MPI_TYPE_EXTENT | MPI_TYPE_GET_EXTENT |
MPI_TYPE_UB | MPI_TYPE_GET_EXTENT |
MPI_TYPE_LB | MPI_TYPE_GET_EXTENT |
MPI_LB | MPI_TYPE_CREATE_RESIZED |
MPI_UB | MPI_TYPE_CREATE_RESIZED |
MPI_ERRHANDLER_CREATE | MPI_COMM_CREATE_ERRHANDLER |
MPI_ERRHANDLER_GET | MPI_COMM_GET_ERRHANDLER |
MPI_ERRHANDLER_SET | MPI_COMM_SET_ERRHANDLER |
MPI_Handler_function | MPI_Comm_errhandler_fn |
MPI_KEYVAL_CREATE | MPI_COMM_CREATE_KEYVAL |
MPI_KEYVAL_FREE | MPI_COMM_FREE_KEYVAL |
MPI_DUP_FN | MPI_COMM_DUP_FN |
MPI_NULL_COPY_FN | MPI_COMM_NULL_COPY_FN |
MPI_NULL_DELETE_FN | MPI_COMM_NULL_DELETE_FN |
MPI_Copy_function | MPI_Comm_copy_attr_function |
COPY_FUNCTION | COMM_COPY_ATTR_FN |
MPI_Delete_function | MPI_Comm_delete_attr_function |
DELETE_FUNCTION | COMM_DELETE_ATTR_FN |
MPI_ATTR_DELETE | MPI_COMM_DELETE_ATTR |
MPI_ATTR_GET | MPI_COMM_GET_ATTR |
MPI_ATTR_PUT | MPI_COMM_SET_ATTR |