On Wed, Jul 23, 2008 at 09:47:56AM -0400, Robert Kubrick wrote:
> HDF5 supports parallel I/O through MPI-I/O. I've never used it, but I  
> think the API is easier than direct MPI-I/O, maybe even easier than raw 
> read/writes given its support for hierarchal objects and metadata.

In addition to the API provided by parallel HDF5 and parallel-NetCDF,
these high level libraries offer a self-describing portable file
format.  Pretty nice when collaborating with others. Plus there are a
host of viewers for these file formats, so that's another thing you
don't have to worry about.

> HDF5 supports multiple storage models and it supports MPI-IO.
> HDF5 has an open interface to access raw storage. This enables HDF5  
> files to be written to a variety of media, including sequential files, 
> families of files, memory, Unix sockets (i.e., a network).
> New "Virtual File" drivers can be added to support new storage access  
> mechanisms.
> HDF5 also supports MPI-IO with Parallel HDF5. When building HDF5,  
> parallel support is included by configuring with the --enable-parallel 
> option. A tutorial for Parallel HDF5 is included with the HDF5 Tutorial 
> at:
>   /HDF5/Tutor/

It's a very good tutorial. Do read the parallel I/O chapter closely,
especially the parts about enabling collective I/O via property lists
and transfer templates.  For many HDF5 workloads today, collective I/O
is the key to getting good performance (this was not always the case
back in the bad old days of MPICH1 and LAM, but has been since at
least the HDF5-1.6 series).

==rob

-- 
Rob Latham
Mathematics and Computer Science Division    A215 0178 EA2D B059 8CDF
Argonne National Lab, IL USA                 B29D F333 664A 4280 315B

Reply via email to