質問

HPC並列プログラミング(CPU用)の講義では、PthreadsからOpenMP、MPIからMPI、Charm ++、X10、UPC、Chapel ...などのさまざまなモデルについて説明しました。主な焦点は明らかに最初の3つでした。トピックに興味がある私は自分の研究をしましたが、主にこれらの最初の3つのために主なもの、例と議論を見つけることができました。後で私は「AMPI」を発見しました。これは、多くの利点チャーム++オファーでレガシーMPIアプリケーションを実行できることを発見しましたが、誰もそれを使用していないようです。

なぜ他のモデルはそれほど無視されているのですか?チャーム++のようなやや粗いMPIの代替案と比較して、彼らが背景にきちんとした「汚い仕事」をたくさん取り扱うので、より便利に現れる。

役に立ちましたか?

解決

MPIとOpenMPが支配的な理由2つの理由を教えてください。

最初のものは、それらが標準であることです。いくつかの利用可能な実装があり、すべての可能なスーパーコンピュータマシンで利用可能なものを見つけることができます。これは Portability の概念に厳密に関連しています。並列コードを書き、特定のマシンに関連する他のものを使用しない場合は、すべての並列マシンで同じコードを実行できます。利用可能です。

第2の理由は、プログラマーの抵抗です。 MPIとOpenMPを搭載し、メッセージ通過と共有メモリの両方の並列プログラミングをカバーしています(そして、有用および/または必要な場合も同時にそれらを使用することさえできます)。標準化に付与されていないプログラミング言語は?確かに、指摘したように、他の言語はいくつかの利点を提供しますが、質問はあなたが将来完全に消えるかもしれない何かに賭けるあなたの時間を投資しますか?標準はここにいます。とにかく、この特定の点に関しては、可能であれば、代わりにさまざまな言語でしばらく時間を過ごすべきだということです。これは有用な分野であり、異なるパラダイムは常に有益です。しかし、可能な雇用のためにあなたのカリキュラムのヴィータを読むとき、地位のためにあなたを雇えることができる人々は一般的に標準のあなたの知識に興味があります。もちろん)

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top