-
-
Notifications
You must be signed in to change notification settings - Fork 122
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
Make MPItrampoline the default #801
Comments
In particular, @JBlaschke @luraess I was wondering if you've tried MPItrampoline with Cray MPI? |
I've been wondering this myself. Wouldn't MPItrampoline being the default mean that you'd have to have another, TBH, having the ability to run MPI stuff out of the box locally one of the greatest selling points for using Julia for HPC stuff. Thus I strongly urge to follow any path that will force Julia users to manually install MPI on their machine if they want to use MPI-enabled packages. What about your latest suggestion in JuliaPackaging/Yggdrasil#6893 (comment) as a potential fix instead? |
TBH I do not fully grasp the MPITrampoline thing. Thus it is also hard for me to give any pros and cons, and I did not yet test it in any of my setups, locally, on servers, not on Cray (Piz Daint or LUMI). I would be happy to help though and could test things on any of these machines. But ideally, I would need a short explanation about MPITrampoline. I agree with @sloede that one of the greatest feature of MPI.jl is that it runs out of the box on local machines, which is ideal for prototyping and small runs - so we should absolutely not go away from that. Then, it seems to be fairly friendly hooking into system installed MPI on servers (mostly OpenMPI) and LUMI as well. |
Let me try to avoid confusion:
Reiterating:
The two remaining issues are:
There is at least on package that does not work with MPItrampoline. This is a Fortran 90 package. (I misread the Fortran MPI standard because there was a confusing paragraph.) This is not easy to fix. I know of only one such package. There are several packages that misread the MPI standard and that don't work with MPItrampoline. I've tried to upstream patches. Most have accepted the respective patches. All (I think?) packages in Yggdrasil support MPItrampoline. I've tested things on a variety of HPC systems. I have not encountered any significant problems. The only "difficulty" is to build MPIwrapper, which is a rather simple standard-conforming package that uses MPI via cmake, and it's necessary to point cmake to the respective system MPI implementation. That is surprisingly difficult. I wish MPI implementations provided a pkgconfig file or a cmake configuration file. The current way which relies on calling |
quoting @JBlaschke
|
Anyone want to open a PR? |
I'll admit to initially being a bit reluctant to making MPItrampline the default MPI implementation, but given
a. it has so far proven fairly successful, and
b. the situation with binary dependencies without MPItrampoline is somewhat difficult (JuliaPackaging/Yggdrasil#6893).
I think it might be worth now making the switch. Any thoughts?
I think my main questions are:
cc @eschnett @lcw
The text was updated successfully, but these errors were encountered: