portable parallel i/o...datatype definitions can be shared among objects in an hdf file, providing...

66
Mitglied der Helmholtz-Gemeinschaft Portable Parallel I/O Handling large datasets in heterogeneous parallel environments May 21, 2014 Michael Stephan

Upload: others

Post on 13-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Mitg

lied

derH

elm

holtz

-Gem

eins

chaf

t

Portable Parallel I/OHandling large datasets inheterogeneous parallel environments

May 21, 2014 Michael Stephan

Page 2: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Mitg

lied

derH

elm

holtz

-Gem

eins

chaf

t

Portable Parallel I/OPart I: HDF5

May 21, 2014 Michael Stephan

Page 3: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Learning Objectives

At the end of this lesson, you will be able toGet an idea about the HDF5 funktionality.Create a short example for HDF5 file I/O.Discuss the advantages and disadvantages of HDF5 fileI/O.UsersGuide (352 pages)ReferenceGuide (802 pages)

May 21, 2014 Michael Stephan Slide 3

Page 4: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Outline

Introduction

Introduction to HDF5 Programming Model and APIs

General Programming Paradigm

Parallele HDF5

May 21, 2014 Michael Stephan Slide 4

Page 5: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Outline

IntroductionMotivationTerms and Definitions

Introduction to HDF5 Programming Model and APIs

General Programming Paradigm

Parallele HDF5

May 21, 2014 Michael Stephan Slide 5

Page 6: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

What is HDF5? I

Unique technology suite that makes possible themanagement of extremely large and complex datacollections

May 21, 2014 Michael Stephan Slide 6

Page 7: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

What is HDF5? IIThe HDF5 technology suite includes:

A versatile data model that can represent very complex dataobjects and a wide variety of metadata.A completely portable file format with no limit on the numberor size of data objects in the collection.A software library that runs on a range of computationalplatforms, from laptops to massively parallel systems, andimplements a high-level API with C, C++, Fortran 90, andJava interfaces.A rich set of integrated performance features that allow foraccess time and storage space optimizations.Tools and applications for managing, manipulating, viewing,and analyzing the data in the collection.The HDF5 data model, file format, API, library, and tools areopen and distributed without charge.

May 21, 2014 Michael Stephan Slide 7

Page 8: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

What is HDF5? IIIUnlimited size, extensibility, and portability

HDF5 does not limit the size of files or the size or number ofobjects in a file.The HDF5 format and library are extensible and designed toevolve gracefully to satisfy new demands.HDF5 functionality and data is portable across virtually allcomputing platforms and is distributed with C, C++, Java, andFortran90 programming interfaces.

May 21, 2014 Michael Stephan Slide 8

Page 9: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

What is HDF5? IVGeneral data model

HDF5 has a simple but versatile data model.The HDF5 data model supports complex data relationshipsand dependencies through its grouping and linkingmechanisms.HDF5 accommodates many common types of metadata andarbitrary user-defined metadata.

May 21, 2014 Michael Stephan Slide 9

Page 10: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

What is HDF5? VUnlimited variety of datatypes

HDF5 supports a rich set of pre-defined datatypes as well asthe creation of an unlimited variety of complex user-defineddatatypes.Datatype definitions can be shared among objects in an HDFfile, providing a powerful and efficient mechanism fordescribing data.Datatype definitions include information such as byte order(endian), size, and floating point representation, to fullydescribe how the data is stored, insuring portability to otherplatforms.

May 21, 2014 Michael Stephan Slide 10

Page 11: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

What is HDF5? VIFlexible, efficient I/O

HDF5, through its virtual file layer, offers extremely flexiblestorage and data transfer capabilities. Standard (Posix),Parallel, and Network I/O file drivers are provided with HDF5.Application developers can write additional file drivers toimplement customized data storage or transport capabilities.The parallel I/O driver for HDF5 reduces access times onparallel systems by reading/writing multiple data streamssimultaneously.

May 21, 2014 Michael Stephan Slide 11

Page 12: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

What is HDF5? VIIFlexible data storage

HDF5 employs various compression, extensibility, andchunking strategies to improve access, management, andstorage efficiency.HDF5 provides for external storage of raw data, allowing rawdata to be shared among HDF5 files and/or applications, andoften saving disk space.

May 21, 2014 Michael Stephan Slide 12

Page 13: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

What is HDF5? VIIIData transformation and complex subsetting

