複数のコンピューターおよび/または各コンピューターの複数のコアに計算を分散するためのパッケージを知っていますか? 計算コードは c++ で書かれており、パッケージは 2GB を超えるデータに対応し、Windows x64 マシンで動作する必要があります。シェアウェアは便利ですが、必須ではありません。
3 に答える
2
適切なソリューションは、処理したい計算とデータのタイプ、達成したい並列処理の粒度、それにどれだけの労力を投資するかによって異なります。
最も簡単なのは、並列処理をサポートする適切なソルバー/ライブラリ (例: scalapack ) を使用することです。または、独自のソルバーを作成する場合は、OpenMPまたは自動並列化を提供するコンパイラ (Intel C/C++ コンパイラなど) を使用して、現在のコードから並列化を絞り出すことができます。これらすべてにより、コードの大規模な再構築を必要とせずに、妥当なパフォーマンス向上が得られます。
スペクトルの反対側には、MPIオプションがあります。アルゴリズムが適切に並列化されている場合、パフォーマンスを最大限に向上させることができます。ただし、かなりのリエンジニアリングが必要になります。
別の代替手段は、スレッド化ルートをたどることです。これを悪夢から遠ざけるライブラリやツールがあります。これらは一見の価値があります: Boost C++ Parallel プログラミング ライブラリとThreading Building Block
于 2009-06-08T09:02:31.197 に答える
1
OpenMPを見たいと思うかもしれません
于 2009-06-08T09:01:54.317 に答える