Trilinosを使用して分散線形代数に基づくアプリケーションを構築しています。主な問題は、メモリ消費量が予想よりもはるかに多いことです。
Epetra :: VbrMatrixを構築するための簡単なテストケースを作成しました。150万のdoubleが、3つのdoubleの500万ブロックとしてグループ化されています。これは約115MBです。
それぞれ半分のデータの2つのプロセッサでマトリックスを構築した後、各プロセッサで500MBのメモリ消費が発生します。これは、データの約7.5倍です。私には不合理に見えます。マトリックスには、ゼロ以外のブロックを見つけるための整数配列が必要です。 。
私はtrilinos-usersメーリングリストで尋ねました、彼らはメモリ使用量が高すぎるように見えると言います、しかしここでもう少し助けが欲しいです。
Ubuntu + gcc 4.4.5 + Trilinos 10.0を搭載したラップトップと、PGIコンパイラとTrilinos 10.4.0を搭載したクラスタの両方でテストしたところ、結果はほぼ同じです。
私のテストコードは要点https://gist.github.com/848310にあり、ラップトップで2つのMPIプロセスを使用したテストのさまざまな段階でメモリ消費量も記述しています。
誰かが本当に役立つだろう提案があれば。また、メモリ消費量をビルド、実行、レポートすることさえできれば、それは素晴らしいことです。