-
Notifications
You must be signed in to change notification settings - Fork 17
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
use serial openPMD #876
use serial openPMD #876
Conversation
cmake/dependencies/openPMD.cmake
Outdated
@@ -11,7 +11,7 @@ function(find_openpmd) | |||
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) | |||
|
|||
# see https://openpmd-api.readthedocs.io/en/0.14.2/dev/buildoptions.html | |||
set(openPMD_USE_MPI ${HiPACE_MPI} CACHE INTERNAL "") | |||
set(openPMD_USE_MPI OFF CACHE INTERNAL "") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's make this an option.
The reason for that is: let's assume you want to use HiPACE++ in a software environment with other BLAST codes that use openPMD, too. Some might depend on a parallel HDF5. But HDF5 unfortunately cannot be installed in two binary variants at the same time in environments like conda.
Similarly, an HPC system might only provide us with a parallel HDF5 (or only a serial HDF5) module.
In such situations, we want to control the parallelism of the I/O layer, even if we only use it serially.
Simple solution that I prefer:
we add an option(...)
.
Fancy solution:
we do a find_package(HDF5 ...)
and decide based on this (but this is more involved and does not apply to other backends like ADIOS2)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree, let's do the simple solution. Will update the PR when I have time :)
Thanks!
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this PR!
We compile openPMD with the or without MPI according to whether HiPACE++ itself is compiled with or without MPI. However, IO is always serial, so this is not needed.
Ran into a compilation issue with ADIOS2 with MPI on LUMI, there I noticed this.
const
isconst
)