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
Migrate mpiwrap to mpi_f08 #1030
Comments
Then we can remove the checks for MPI version 2.0, too. The module mpi_f08 is part of the MPI 3.0 standard. But that shouldn't be a problem because it has been published in 2012 and probably every MPI library in use supports the 3.0 standard. |
While grasping through the different documentations of MPI and the actual libraries (mostly OpenMPI), I have found that the mpif90 compiler is deprecated since OpenMPI version 1.7 (!) in favor of mpifort. There are also a few workarounds we can revise or remove in favor of clearer code. |
If you are interested in my current plans in this direction, check this. In general, I would like to introduce OOP because most MPI calls are bound to a single communicators/windows/files/requests/... (exceptions: mpi_init, mpi_finalize, mpi_waitall, ...), but could also be adopted to cartesian communicators, blacs contexts etc. The syntax would then be something like |
+1 for upgrading PEXSI and PTScotch.
Yes, we should really adopt more OOP. It will allow us to replace many of those dreadful if-else-spaghetti-regions with polymorphism. See also #356 for inspiration. |
I just found this old TODO saying that we can re-enable |
If it is just about compilation, it might work. But the executable does not run with all combinations of compilers and libraries (like MPICH with gcc 11, our common setup on the dashboard). A short status update on OOP with MPI: |
Another point would be to move on to Fortran 2008+TS29113/Fortran 2018 (Check the implementation status of Gfortran). This will allow us to simplify some parts of our code (like storing input data) significantly or to use MPI to its full extend by exchanging non-contiguous arrays or derived types. |
To comply with the Fortran 2008 standard we should upgrade mpiwrap to the new mpi_f80 API.
The text was updated successfully, but these errors were encountered: