キャッシング/メモリマップを使いやすくするライブラリを推奨できる人はいますか?
メモリ管理は私のプロジェクトの焦点ではありません- それは私が遭遇している土壇場の問題です。したがって、キャッシングとメモリ マップのすべての詳細を学習しようとするのではなく、比較的迅速で簡単な修正方法を探しています。
ファイルから自動的に (ボンネットの下で) 書き込みと読み込み (キャッシュ) を行うライブラリを探しています。
理想的には、私は次のものを探しています: ファイルを保存/ロードすることなく、「マップ」にアクセス/挿入/削除するだけです。mystd::map
が比較的小さい場合、これはヒープから直接です。mymap
が大きくなりすぎた場合、それはメモリ マップされ、(mmap ファイルからの) すべてのロード/保存機能は「ボンネットの下」で実行されるため、実行する必要が mymap.find(whatever)
あるのは .
(私のマルチプロセッサ プログラムの各ノードは、大量の計算を生成します。実行しようとするall_gather
と、プログラムがクラッシュします。単一のノードには、すべてのノードを組み合わせた結果を保持するのに十分なメモリがありません。したがって、何らかの種類の計算を探しています。メモリ マップ / キャッシュ戦略。)
これはスーパーコンピューター上で実行されます (つまり、OS = UNIX)。各ノードには 16GB のメモリがあります。eSATA を使用するスクラッチ スペース (一時ファイルを書き込むための巨大なスペース) があります。(解決策として、このスクラッチ スペースへの効果的なメモリ マッピングを想定しています)