-
Notifications
You must be signed in to change notification settings - Fork 667
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
Implement HDF5 parallel features for H5MDReader #2865
Comments
Do we have a way to examine the We almost certainly also need to think about this in the context of @yuxuanzhuang 's picklable/serializable readers, see PR #2723 . (At the moment I don't know if it will be necessary to serialize a reader that's using an MPI communicator already. Normally we would launch multiple copies of the same script with |
That's a good idea. I'll be able to check once I play around with mpi4py. I've managed to build parallel hdf5 and have parallel h5py and mpi4py installed on the workstation. Just trying to copy over my branch's mdanalysis so it should be up and running soon. |
So from what I can find so far, there's a couple ways to see if the file has been opened with parallel drivers - The nice way is to do something like
which will spit out 'mpio' if the file was opened with the parallel driver. I think this is a convenient way to check. I think all files opened with The other way is to do I think just checking |
* Fixes #762 * add H5MD coordinate reader (supports parallel MPI in principle but is not well tested at the moment, see #2865) * added test h5md datafiles: real example (derived from cobrotoxin.trr) and synthetic example for MultiframeReaderTest reader tests * add tests (MultiframeReaderTest and custom) * add documentation (example and parallel MPI) * added h5py into conda dependencies and pyh5md into pip dependencies * update CHANGELOG * update AUTHORS
We will want to check if one can serialize a parallel H5MDReader , ie if |
* Fixes MDAnalysis#762 * add H5MD coordinate reader (supports parallel MPI in principle but is not well tested at the moment, see MDAnalysis#2865) * added test h5md datafiles: real example (derived from cobrotoxin.trr) and synthetic example for MultiframeReaderTest reader tests * add tests (MultiframeReaderTest and custom) * add documentation (example and parallel MPI) * added h5py into conda dependencies and pyh5md into pip dependencies * update CHANGELOG * update AUTHORS
Is your feature request related to a problem?
To use h5py's parallel features, you need to pass
driver
andcomm
arguments when you open a file, like this:We'd like to add the ability to use these arguments with the
H5MDReader
(see PR#2787), but there are some methods (below) that could be a problem due to the stream not being reopened in the same way withdriver
andcomm
.Updated:
Following up on issue #2890, to pickle
H5MD
files opened withdriver="mpio"
andcomm=MPI.COMM_WORLD
, we need a way to store theMPI.Comm
object used to open the file.Describe the solution you'd like
I would pull the keyword arguments,
driver
andcomm
, out of the mda.Universe arguments and store them asself.driver
andself.comm
prior to this line:mdanalysis/package/MDAnalysis/coordinates/H5MD.py
Line 316 in 618f764
Then, perhaps
_reopen
andopen_trajectory
could perform checks to see if the arguments are passed and instead of closing the file, it rewinds it to the first frame.Updated:
Store
comm
as an argument in an__init()__
method when callingH5PYPicklable
, and use some sort of functions that can pickle theMPI.Comm
object similar to https://bitbucket.org/mpi4py/mpi4py/issues/104/pickling-of-mpi-commDescribe alternatives you've considered
Can't think of any other way at the moment
Additional context
H5MD format
pyh5md package
H5PY documentation
EDIT: Updated issue text after issue #2890
The text was updated successfully, but these errors were encountered: