[petsc-dev] Removed functions in MPI 3

Karl Rupp rupp at mcs.anl.gov
Tue Jan 22 15:51:21 CST 2013


Hi,

>     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?
>
>
> Yes, this is the right way.
>
>    Matt

Since there was a lack of consensus on alternatives, I applied Matt's 
Right Way here:
https://bitbucket.org/petsc/petsc-dev/commits/fabf60c7d012db5a109255579665b5c2
https://bitbucket.org/petsc/buildsystem/commits/355293e9e4e0588644168f629930b566

This is mostly done to ensure that we don't forget about the initial 
goal of fixing the issue. Cleaner/more unified solutions to the problem 
are still welcome...

Best regards,
Karli




More information about the petsc-dev mailing list