Я использую HDF5 в течение многих лет, но с ростом размера набора данных у меня начинаются те же проблемы, что и здесь
http://cyrille.rossant.net/moving-away-hdf5/
Можете ли вы указать мне формат HDF5 с - Хорошая поддержка параллельной записи - Поддержка кускового доступа огромных матриц
Мой типичный пример использования - целочисленная матрица размером 100k x 100k. Я хотел бы, чтобы это был целый файл с логической точки зрения, но мне нужно записать его по частям с параллельными работниками.
Ответы:
HDF5 в некоторой степени является файловой системой. Представляя B-Trees и управляя блоками, он дублирует функциональность файловой системы. Когда вы запускаете свой код, вы, вероятно, запускаете его в операционной системе с проверенной и масштабируемой файловой системой. Следовательно, я бы предложил записать ваши числовые необработанные данные в один файл с использованием необработанного доступа к файлу или MPI-IO и записать метаданные (порядковый номер, размер, атрибуты и т. Д.) В отдельный файл JSON или XML. Если у вас есть несколько наборов данных, вы можете организовать их в каталог или иерархию каталогов. Если вы хотите распространить набор данных, вам просто нужно упаковать его в ZIP-файл.
Единственным недостатком является то, что вам приходится иметь дело с Endianness самостоятельно, что, однако, не сложно .
Для вдохновения о том, как это можно сделать, см. Dragly, et. и др. «А. Экспериментальная структура каталогов (Exdir): альтернатива HDF5 без введения нового формата файлов». Нейроинформ., 2018, 12 .
источник