Korzystam z HDF5 od lat, ale wraz ze wzrostem rozmiaru zbioru danych zaczynam doświadczać tych samych problemów wymienionych tutaj
http://cyrille.rossant.net/moving-away-hdf5/
Czy możesz wskazać mi format taki jak HDF5 z - Dobra obsługa zapisu równoległego - Obsługa dostępu fragmentarycznego wielkich matryc
Mój typowy przypadek użycia to macierz liczb całkowitych 100k x 100k. Chciałbym mieć go jako cały plik z logicznego punktu widzenia, ale muszę napisać go kawałek po kawałku z równoległymi robotami.
Odpowiedzi:
HDF5 jest do pewnego stopnia systemem plików. Wprowadzając B-Drzewa i sposób zarządzania blokami, powiela funkcjonalność systemu plików. Podczas uruchamiania kodu prawdopodobnie działa on na systemie operacyjnym ze sprawdzonym i skalowalnym systemem plików. Dlatego sugerowałbym zapisanie liczbowych nieprzetworzonych danych w jednym pliku przy użyciu dostępu do nieprzetworzonych plików lub MPI-IO i zapisanie metadanych (endianess, rozmiar, atrybuty itp.) W osobnym pliku JSON lub XML. Jeśli masz wiele zestawów danych, możesz je uporządkować w katalogu lub hierarchii katalogów. Jeśli chcesz rozpowszechnić zestaw danych, musisz tylko spakować go do pliku ZIP.
Jedynym minusem jest to, że musisz sobie radzić z Endianness , co jednak nie jest trudne .
Aby dowiedzieć się, jak to zrobić, zobacz Dragly i in. glin. „A. Eksperymentalna struktura katalogów (Exdir): alternatywa dla HDF5 bez wprowadzenia nowego formatu plików” Front. Neuroinform., 2018, 12 .
źródło