HDF5 enables datatype and spatial transformation during I/Ooperations.HDF5 data I/O functions can operate on selected subsets ofthe data, reducing transferred data volume and improvingaccess speed.

May 21, 2014 Michael Stephan Slide 13

Page 14: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Who uses HDF5?

Applications that deal with big or complex dataOver 200 different types of apps2+ million product users world-wideAcademia, government agencies, industry

May 21, 2014 Michael Stephan Slide 14

Page 15: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Outline

IntroductionMotivationTerms and Definitions

Introduction to HDF5 Programming Model and APIs

General Programming Paradigm

Parallele HDF5

May 21, 2014 Michael Stephan Slide 15

Page 16: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

An HDF5 “file” is a container...

...into which you can put your data objects Structures toorganize objects

May 21, 2014 Michael Stephan Slide 16

Page 17: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

HDF5 model

Groups – provide structure among objectsDatasets – where the primary data goes

Data arraysRich set of datatype optionsFlexible, efficient storage and I/O

Attributes, for metadataOther objects

Links (point to data in a file or in another HDF5 file)Datatypes (can be stored for complex structures and reusedby multiple datatsets)

May 21, 2014 Michael Stephan Slide 17

Page 18: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

HDF5 Dataset

May 21, 2014 Michael Stephan Slide 18

Page 19: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

HDF5 Dataspace

Two rolesDataspace contains spatial info about a dataset stored in afile

Rank and dimensionsPermanent part of dataset definition

Dataspace describes application’s data buffer and dataelements participating in I/O

May 21, 2014 Michael Stephan Slide 19

Page 20: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

HDF5 Datatype I

Datatype – how to interpret a data elementPermanent part of the dataset definitionTwo classes: atomic and compoundCan be stored in a file as an HDF5 object (HDF5 committeddatatype)Can be shared among different datasets

May 21, 2014 Michael Stephan Slide 20

Page 21: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

HDF5 Datatype IIHDF5 atomic types

normal integer and floatuser-definable (e.g., 13-bit integer)variable length types (e.g., strings)references to objects/dataset regionsenumeration - names mapped to integersarray

May 21, 2014 Michael Stephan Slide 21

Page 22: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

HDF5 Datatype IIIHDF5 compound types

Comparable to C structs (“records”)Members can be atomic or compound types

May 21, 2014 Michael Stephan Slide 22

Page 23: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

HDF5 dataset: array of records

May 21, 2014 Michael Stephan Slide 23

Page 24: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Special storage options for dataset

May 21, 2014 Michael Stephan Slide 24

Page 25: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

HDF5 Attribute

Attribute – data of the form “name = value”, attached to anobject by applicationOperations similar to dataset operations, but

Not extendibleNo compression or partial I/O

Can be overwritten, deleted, added during the “life“ of adataset

May 21, 2014 Michael Stephan Slide 25

Page 26: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

HDF5 Group

A mechanism for organizing collections of related objectsEvery file starts with a root groupSimilar to UNIX directories

/ (root)/X/Y/X/temp

Can have attributes

May 21, 2014 Michael Stephan Slide 26

Page 27: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Partial I/O

Move just part of a dataset

May 21, 2014 Michael Stephan Slide 27

Page 28: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Partial I/O

Move just part of a dataset

May 21, 2014 Michael Stephan Slide 28

Page 29: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Layers – parallel example

May 21, 2014 Michael Stephan Slide 29

Page 30: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Virtual I/O layer

May 21, 2014 Michael Stephan Slide 30

Page 31: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Virtual I/O layer

A public API for writing I/O driversAllows HDF5 to interface to disk, the network, memory, ora user-defined device

May 21, 2014 Michael Stephan Slide 31

Page 32: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Portability and Robustness

Runs almost anywhereLinux and UNIX workstationsWindows, Mac OS XBig ASC machines, Crays, VMS systemsTeraGrid and other clustersSource and binaries available fromhttp://www.hdfgroup.org/HDF5/release/index.html

May 21, 2014 Michael Stephan Slide 32

Page 33: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Other Software

The HDF GroupHDFViewJava toolsCommand-line utilitiesWeb browser plug-inRegression and performance testing softwareParallel h5diff

3rd Party (IDL, MATLAB, Mathematica, PyTables, HDFExplorer, LabView)Communities (EOS, ASC, CGNS)Integration with other software (iRODS, OPeNDAP)

May 21, 2014 Michael Stephan Slide 33

Page 34: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

