-
Notifications
You must be signed in to change notification settings - Fork 12
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
PNetCDF support #278
Merged
hklion
merged 17 commits into
seahorce-scidac:development
from
iulian787:iulian787/pnetcdf_support
Nov 12, 2024
Merged
PNetCDF support #278
hklion
merged 17 commits into
seahorce-scidac:development
from
iulian787:iulian787/pnetcdf_support
Nov 12, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
iulian787
force-pushed
the
iulian787/pnetcdf_support
branch
from
October 31, 2024 04:33
86d0d9f
to
1b6aed0
Compare
need to use make USE_PNETCDF=TRUE DEBUG=TRUE -j8 there is no par_access anymore collective calls will need to be made with *_all methods so far, everything is independent, which is not allowed
this methd is collective, while some header data is written only on master task (descriptive data) still need to fix the coordinates data
add the strided versions, and float and integer put_all calls also, add all get_all calls, for doble, float, int, strided too
user has to define PKG_CONFIG_PATH with the proper pnetcdf installation then a cmake command would work cmake -DCMAKE_INSTALL_PREFIX:PATH=<install_prefix> \ -DCMAKE_CXX_COMPILER:STRING=mpicxx \ -DCMAKE_C_COMPILER:STRING=mpicc \ -DCMAKE_Fortran_COMPILER:STRING=mpifort \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DREMORA_DIM:STRING=3 \ -DREMORA_ENABLE_MPI:BOOL=ON \ -DREMORA_ENABLE_TESTS:BOOL=ON \ -DREMORA_ENABLE_FCOMPARE:BOOL=ON \ -DREMORA_ENABLE_DOCUMENTATION:BOOL=OFF \ -DREMORA_ENABLE_PNETCDF:BOOL=ON \ -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON \ <source remora>
actual read is in serial, on task 0 only need to fix read when it is actual in parallel
in fact, still read only on proc 0, and broadcast what is important
when we write in parallel, number of iterations per task can be different we cannot use blocking calls in general need to use non-blocking calls
iulian787
force-pushed
the
iulian787/pnetcdf_support
branch
from
November 11, 2024 22:04
fad3ebd
to
e8ac047
Compare
iput is used in pnetcdf to signal non-blocking writes there should be more iput methods added in NCInterface, for completeness
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pnetcdf changes, in order to use pnetcdf instead of netcdf4, for parallel output
Changed NCInterface to use ncmpi_* calls
removed group NC framework (not used so far)
collective calls are triggered by ncmpi_put_var*_all calls for pnetcdf.
non-blocking writes are needed to, because there is no guarantee that the number of iterations is the same on each task, for various tiling modes.