PHDF5 comm semantics

Does the library make a private copy of the communicator passed in with
H5Pset_fapl_mpio? If so, to operate on multiple files *simultaneously* they
should each have their own file-access-property list so that they each have
their own internal communicators, righ? (Otherwise you could get
communication collisions.) Or is opening multiple files simulataneously not
even possible in PHDF5?

-Izaak

···

On Fri, Oct 14, 2011 at 9:39 AM, <hdf-forum-request@hdfgroup.org> wrote:

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.

Hi Izaak,

I think I misunderstood your question.

the fapl call is just setting properties (comm and info) to use when accessing the file. And since the communicator and info object are duplicated internally, you can do whatever you want in your program with the the comm, or the info object after you set them in the fapl call. If you reset those parameters in the fapl before opening the file, then you will override them.

To open a new file with a different communicator, you will need to call

H5Pset_fapl_mpio| with the new communicator on a new fapl_id for the

new file. so yes you will need a fapl for each file, if you are opening multiple files at once with different communicators.

Hope this clears it up.

Mohamad

···

On 10/14/2011 08:49 AM, Zaak Beekman wrote:

On Fri, Oct 14, 2011 at 9:39 AM, <hdf-forum-request@hdfgroup.org > <mailto:hdf-forum-request@hdfgroup.org>> wrote:

    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.

Does the library make a private copy of the communicator passed in with H5Pset_fapl_mpio? If so, to operate on multiple files *simultaneously* they should each have their own file-access-property list so that they each have their own internal communicators, righ? (Otherwise you could get communication collisions.) Or is opening multiple files simulataneously not even possible in PHDF5?

-Izaak

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