3

約 10 3 個のスパース double 配列を (一度に 1 つずつ) ディスクに書き込み、後でプログラムで個別に読み取る必要があります。

編集:以前に質問を明確に構成しなかったことをお詫びします。具体的には、可能な限りメモリに保存し、現在使用されていない変数をディスクに保存しようとしています。私はLinuxに取り組んでいます。

4

2 に答える 2

0

最も速い方法は、I/O をバッファリングすることです。各配列を個別に書き込む代わりに、最初にできるだけ多くをバッファーにコピーします。そのバッファーがいっぱいになると、バッファー全体をディスクに書き込み、バッファーをクリアして、繰り返します。これにより、ディスクへの書き込み量が最小限に抑えられ、I/O 効率が向上します。

後で配列を順番に読み取ることを計画している場合は、読み取りをバッファリングして、必要以上に読み取り、バッファから作業できるようにすることをお勧めします。

さらに一歩進んで、非同期の読み取り/書き込み操作を使用して、プログラムがディスクで待機している間に他のタスクを処理できるようにすることができます。

消費するディスク上のサイズが気になる場合は、ディスクへの書き込み/ディスクからの読み取り時にデータ ストリームを圧縮/圧縮解除する別のレイヤーを追加できます。

于 2012-07-12T08:06:16.467 に答える
-1

HDF5 データ形式は、大量のデータをディスクに効率的に書き込むためのものです。この形式は、NASA および多数の科学アプリケーションで使用されています。

http://www.hdfgroup.org/HDF5/

http://en.wikipedia.org/wiki/Hierarchical_Data_Format

于 2012-07-12T09:17:38.620 に答える