2 questions: PHDF5 comm semantics, dimension scales

My apologies if I have asked this before, or if this info is available in
the documentation; I have searched through the online documentation and
cannot find the answer.
The documentation for H5Pset_fapl_mpio says:

' H5Pset_fapl_mpio stores the user-supplied MPI IO parameters comm, for
communicator, and info, for information, in the file access property list
fapl_id. That property list can then be used to create and/or open a file.
H5Pset_fapl_mpio is available only in the parallel HDF5 library and is not a
collective function.
comm is the MPI communicator to be used for file open, as defined in
MPI_FILE_OPEN of MPI-2. This function makes a duplicate of the communicator,
so modifications to comm after this function call returns have no effect on
the file access property list.
...
If the file access property list already contains previously-set
communicator and Info values, those values will be replaced and the old
communicator and Info object will be freed.'

Does this mean that:
1) HDF5 now has a copy of the communicator passed to H5Pset_fapl_mpio so
that I am free to use the communicator I passed in for computations without
worrying about communication collisions?
2) If 'H5Pset_fapl_mpio...is not a collective function,' does that mean it
should only be called by one MPI rank?
3) If I want to open and work with multiple files simultaneously, using the
same or different communicators, then the only way to do this is to create
one file access property list per file using H5Pset_fapl_mpio, right? One
does this instead of reusing the same file access property list (if the
communicator is the same) or placing another call to H5Pset_fapl_mpio and
passing in the the old property list, but the new communicator (if the
communicator is different), correct? (If I am reading the documentation
correctly then opening multiple files with the same access property list
means that they will all use the same communicator and messages may collide,
alternatively if one uses a new file-access-property list then each open
file has a unique communicator/communication context.)

Dimension scales:
4) Also, are there Fortran bindings for the high-level dimension scales API?
If not, one should be able to follow the specification document to implement
dimension scales using lower level HDF5 API calls, right?

Sorry to have so many questions, i just want to make sure that I am
understanding the semantics correctly.
Izaak Beekman

···

===================================
(301)244-9367
Princeton University Doctoral Candidate
Mechanical and Aerospace Engineering
ibeekman@princeton.edu

UMD-CP Visiting Graduate Student
Aerospace Engineering
ibeekman@umiacs.umd.edu
ibeekman@umd.edu

Izaak,

I have the answer for 4), 1-3) will leave to others (but for 2) see also http://www.hdfgroup.org/HDF5/doc/RM/CollectiveCalls.html, I think it answers your question)

My apologies if I have asked this before, or if this info is available in the documentation; I have searched through the online documentation and cannot find the answer.
The documentation for H5Pset_fapl_mpio says:

' H5Pset_fapl_mpio stores the user-supplied MPI IO parameters comm, for communicator, and info, for information, in the file access property list fapl_id. That property list can then be used to create and/or open a file.
H5Pset_fapl_mpio is available only in the parallel HDF5 library and is not a collective function.
comm is the MPI communicator to be used for file open, as defined in MPI_FILE_OPEN of MPI-2. This function makes a duplicate of the communicator, so modifications to comm after this function call returns have no effect on the file access property list.
...
If the file access property list already contains previously-set communicator and Info values, those values will be replaced and the old communicator and Info object will be freed.'

Does this mean that:
1) HDF5 now has a copy of the communicator passed to H5Pset_fapl_mpio so that I am free to use the communicator I passed in for computations without worrying about communication collisions?
2) If 'H5Pset_fapl_mpio...is not a collective function,' does that mean it should only be called by one MPI rank?
3) If I want to open and work with multiple files simultaneously, using the same or different communicators, then the only way to do this is to create one file access property list per file using H5Pset_fapl_mpio, right? One does this instead of reusing the same file access property list (if the communicator is the same) or placing another call to H5Pset_fapl_mpio and passing in the the old property list, but the new communicator (if the communicator is different), correct? (If I am reading the documentation correctly then opening multiple files with the same access property list means that they will all use the same communicator and messages may collide, alternatively if one uses a new file-access-property list then each open file has a unique communicator/communication context.)

Dimension scales:
4) Also, are there Fortran bindings for the high-level dimension scales API? If not, one should be able to follow the specification document to implement dimension scales using lower level HDF5 API calls, right?

Yes, Fortran wrappers for dimension scales will be part of the HDF5 1.8.8 release coming in mid November. We hope to announce pre-release testing early next week.

Elena

···

On Oct 13, 2011, at 5:44 PM, Zaak Beekman wrote:

Sorry to have so many questions, i just want to make sure that I am understanding the semantics correctly.
Izaak Beekman

(301)244-9367
Princeton University Doctoral Candidate
Mechanical and Aerospace Engineering
ibeekman@princeton.edu

UMD-CP Visiting Graduate Student
Aerospace Engineering
ibeekman@umiacs.umd.edu
ibeekman@umd.edu
_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Hi Izaak,

My apologies if I have asked this before, or if this info is available in the documentation; I have searched through the online documentation and cannot find the answer.
The documentation for H5Pset_fapl_mpio says:

' H5Pset_fapl_mpio stores the user-supplied MPI IO parameters comm, for communicator, and info, for information, in the file access property list fapl_id. That property list can then be used to create and/or open a file.
H5Pset_fapl_mpio is available only in the parallel HDF5 library and is not a collective function.
comm is the MPI communicator to be used for file open, as defined in MPI_FILE_OPEN of MPI-2. This function makes a duplicate of the communicator, so modifications to comm after this function call returns have no effect on the file access property list.
...
If the file access property list already contains previously-set communicator and Info values, those values will be replaced and the old communicator and Info object will be freed.'

Does this mean that:
1) HDF5 now has a copy of the communicator passed to H5Pset_fapl_mpio so that I am free to use the communicator I passed in for computations without worrying about communication collisions?

yes.

2) If 'H5Pset_fapl_mpio...is not a collective function,' does that mean it should only be called by one MPI rank?

no, you should call it on all processes with the same parameters (in your case comm and info object).
Although it's not collective, but in your case, you should treat it as collective (on the comm your are using)

3) If I want to open and work with multiple files simultaneously, using the same or different communicators, then the only way to do this is to create one file access property list per file using H5Pset_fapl_mpio, right? One does this instead of reusing the same file access property list (if the communicator is the same) or placing another call to H5Pset_fapl_mpio and passing in the the old property list, but the new communicator (if the communicator is different), correct? (If I am reading the documentation correctly then opening multiple files with the same access property list means that they will all use the same communicator and messages may collide, alternatively if one uses a new file-access-property list then each open file has a unique communicator/communication context.)

If you want to change the communicator you opened the file with, you need to reset it in the fapl then open the file with it; otherwise if your communicator does not change, you can reuse the fapl.

Dimension scales:
4) Also, are there Fortran bindings for the high-level dimension scales API? If not, one should be able to follow the specification document to implement dimension scales using lower level HDF5 API calls, right?

Elena answered this one :slight_smile:

Mohamad

···

On 10/13/2011 05:44 PM, Zaak Beekman wrote:

Sorry to have so many questions, i just want to make sure that I am understanding the semantics correctly.
Izaak Beekman

(301)244-9367
Princeton University Doctoral Candidate
Mechanical and Aerospace Engineering
ibeekman@princeton.edu <mailto:ibeekman@princeton.edu>

UMD-CP Visiting Graduate Student
Aerospace Engineering
ibeekman@umiacs.umd.edu <mailto:ibeekman@umiacs.umd.edu>
ibeekman@umd.edu <mailto:ibeekman@umd.edu>

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org