Parallel HDF5

Why ?
Serial HDF5 can be slow:

  • when many processes try to write/read to same file
  • when handling large files
  • when a large amount of IO is done (postprocessing…)

How AstroBEAR handles IO:
Master queries all processes asking for data, data is then written to chombo file.

Original image from http://www.astro.sunysb.edu/mzingale/io_tutorial/

Simplified version of astrobear IO routine:

offset = 0
for every active process
   fectch data
   write data to chombo beginning at offset
   update offset

How this would be done in parallel:
Every process would write at a different offset.

Original image from http://www.astro.sunysb.edu/mzingale/io_tutorial/

Requirements of parallel hdf5 usage:

  • MPI-IO (should be on all machines)
  • Parallel filesystem (not on all machines)

PHDF5 should be considered as an addition, not a replacement for serial HDF5.

Parallel file accessing aspects:
All processes that have access to a file must do basic operations collectively:

  • Open/close/create file
  • Open/close/extend datasets

Other operations can be done either collectively or independently:

  • File read
  • File writes

The easy part:

  • The two libraries are incredibly similar.
  • We can adapt our serial routines to use parallel, not implement parallel IO from scratch.

The challenging part:

  • Every process must know where to write.
  • An algorithm is needed.
  • Concept explained in image below

Comments

No comments.