Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch from C++ MPI interface to C interface #27

Open
mdjurfeldt opened this issue Sep 9, 2016 · 15 comments
Open

Switch from C++ MPI interface to C interface #27

mdjurfeldt opened this issue Sep 9, 2016 · 15 comments

Comments

@mdjurfeldt
Copy link
Contributor

The C++ interface to MPI has been deprecated.

On OpenMPI installations >= 2.0.1 under OSX, the C++ interface is disabled.

MUSIC should switch to using the C interface.

Notifying @heplesser.

@orjanekeberg
Copy link
Contributor

Unfortunately, this also affects the MUSIC API, because Setup::communicator() and Runtime::communicator() both return MPI::Intracomm which will have to change.

@mdjurfeldt
Copy link
Contributor Author

Next release is MUSIC 2.0. I guess an API change could be acceptable. During the path towards release, we could maintain two branches, one with C++ MPI API and one without.

Not sure how good idea it is, but Setup::communicator () and Runtime::communicator () could support both the MPI C++ API (on platforms where it exists) and the MPI C interface through the use of coercion rules. That way, we could have a period where the C++ variant is deprecated, and the need of two branches is obviated.

I should also mention here that it seems rather easy to recompile OpenMPI with the C++ enabled on the OSX platform.

@heplesser
Copy link

@mdjurfeldt Thanks for pointing out the (almost) obvious. With

brew install open-mpi --with-cxx-bindings

one can install current MPI versions with C++ bindings under OSX.

@lekshmideepu
Copy link
Contributor

lekshmideepu commented Apr 12, 2019

@heplesser : To me it says Error: invalid option: --with-cxx-bindings

@heplesser
Copy link

@lekshmideepu The open-mpi formula may have changed over the past 2.5 years, so that the option is no longer available. Maybe it is no longer needed, and C++ bindings are built automatically?

@lekshmideepu
Copy link
Contributor

@heplesser
From the OpenMPI release notes:

The MPI C++ bindings -- which were removed from the MPI standard in
v3.0 -- are no longer built by default and will be removed in some
future version of Open MPI. Use the --enable-mpi-cxx-bindings
configure option to build the deprecated/removed MPI C++ bindings.

@mdjurfeldt
Copy link
Contributor Author

@heplesser @lekshmideepu It is probably time that I release a version of MUSIC which uses the C MPI bindings directly.

@opoplawski
Copy link

FYI - openmpi 5.0.0 has been released which removed the C++ bindings.

@sanjayankur31
Copy link

@mdjurfeldt @heplesser : what can we do to help here? MUSIC won't build on the latest Fedora releases (currently rawhide) with OpenMPI until this is fixed.

@mdjurfeldt
Copy link
Contributor Author

mdjurfeldt commented Dec 12, 2023

@sanjayankur31 @heplesser MUSIC switched to using MPI C bindings mid 2022 and the 1.2 releases have these changes. I will look into why it doesn't build with OpenMPI 5.0.0.

@sanjayankur31
Copy link

Ah, great, thanks very much @mdjurfeldt . I'll also go check again. It could be other issues causing our build to fail too.

@mdjurfeldt
Copy link
Contributor Author

@sanjayankur31 @heplesser Thank you, Sanjay. Once we have sorted this out, I'll close this issue (should have been done long ago!).

@sanjayankur31
Copy link

We're just waiting for Cython 3.0.6 to land:

#77 (comment)

I'll let you know as soon as this is done and confirmed.

@sanjayankur31
Copy link

We have a fixed build now, so I think this can be closed ✨

@sanjayankur31
Copy link

Although, we have this issue open at the mo, still investigating what's going on here:

nest/nest-simulator#3057

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants