'ompi_mpi_lb' is deprecated: MPI_LB is deprecated in MPI-2.0
Issue #159
resolved
I am compiling mpi4py with AppleClang 11.0.3 and OpenMPI 3.1.5
In step
mpicc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I[...]/include/python3.7m -c _configtest.c -o _configtest.o
The following warning is raised:
warning: 'ompi_mpi_lb' is deprecated: MPI_LB is deprecated in MPI-2.0 [-Wdeprecated-declarations]
MPI_Datatype s; s = MPI_LB; (void)s;
OpenMPI 4.0 is removing a lot of deprecated MPI functionality by default, unless the backwards compatibility layer (non-default) is enabled.
Comments (4)
-
-
- changed status to resolved
-
reporter Yep, saw this with OpenMPI 3 in Spack: https://github.com/spack/spack/ and was bitten during an early OpenMPI 4.0 migration a few months back. OpenMPI 4 really removes those deprecated symbols, unless build with explicit, non-default backwards compatibility flags.
-
reporter see your check
for symbol, stype in ( ('MPI_LB', 'MPI_Datatype'), ('MPI_UB', 'MPI_Datatype'), ):
in
setup.py
now, thx! Looks good, just wanted to make sure you are aware of it. - Log in to comment
I was bitten by this mess long time ago. That’s because you are compiling with Open MPI 3.x, and
MPI_LB/UB
are still available, this is checked at build time in mpi4py'ssetup.py
. Trust me, I’m doing the right thing here. Don’t you remember that we ship Open MPI 4 in conda-forge, and mpi4py builds just fine with no additional patches?