1

複数のコンピューターおよび/または各コンピューターの複数のコアに計算を分散するためのパッケージを知っていますか? 計算コードは c++ で書かれており、パッケージは 2GB を超えるデータに対応し、Windows x64 マシンで動作する必要があります。シェアウェアは便利ですが、必須ではありません。

4

3 に答える 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 に答える
0

MPIライブラリとMPI 上で動作するDVM システムがあります。これらは、さまざまなタスクを並列化するために広く使用されている汎用ツールです。

于 2009-06-08T08:49:48.493 に答える