mpi icon indicating copy to clipboard operation
mpi copied to clipboard

Drop MPI1 usage

Open opoplawski opened this issue 6 years ago • 5 comments

Compilation of Boost MPI using code fails with OpenMPI 4.0. For example:

[  1%] Building CXX object src/core/cluster_analysis/CMakeFiles/cluster_analysis.dir/Cluster.cpp.o
cd /builddir/build/BUILD/espresso-4.0.0/openmpi_build/src/core/cluster_analysis && /usr/bin/c++  -DH5XX_USE_MPI -Dcluster_analysis_EXPORTS -I/builddir/build/BUILD/espresso-4.0.0/src -I/builddir/build/BUILD/espresso-4.0.0/openmpi_build/src -I/builddir/build/BUILD/espresso-4.0.0/src/core -I/builddir/build/BUILD/espresso-4.0.0/openmpi_build/src/core -isystem /usr/include/openmpi-x86_64  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -pthread -Wall -Wno-sign-compare -Wno-unused-function -Wno-unused-variable -DNDEBUG -fPIC   -std=c++11 -o CMakeFiles/cluster_analysis.dir/Cluster.cpp.o -c /builddir/build/BUILD/espresso-4.0.0/src/core/cluster_analysis/Cluster.cpp
BUILDSTDERR: In file included from /usr/include/boost/mpi/communicator.hpp:17:0,
BUILDSTDERR:                  from /builddir/build/BUILD/espresso-4.0.0/src/core/communication.hpp:56,
BUILDSTDERR:                  from /builddir/build/BUILD/espresso-4.0.0/src/core/grid.hpp:47,
BUILDSTDERR:                  from /builddir/build/BUILD/espresso-4.0.0/src/core/cluster_analysis/Cluster.cpp:19:
BUILDSTDERR: /usr/include/boost/mpi/detail/mpi_datatype_primitive.hpp: In constructor 'boost::mpi::detail::mpi_datatype_primitive::mpi_datatype_primitive(const void*)':
BUILDSTDERR: /usr/include/boost/mpi/detail/mpi_datatype_primitive.hpp:52:7: error: 'MPI_Address' was not declared in this scope
BUILDSTDERR:        BOOST_MPI_CHECK_RESULT(MPI_Address,(const_cast<void*>(orig), &origin));
BUILDSTDERR:        ^
BUILDSTDERR: /usr/include/boost/mpi/detail/mpi_datatype_primitive.hpp: In member function 'ompi_datatype_t* boost::mpi::detail::mpi_datatype_primitive::get_mpi_datatype()':
BUILDSTDERR: /usr/include/boost/mpi/detail/mpi_datatype_primitive.hpp:75:9: error: 'MPI_Type_struct' was not declared in this scope
BUILDSTDERR:          BOOST_MPI_CHECK_RESULT(MPI_Type_struct,
BUILDSTDERR:          ^
BUILDSTDERR: /usr/include/boost/mpi/detail/mpi_datatype_primitive.hpp: In member function 'void boost::mpi::detail::mpi_datatype_primitive::save_impl(const void*, MPI_Datatype, int)':
BUILDSTDERR: /usr/include/boost/mpi/detail/mpi_datatype_primitive.hpp:108:7: error: 'MPI_Address' was not declared in this scope
BUILDSTDERR:        BOOST_MPI_CHECK_RESULT(MPI_Address,(const_cast<void*>(p), &a));
BUILDSTDERR:        ^
BUILDSTDERR: make[2]: *** [src/core/cluster_analysis/CMakeFiles/cluster_analysis.dir/Cluster.cpp.o] Error 1

opoplawski avatar Nov 26 '18 03:11 opoplawski

opened pull request #78

aminiussi avatar Dec 09 '18 22:12 aminiussi

Apart from MPI_Address, did you find any other deprecated usage ?

I just installed openmpi 4.0.0 and it went ok.

Thanks

aminiussi avatar Dec 09 '18 23:12 aminiussi

merged in develop

aminiussi avatar Dec 09 '18 23:12 aminiussi

Bug there is a problem: OpenMPI is supposed to set MPI_VERSION to 3 (for 4.0) and MPI_Address is protected according to MPI_VERSION >= 2.

So I'm gonna install openMPI 4.0

aminiussi avatar Dec 10 '18 23:12 aminiussi

Just past the test with th 4.0 version of OpenMPI. How did you get that error message ?

It seems you're using OpenMPI 4.0, was is modified ?

Thanks

aminiussi avatar Dec 10 '18 23:12 aminiussi