J'utilise HDF5 depuis des années, mais à mesure que la taille de l'ensemble de données augmente, je commence à rencontrer les mêmes problèmes répertoriés ici
http://cyrille.rossant.net/moving-away-hdf5/
Pouvez-vous m'indiquer un format comme HDF5 avec - Un bon support pour les écritures parallèles - Un support pour un accès en bloc de matrices énormes
Mon cas d'utilisation typique est une matrice entière de 100k x 100k. Je voudrais l'avoir comme un fichier entier d'un point de vue logique, mais je dois l'écrire morceau par morceau avec des travailleurs parallèles.
Réponses:
HDF5 est, dans une certaine mesure, un système de fichiers à part entière. En introduisant B-Trees et par la façon dont il gère les blocs, il duplique les fonctionnalités d'un système de fichiers. Lorsque vous exécutez votre code, vous l'exécutez probablement sur un système d'exploitation doté d'un système de fichiers éprouvé et évolutif. Par conséquent, je suggère d'écrire vos données brutes numériques dans un seul fichier en utilisant l'accès aux fichiers bruts ou MPI-IO et d'écrire les métadonnées (endianess, taille, attributs, etc.) dans un fichier JSON ou XML séparé. Si vous disposez de plusieurs jeux de données, vous pouvez les organiser dans un répertoire ou une hiérarchie de répertoires. Lorsque vous souhaitez distribuer l'ensemble de données, il vous suffit de l'intégrer dans un fichier ZIP.
Le seul inconvénient est que vous devez vous occuper de l' endianité , ce qui n'est cependant pas difficile .
Pour une inspiration sur la façon dont cela peut être fait, voir Dragly, et. Al. "A. Structure de répertoire expérimentale (Exdir): une alternative à HDF5 sans introduire un nouveau format de fichier". Neuroinform., 2018, 12 .
la source