hdf images hdf images

HDF5 Parallel APIs

Question:

How can Parallel HDF5 APIs be called (collectively, independently)?

Answer:

Here is a list of the APIs. See the end for how to interpret the numbers and letters associated with each API.

Collective Functions:

   H5Aclose (2)
   H5Acreate/H5Acreate1/H5Acreate2 (6) (10)
   H5Acreate_by_name (6) (10) (B)
   H5Adelete
   H5Adelete_by_idx (B)
   H5Adelete_by_name (B)
   H5Arename (A)
   H5Arename_by_name (B)
   H5Awrite (3)

   H5Dclose (2)
   H5Dcreate/H5Dcreate1/H5Dcreate2 (6) (10)
   H5Dcreate_anon (6) (10) (B)
   H5Dextend (5) (11)
   H5Dset_extent (5) (11) (A)

   H5Fclose (1)
   H5Fcreate (9) (10)
   H5Fflush
   H5Fmount
   H5Fopen (10)
   H5Freopen
   H5Funmount

   H5Gclose (2)
   H5Gcreate/H5Gcreate1/H5Gcreate2 (9) (10)
   H5Gcreate_anon (9) (10) (B)
   H5Glink
   H5Glink2 (A)
   H5Gmove
   H5Gmove2 (A)
   H5Gset_comment
   H5Gunlink

   H5Idec_ref (7) (A)
   H5Iinc_ref (7) (A)

   H5Lcopy (B)
   H5Lcreate_external (9) (B)
   H5Lcreate_hard (9) (B)
   H5Lcreate_soft (9) (B)
   H5Lcreate_ud (9) (B)
   H5Ldelete (B)
   H5Ldelete_by_idx (B)
   H5Lmove (B)

   H5Oclose (2) (B)
   H5Ocopy (B)
   H5Odecr_refcount (B)
   H5Oincr_refcount (B)
   H5Olink (B)
   H5Oset_comment (B)
   H5Oset_comment_by_name (B)

   H5Rcreate

   H5Tclose (4)
   H5Tcommit/H5Tcommit1/H5Tcommit2 (9) (10)
   H5Tcommit_anon (9) (10) (B)

These routines may be called independently, if the object will not be modified:

   H5Aopen (10) (B)
   H5Aopen_by_idx (10) (B)
   H5Aopen_by_name (10) (B)
   H5Aopen_idx (10)
   H5Aopen_name (10)

   H5Dopen/H5Dopen1/H5Dopen2 (10) (12)

   H5Gopen/H5Gopen1/H5Gopen2 (10)

   H5Iget_file_id (B)

   H5Oopen (10) (B)
   H5Oopen_by_addr (10) (B)
   H5Oopen_by_idx (10) (B)

   H5Rdereference

   H5Topen/H5Topen1/H5Topen2 (10)

   Additionally, these properties must be set to the same values when they
   are used in a parallel program:

       Dataset Creation Properties:
           H5Pmodify_filter (B)
           H5Premove_filter (B)
           H5Pset_alloc_time
           H5Pset_chunk
           H5Pset_deflate
           H5Pset_external
           H5Pset_fill_time
           H5Pset_fill_value
           H5Pset_filter
           H5Pset_fletcher32 (B)
           H5Pset_layout
           H5Pset_nbit (B)
           H5Pset_shuffle
           H5Pset_szip

       Dataset Transfer Properties:
           H5Pset_btree_ratios
           H5Pset_buffer
           H5Pset_dxpl_mpio
           H5Pset_hyper_cache
           H5Pset_preserve

       File Access Properties:
           H5Pset_alignment
           H5Pset_cache
           H5Pset_fapl_mpio
           H5Pset_fclose_degree
           H5Pset_gc_references
           H5Pset_latest_format (B)
           H5Pset_libver_bounds (B)
           H5Pset_mdc_config (B)
           H5Pset_meta_block_size
           H5Pset_small_data_block_size
           H5Pset_sieve_buf_size

       File Creation Properties:
           H5Pset_istore_k
           H5Pset_shared_mesg_index (B)
           H5Pset_shared_mesg_nindexes (B)
           H5Pset_shared_mesg_phase_change (B)
           H5Pset_sizes
           H5Pset_sym_k
           H5Pset_userblock

       Group Creation Properties:
           H5Pset_est_link_info (B)
           H5Pset_link_creation_order (B)
           H5Pset_link_phase_change (B)
           H5Pset_local_heap_size_hint (B)

       Link Creation Properties:
           H5Pset_char_encoding (B)
           H5Pset_create_intermediate_group (B)

       Object Creation Properties:
           H5Pset_attr_phase_change (B)
           H5Pset_attr_creation_order (B)
           H5Pset_obj_track_times (B)

       Object Copy Properties:
           H5Pset_copy_object (B)

Notes:

       (1) - All the processes must participate only if this is the last
           reference to the file ID.
       (2) - All the processes must participate only if all the file IDs for
           a file have been closed and this is the last outstanding object ID.
       (3) - Because the raw data for an attribute is cached locally, all
           processes must participate in order to guarantee that future
           H5Aread calls return the correct results on all processes.
       (4) - All processes must participate only if the datatype is for a
           committed datatype, all the file IDs for the file have been closed
           and this is the last outstanding object ID.
       (5) - All processes must participate only if the number of chunks in
           the dataset actually changes.
       (6) - All processes must use the same datatype, dataspace and creation
           properties.
       (7) - This function may be called independently if the object ID does
           not refer to an object that was collectively opened.
       (9) - All processes must use the same creation properties.
      (10) - All processes must use the same access properties. 
      (11) - All processes must use the same dataspace dimensions
      (12) - If modifying attributes, then these calls must be collective.

       (A) - Available only in v1.6 or later versions of the library.
       (B) - Available only in v1.8 or later versions of the library.


- - Last modified:May 16th 2011