Resolving issues with deprecated MPI features

This section shows how to resolve issues with deprecated calls when building with Open MPI 4.0.0.

ScaLAPACK uses the MPI_Type_struct function, which was deprecated in version 2 of the MPI standard and removed entirely from version 3. All occurrences of this obsolete feature can be replaced with the correct MPI2 form using sed:

sed -i -e 's/MPI_Type_struct/MPI_Type_create_struct/g' ./BLACS/SRC/cgamn2d_.c
sed -i -e 's/MPI_Type_struct/MPI_Type_create_struct/g' ./BLACS/SRC/dgamn2d_.c
sed -i -e 's/MPI_Type_struct/MPI_Type_create_struct/g' ./BLACS/SRC/igamn2d_.c
sed -i -e 's/MPI_Type_struct/MPI_Type_create_struct/g' ./BLACS/SRC/igamx2d_.c
sed -i -e 's/MPI_Type_struct/MPI_Type_create_struct/g' ./BLACS/SRC/sgamn2d_.c
sed -i -e 's/MPI_Type_struct/MPI_Type_create_struct/g' ./BLACS/SRC/sgamx2d_.c
sed -i -e 's/MPI_Type_struct/MPI_Type_create_struct/g' ./BLACS/SRC/zgamn2d_.c
sed -i -e 's/MPI_Type_struct/MPI_Type_create_struct/g' ./BLACS/SRC/zgamx2d_.c sed -i -e 's/MPI_Attr_get/MPI_Comm_get_attr/g' ./BLACS/SRC/blacs_get_.c

For details about the features removed in Open MPI 4.0.0, see Removed MPI constructs on the Open MPI website.

You can re-enable the support for these features when building Open MPI. For more information, see Building Open MPI with Arm Compiler.

Previous Next