HDF5 software stack

May 21, 2014 Michael Stephan Slide 34

Page 35: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Structure of HDF5 Library

May 21, 2014 Michael Stephan Slide 35

Page 36: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Goals of HDF5 Library

Provide flexible API to support a wide range of operationson data.Support high performance access in serial and parallelcomputing environments.Be compatible with common data models andprogramming languages.

Because of these goals, the HDF5 API is rich and large

May 21, 2014 Michael Stephan Slide 36

Page 37: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Operations Supported by the API

Create groups, datasets, attributes, linkagesCreate complex data typesAssign storage and I/O properties to objectsPerform complex subsetting during read/writeUse variety of I/O-”devices“ (parallel, remote, etc.)Transform data during I/OQuery about file and structure and propertiesQuery about object structure, content, properties

May 21, 2014 Michael Stephan Slide 37

Page 38: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Characteristics of the HDF5 API

For flexibility, the API is extensive300+ functions

This can be daunting but there is hopeA few functions can do a lotStart simpleBuild up knowledge as more features are needed

Library functions are categorized by object type”H5Lite“ API supports basic capabilities

May 21, 2014 Michael Stephan Slide 38

Page 39: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

The General HDF5 API

Currently C, Fortran 90, Java, and C++ bindings.C routines begin with prefix H5?? is a character corresponding to the type of object thefunction acts on

Example APIs:H5D : Dataset interface e.g., H5DreadH5F : File interface e.g., H5FopenH5S : dataSpace interface e.g., H5Sclose

May 21, 2014 Michael Stephan Slide 39

Page 40: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Compiling HDF5 Applications

HDF5 wrappers (not fully tested!)h5cc HDF5 C compiler command (similar to mpicc)h5fc HDF5 F90 compiler command (similar to mpif90)h5c++ HDF5 C++ compiler command

Makefile in /bgsys/local/hdf5/examples/jugene/

May 21, 2014 Michael Stephan Slide 40

Page 41: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

General Programming Paradigm

Properties of object are optionally definedCreation propertiesAccess property listsDefault values used if none are defined

Object is opened or createdObject is accessed, possibly many timesObject is closed

May 21, 2014 Michael Stephan Slide 41

Page 42: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Order of Operations

An order is imposed on operations by argumentdependencies

A file must be opened before a dataset because the datasetopen call requires a file handle as an argument

Objects can be closed in any order

May 21, 2014 Michael Stephan Slide 42

Page 43: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

HDF5 Defined Types

For portability, the HDF5 library has its own defined types:hid t: object identifiers (native integer)hsize t: size used for dimensions (unsigned long or unsignedlong long)hssize t: for specifying coordinates and sometimes fordimensions (signed long or signed long long)herr t: function return valuehvl t: variable length datatype

For C, include hdf5.h in your HDF5 application.

May 21, 2014 Michael Stephan Slide 43

Page 44: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

HDF5 Information

http://www.hdfgroup.org/HDF5//usr/local/hdf5/examples/ (JUQUEEN / JUROPA)/bgsys/local/hdf5/examples/ (JUQUEEN)Google ;-)

May 21, 2014 Michael Stephan Slide 44

Page 45: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Outline

Introduction

Introduction to HDF5 Programming Model and APIs

General Programming Paradigm

Parallele HDF5Overview of Parallel HDF5 Design

May 21, 2014 Michael Stephan Slide 45

Page 46: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

PHDF5 Requirements

Support MPI programmingPHDF5 files compatible with serial HDF5 files

Shareable between different serial or parallel platformsSingle file image to all processes

One file per process design is undesirableExpensive post processingNot usable by different number of processes

Standard parallel I/O interfaceMust be portable to different platforms

May 21, 2014 Michael Stephan Slide 46

Page 47: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

PHDF5 Implementation Layers

May 21, 2014 Michael Stephan Slide 47

Page 48: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

MPI-IO vs. HDF5 I

MPI-IO is an Input/Output API.It treats the data file as a “linear byte stream” and eachMPI application needs to provide its own file view and datarepresentations to interpret those bytes.All data stored are machine dependent except the“external32” representation.External32 is defined in Big Endianness

Little-endian machines have to do the data conversion in bothread or write operations.64bit sized data types may lose information.

May 21, 2014 Michael Stephan Slide 48

Page 49: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

MPI-IO vs. HDF5 IIHDF5 is a data management software.It stores the data and metadata according to the HDF5data format definition.

