Opened 6 years ago

Last modified 3 years ago

#1033 new enhancement

support a combined "map" file in CarpetIOHDF5

Reported by: Roland Haas Owned by: Erik Schnetter
Priority: minor Milestone:
Component: Carpet Version:
Keywords: CarpetIOHDF5 Cc:


recovering on different number of processes than was used to write a checkpoint is painfully slow. Part of the reason seems to be that each process essentially has to read all files to find out where each piece of data it requires is located. The attached patch (not to be included in the main code due to bad file formats and coding) enables CarpetIOHDF5 to read all the information stored in the union of index files to from a single file. This means (together with the other patches proposed today) that CarpetIOHDF5 only ever opens those HDF5 files that are required to restore the simulation on a given process. It significantly (factor > 4 where I don't quite know how fast since the unpatched version ran out of walltime) speeds up recovery with many more processors than wrote the files.

It also adds an optimization for CCTK_VarIndex calls inside CarpetIOHDF5 (which happens for every dataset in the file).

This is intended only as a proof of what might speed up recovery. A proper implementation would need a more sensible file format. Two option seem possible:
1) extend the index file format by a "filename" or "filenum" attribute to each dataset and use a concatenation of all index files as the map file
2) define a custom hdf5 data type corresponding to the information in a single patch_t, which would have mostly integer field plus two variable length / enumerated ASCII fields (for the patch name, variable name)

Attachments (2)

0010-add-support-for-binary-map-files.patch (6.1 KB) - added by Roland Haas 6 years ago.
hdf5_create_binary_map.c (11.3 KB) - added by Roland Haas 6 years ago.

Download all attachments as: .zip

Change History (3)

Changed 6 years ago by Roland Haas

Changed 6 years ago by Roland Haas

Attachment: hdf5_create_binary_map.c added

comment:1 Changed 3 years ago by Roland Haas

This is related to the discussion on the mailing list and the wiki.

Modify Ticket

Change Properties
Set your email in Preferences
as new The owner will remain Erik Schnetter.
Next status will be 'review'.
as The resolution will be set.
to The owner will be changed from Erik Schnetter to the specified user.
Next status will be 'confirmed'.
The owner will be changed from Erik Schnetter to anonymous.

Add Comment

E-mail address and name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.