hdf images hdf images

This web site is no longer updated (but will remain online).
Please see The HDF Group's new Support Portal for the latest information.

HDF5 Parallel APIs

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

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: 13 February 2014