HDF5 file is self-described.Each machine can store the data in its own nativerepresentation for efficient I/O without loss of data precision.Any necessary data representation conversion is done by theHDF5 library automatically.

May 21, 2014 Michael Stephan Slide 49

Page 50: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Programming Restrictions

Most PHDF5 APIs are collectivePHDF5 opens a parallel file with a communicator

Returns a file-handleFuture access to the file via the file-handleAll processes must participate in collective PHDF5 APIsDifferent files can be opened via different communicators

May 21, 2014 Michael Stephan Slide 50

Page 51: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Examples of PHDF5 API

Examples of PHDF5 collective APIFile operations: H5Fcreate, H5Fopen, H5FcloseObjects creation: H5Dcreate, H5Dopen, H5DcloseObjects structure: H5Dextend (increase dimension sizes)

Array data transfer can be collective or independentDataset operations: H5Dwrite, H5DreadCollectiveness is indicated by function parameters, not byfunction names as in MPI API

May 21, 2014 Michael Stephan Slide 51

Page 52: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

What Does PHDF5 Support?

After a file is opened by the processes of a communicatorAll parts of file are accessible by all processesAll objects in the file are accessible by all processesMultiple processes may write to the same data arrayEach process may write to individual data array

C and F90 language interfaces

May 21, 2014 Michael Stephan Slide 52

Page 53: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Programming model

HDF5 uses access template object (property list) to controlthe file access mechanismGeneral model to access HDF5 file in parallel:

Setup MPI-IO or POSIX access template(access property list)Open FileAccess DataClose File

May 21, 2014 Michael Stephan Slide 53

Page 54: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Setup MPI-IO access template

Each process of the MPI communicator creates an accesstemplate and sets it up with MPI parallel accessinformation

C: herr t H5Pset fapl mpio(hid t plist id,

MPI Comm comm, MPI Info info);

F90: h5pset fapl mpio f(plist id, comm, info)

plist id is a file access property list identifier

May 21, 2014 Michael Stephan Slide 54

Page 55: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Creating and Opening Dataset

All processes of the communicator open / close a datasetby a collective call

C: H5Dcreate or H5Dopen; H5DcloseF90: h5dcreate f or h5dopen f; h5dclose f

All processes of the communicator must extend anunlimited dimension dataset before writing to it

C: H5DextendF90: h5dextend f

May 21, 2014 Michael Stephan Slide 55

Page 56: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Accessing a Dataset

All processes that have opened dataset may do collectiveI/OEach process may do independent and arbitrary numberof data I/O access calls

C: H5Dwrite and H5DreadF90: h5dwrite f and h5dread f

May 21, 2014 Michael Stephan Slide 56

Page 57: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Dataset transfer property

Create and set dataset transfer propertyC: H5Pset dxpl mpio

H5FD MPIO COLLECTIVEH5FD MPIO INDEPENDENT (default)

F90: h5pset dxpl mpio fH5FD MPIO COLLECTIVE FH5FD MPIO INDEPENDENT F (default)

Access dataset with the defined transfer property

May 21, 2014 Michael Stephan Slide 57

Page 58: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Writing and Reading Hyperslabs

Distributed memory model: data is split among processesPHDF5 uses HDF5 hyperslab modelEach process defines memory and file hyperslabsEach process executes partial write/read call

Collective callsIndependent calls

H5Sselect hyperslab(filespace,H5S SELECT SET,offset,

stride, count, block)

May 21, 2014 Michael Stephan Slide 58

Page 59: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Writing dataset by rows

May 21, 2014 Michael Stephan Slide 59

Page 60: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Writing dataset by rows

May 21, 2014 Michael Stephan Slide 60

Page 61: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Writing dataset by columns

May 21, 2014 Michael Stephan Slide 61

Page 62: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Writing dataset by columns

May 21, 2014 Michael Stephan Slide 62

Page 63: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Writing dataset by pattern

May 21, 2014 Michael Stephan Slide 63

Page 64: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Writing dataset by pattern

May 21, 2014 Michael Stephan Slide 64

Page 65: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Writing dataset by chunks

May 21, 2014 Michael Stephan Slide 65

Page 66: Portable Parallel I/O...Datatype definitions can be shared among objects in an HDF file, providing a powerful and efficient mechanism for describing data. Datatype definitions

Writing dataset by chunks

May 21, 2014 Michael Stephan Slide 66