[petsc-dev] Removed functions in MPI 3

Karl Rupp rupp at mcs.anl.gov
Mon Jan 21 16:12:49 CST 2013


Dear PETScians,

MPI 3.0 *removes* a set of functions from MPI 1.x, of which the 
following are in use in PETSc:

  * MPI_Type_struct, used in
    src/ts/characteristic/impls/da/slda.c
    src/dm/impls/mesh/meshpcice.c

  * MPI_Errhandler_create/MPI_Errhandler_set, used in
    src/sys/objects/pinit.c
    src/sys/objects/init.c

In both cases function were renamed in MPI-2.0:
   MPI_Type_struct       -> MPI_Type_create_struct
   MPI_Errhandler_create -> MPI_Comm_create_errhandler
   MPI_Errhandler_set    -> MPI_Comm_set_errhandler

It should be sufficient to update BuildSystem/config/packages/MPI.py and 
add the respective checks in configureMPI2(). Any objections on the 
following defines:
   HAVE_MPI_TYPE_CREATE_STRUCT
   HAVE_MPI_COMM_CREATE_ERRHANDLER
   HAVE_MPI_COMM_SET_ERRHANDLER
in the case of success?

Alternatives:
  * Assume MPI 1.x is no longer in use and change the function names 
directly.
  * Assume that implementations of MPI 3.0 or higher will still provide 
the 'removed' functions for backwards compatibility.

Best regards,
Karli



More information about the petsc-dev mailing list