Skip to content

Commit e2ab41e

Browse files
committed
README: Add extensive information about deleted MPI-1 syms
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
1 parent 78552e8 commit e2ab41e

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

README

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,56 @@ MPI Functionality and Features
479479

480480
- All MPI-3 functionality is supported.
481481

482+
- Note that starting with Open MPI v4.0.0, prototypes for several
483+
legacy MPI-1 symbols that were deleted in the MPI-3.0 specification
484+
(which was published in 2012) are no longer available by default in
485+
mpi.h. Specifically, several MPI-1 symbols were deprecated in the
486+
1996 publishing of the MPI-2.0 specification. These deprecated
487+
symbols were eventually removed from the MPI-3.0 specification in
488+
2012.
489+
490+
The symbols that now no longer appear by default in Open MPI's mpi.h
491+
are:
492+
493+
- MPI_Address (replaced by MPI_Get_address)
494+
- MPI_Errhandler_create (replaced by MPI_Comm_create_errhandler)
495+
- MPI_Errhandler_get (replaced by MPI_Comm_get_errhandler)
496+
- MPI_Errhandler_set (replaced by MPI_Comm_set_errhandler)
497+
- MPI_Type_extent (replaced by MPI_Type_get_extent)
498+
- MPI_Type_hindexed (replaced by MPI_Type_create_hindexed)
499+
- MPI_Type_hvector (replaced by MPI_Type_create_hvector)
500+
- MPI_Type_lb (replaced by MPI_Type_get_extent)
501+
- MPI_Type_struct (replaced by MPI_Type_create_struct)
502+
- MPI_Type_ub (replaced by MPI_Type_get_extent)
503+
- MPI_LB (replaced by MPI_Type_create_resized)
504+
- MPI_UB (replaced by MPI_Type_create_resized)
505+
- MPI_COMBINER_HINDEXED_INTEGER
506+
- MPI_COMBINER_HVECTOR_INTEGER
507+
- MPI_COMBINER_STRUCT_INTEGER
508+
- MPI_Handler_function (replaced by MPI_Comm_errhandler_function)
509+
510+
Although these symbols are no longer prototyped in mpi.h, they
511+
are still present in the MPI library in Open MPI v4.0.x. This
512+
enables legacy MPI applications to link and run successfully with
513+
Open MPI v4.0.x, even though they will fail to compile.
514+
515+
*** Future releases of Open MPI beyond the v4.0.x series may
516+
remove these symbols altogether.
517+
518+
*** The Open MPI team STRONGLY encourages all MPI application
519+
developers to stop using these constructs that were first
520+
deprecated over 20 years ago, and finally removed from the MPI
521+
specification in MPI-3.0 (in 2012).
522+
523+
*** The Open MPI FAQ (https://www.open-mpi.org/faq/) contains
524+
examples of how to update legacy MPI applications using these
525+
deleted symbols to use the "new" symbols.
526+
527+
All that being said, if you are unable to immediately update your
528+
application to stop using these legacy MPI-1 symbols, you can
529+
re-enable them in mpi.h by configuring Open MPI with the
530+
--enable-mpi-compatibility flag.
531+
482532
- Rank reordering support is available using the TreeMatch library. It
483533
is activated for the graph and dist_graph topologies.
484534

0 commit comments

Comments
 (0)