HDF を使用して、1e6 x 1e6 の浮動小数点数のような非常に大きな行列を格納することを計画しています。
連続する行または列のバッチでマトリックスを読み取る必要があります。
私の質問は、速度を最大化するために HDF ファイルを構造化/微調整する最適な方法は何でしょうか?
いくつかのポイント:
私のシステムでは、HDF で圧縮されていない完全な行列の読み取り/書き込みに約 5 時間かかると見積もっています。これは合理的ですが、サイズが数テラバイトになるため、行列を圧縮せずに保存するのは合理的ではありません。
行列が疎の場合、圧縮によって読み取り速度が、圧縮されていない密な行列の読み取りと同等またはそれ以上になる可能性がありますか?
元の行列から行/列を読み取ったり、行列の乗算などを行うのが複雑になるため、行列を個別のサブ行列データセットに分割するのは面倒です。したがって、可能であればこれを避けたいと思います(これにより速度が大幅に向上する場合を除きます)。
マトリックスを一度読んだら、何度も読むつもりです。したがって、読み取り/解凍速度は、書き込み/圧縮速度よりも重要です。
hdfとのインターフェースにpython h5pyを使用しています。