Alternativen zu hdf5


15

Ich benutze HDF5 seit Jahren, aber mit zunehmender Größe des Datensatzes treten die gleichen Probleme auf, die hier aufgeführt sind

http://cyrille.rossant.net/moving-away-hdf5/

Können Sie mich auf ein Format wie HDF5 verweisen mit - Gute Unterstützung für paralleles Schreiben - Unterstützung für den Chunked-Zugriff auf große Matrizen

Mein typischer Anwendungsfall ist eine 100k x 100k Integer-Matrix. Ich möchte es aus logischer Sicht als ganze Datei haben, aber ich muss es Stück für Stück mit parallelen Arbeitern schreiben.


3
Können Sie bitte erklären, welche Arten von Datensätzen Sie exportieren müssen? Dies kann für Personen hilfreich sein, die Ihre Frage beantworten möchten. Ich habe sowohl HDF5 als auch netcfd in Betracht gezogen. Diese sind jedoch möglicherweise eher auf bestimmte Datensätze ausgerichtet.
Charles

2
Komprimiertes VTK unterstützt Chunks. Sie können viele Dateien parallel speichern und mithilfe der PVD-Metadatei zusammenführen. Wie groß ist Ihr Datensatz?
Krzysztof Bzowski

Nach Ihren Änderungen ist Chunked VTK keine gute Entscheidung.
Krzysztof Bzowski

Was hast du letztendlich benutzt?
aidan.plenert.macdonald

@ aidan.penert.macdonald Ich habe mich an hdf5 gehalten und parallele Schreibvorgänge mit MPI verwendet. Aber ich musste Python
MG

Antworten:


6

HDF5 ist bis zu einem gewissen Grad ein eigenständiges Dateisystem. Durch die Einführung von B-Trees und die Art und Weise, wie Blöcke verwaltet werden, wird die Funktionalität eines Dateisystems dupliziert. Wenn Sie Ihren Code ausführen, führen Sie ihn wahrscheinlich auf einem Betriebssystem mit einem bewährten und skalierbaren Dateisystem aus. Daher würde ich vorschlagen, Ihre numerischen Rohdaten mit Rohdateizugriff oder MPI-IO in eine einzelne Datei zu schreiben und die Metadaten (Endianess, Größe, Attribute usw.) in eine separate JSON- oder XML-Datei zu schreiben. Wenn Sie über mehrere Datasets verfügen, können Sie diese in einem Verzeichnis oder einer Hierarchie von Verzeichnissen organisieren. Wenn Sie das Dataset verteilen möchten, müssen Sie es nur in eine ZIP-Datei packen.

Der einzige Nachteil ist, dass Sie sich selbst mit Endianness befassen müssen , was jedoch nicht schwer ist .

Für eine Inspiration, wie dies getan werden kann, siehe Dragly et al. al. "A. Experimentelle Verzeichnisstruktur (Exdir): Eine Alternative zu HDF5 ohne Einführung eines neuen Dateiformats" Vorderseite. Neuroinform., 2018, 12 .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.