FS#61764 - [openmpi] Removal of MPI-1 interfaces breaks packages

Attached to Project: Arch Linux
Opened by Christian Pfeiffer (ChrisTX) - Thursday, 14 February 2019, 16:22 GMT
Last edited by Levente Polyak (anthraxx) - Thursday, 10 October 2019, 21:18 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Levente Polyak (anthraxx)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:
OpenMPI 4.0 removed some MPI-1 interfaces that were deprecated in MPI-2 and deleted in MPI-3 by default. The upgrade thus breaks dependent packages like hdf5-openmpi, which depend on these symbols. They can be enabled again by building with --enable-mpi1-compatibility .

HDF5 in specific has a partial fix to replace them with their MPI-2 equivalents in the trunk, and it's staged to be fixed for release 1.10.5 - see https://forum.hdfgroup.org/t/hdf5-does-not-compile-with-openmpi-4-0-0/5110/3 for the upstream bug report. However, this most likely breaks other packages or softwares from AUR for the same reason.

Additional info:
* openmpi 4.0.0
* hdf5-openmpi 1.10.4

Steps to reproduce:
Try to use hdf5-openmpi, get the following symbol errors:
libhdf5.so: undefined reference to `MPI_Type_extent'
libhdf5.so: undefined reference to `OMPI_C_MPI_NULL_COPY_FN'
This task depends upon

Closed by  Levente Polyak (anthraxx)
Thursday, 10 October 2019, 21:18 GMT
Reason for closing:  Won't fix
Additional comments about closing:  software must adjust, using something thats deprecated for 20 years is not acceptable and in my humble opinion not an issue at the distro but at upstream doing so
Comment by pnoufi fido (pnfdismdfosjfmsofk) - Friday, 22 March 2019, 19:18 GMT
This is a big annoyance for me. BTW, configure options should be revised

configure: WARNING: unrecognized options: --with-threads, --enable-mpi-thread-multiple, --enable-smp-locks

Comment by Ashwin Vishnu (jadelord) - Wednesday, 17 April 2019, 13:06 GMT
This affects installation of mpi4py as well. See the following issues:

* https://bitbucket.org/mpi4py/mpi4py/issues/121/pip-install-error

* https://github.com/open-mpi/ompi/issues/6601
Comment by Bruno Pagani (ArchangeGabriel) - Wednesday, 17 April 2019, 13:15 GMT
@jadelord: Not the same issue, but a new one after 4.0.1 release… Sigh.
Comment by Jeff Squyres (jsquyres) - Wednesday, 17 April 2019, 14:43 GMT
I'm one of the Open MPI developers.

Yes, for the v4.0.x series, you do not need --with-threads, --enable-mpi-thread-multiple, --enable-smp-locks flags. These have all disappeared.

Additionally, Open MPI v4.0.x is moving towards removing legacy MPI constructs: APIs that were deprecated in 1996 (over 20 years ago) and deleted from the MPI specification in 2012.

That being said, some applications still use these legacy constructs. Hence, Open MPI v4.0.x is just continuing down the path of raising awareness (we started with legacy compilation warnings in the v3.0.x series) -- we haven't removed these legacy constructs yet. Please see https://www.open-mpi.org/faq/?category=mpi-removed for more detail.

Distros and packagers are encouraged to join the https://lists.open-mpi.org/mailman/listinfo/ompi-packagers mailing list to have a 2-way communication with the Open MPI developers, and be notified of these kinds of changes.

For the Open MPI v4.0.x series, you should probably configure Open MPI with --enable-mpi1-compatibility to restore legacy constructs to mpi.h (i.e., MPI's main header file for applications) so that legacy applications will continue to compile. Also please please please help us encourage MPI application developers to stop using these legacy constructs so that someday you can stop using the --enable-mpi1-compatibilty flag (which will also disappear in some future Open MPI release series).

Thank you!
Comment by Levente Polyak (anthraxx) - Thursday, 10 October 2019, 21:17 GMT
I've remove the obsolete flags, however we have investigated the in repo usage of openmpi and mostly everything works except valgrind where we have disabled openmpi support. Nothing has happened for 20 years and nothing will happen if people keep it being enabled. I have thought about it for a very long time and i would prefer us to be on the modern side and make people and devs aware why its disabled and who to approach to get it changed (upstream :P).
So i very much respect your developer opinion provided but i try to continue the route of having legacy features not enabled. Thanks for reaching out, i have made a subscription request to that mailinglist (i was not yet approved).

Loading...