-1

私は、単一のプログラムをネットワーク上の複数のコンピューターで実行するように変換する方法を求めています(「グリッドコンピューティング」を考えてください)。

私はMSVC2007とC++(非.NET)を使用しています。

私が書いたプログラムは、並列プログラミング(科学データの分析を行う)に最適であるため、コンピューターの数が多いほど優れています。

4

2 に答える 2

2

これに対する古典的な答えは、MPI(メッセージパッシングインターフェイス)です。プログラムをメッセージパッシングで正常に動作させるには少し作業が必要ですが、最終的には、MPIデーモンを実行しているマシンのクラスター全体で実行可能ファイルを簡単に起動できます。

いくつかの実装があります。私はMPICHを使用しましたが、 Boost MPI(前回近所にいたときは存在しませんでした)を使用してこれを行うことを検討するかもしれません。

于 2010-07-07T22:50:23.457 に答える
1

まず、このトピックについては、 https ://stackoverflow.com/questions/2258332/distributed-computing-in-cで説明しています。

次に、「C ++グリッドコンピューティングライブラリ」、「ビジュアルスタジオ用グリッドコンピューティング」、「C ++分散コンピューティングライブラリ」を検索すると、次のようになります。

  • OpenMP+OpenMPI。OpenMPは、同じマシン内の複数のCPUコアでの単一のC ++プログラムの実行を処理し、OpenMPIは複数のマシン間のメッセージングを処理します。OpenMP +OpenMPI=グリッドコンピューティング。
  • POP-C ++、 http: //gridgroup.hefr.ch/popc/を参照してください。
  • Xoreaxグリッドエンジン。http: //www.xoreax.com/high_performance_grid_computing.htmを参照してください。XoreaxはVisualStudioのビルドの高速化に重点を置いていますが、Xoreaxグリッドエンジンは汎用アプリケーションにも適用できます。http://www.xoreax.com/xge_xoreax_grid_engine.htmの引用を見ると、「タスクセット(依存関係の定義とともに配布するタスクのセット)が以下に説明するインターフェイスの1つを介して定義されると、IncrediBuildAgentを実行している任意のマシンで実行できます。」付随するCodeGuruの記事(http://www.codeproject.com/KB/showcase/Xoreax-Grid.aspx )を参照してください。
  • Alchemi、http://www.codeproject.com/KB/threads/alchemi.aspxを参照してください。
  • RightScaleについては、http://www.rightscale.com/pdf/Grid-Whitepaper-Technical.pdfを参照してください。このホワイトペーパーの例のセクションからの引用:「医薬品タンパク質分析:数百万のタンパク質化合物の比較が1日以内に実行されました。これは、顧客の内部リソースで1週間以上かかるタスクです...」
于 2010-07-07T22:29:58.190 に答える