スーパーコンピューティングにおける通信オーバーヘッド


9

私は、スーパーコンピューターが実際のタスク関連の作業を行うのではなく、調整に費やすリソースを説明する信頼できるリファレンスを探しています。リソースは利用可能な処理能力である可能性がありますが、ワットでさえ有効な単位のようです。

私の教授または教科書の1つがかつて超並列システムでは、利用可能な処理能力の最大半分がタスクとメッセージパッシングの調整に費やされていると言っていたと思います。残念ながら、私はこの参考文献やこの比率に関する他の資料を見つけることができないようです。

これはスーパーコンピューターのアーキテクチャによって大きく異なり、最新の実装はおそらくこの点でより効率的であるため、複数のアーキテクチャまたは進化(専用メッセージパッシングハードウェアの前後)にわたるこのメトリックの概要はさらに優れていると思います。


2
適切なコンピューター、アルゴリズム、実装を選択することで、必要な数を簡単に取得できます。
David Ketcheson、2016

回答:


10

2/3n3+2n2n

ベンチマーク指標には、RPEAK(システムの1秒あたりの浮動小数点演算の理論上の最大数)とRMAX(HPLinpackベンチマークでの1秒あたりの最大演算数)が含まれます。

RPEAKはRMAXのかなりの部分であるのが一般的です。このベンチマークタスクでは、現在のスーパーコンピューターが理論上のピークパフォーマンスのかなりの部分を達成できることを示しています。たとえば、2015年11月のTOP500スーパーコンピューターのランキングでは、最速のマシンであるTianhe-2のRPEAK = 54.902ペタフロップスとRMAX = 33.863ペタフロップスです。

ただし、HPLinpackベンチマークは、現在のワークロードを代表するものではないと広く見なされています。HPlinpackの結果は、通常、実際のアプリケーションでのスーパーコンピューターのパフォーマンスを大幅に過大評価します。

HPCGと呼ばれる新しいベンチマークが開発中です。このベンチマークには、離散化されたPDEから生じる大規模なスパース方程式の方程式を解くための反復法で一般的に実行される操作が含まれます。このワークロードは、高性能コンピュータにとってはるかに困難です。また、実際にスーパーコンピュータが使用される目的をはるかに代表しています。

HPCGの初期の結果の一部は、RPEAKの5%未満で発生しています。たとえば、Tianhe-2のRPEAK = 54.902ペタフロップスとHPCGは0.58ペタフロップスです(HPCGに関するプレゼンテーションについては、以下のリファレンスを参照してください)。

TOP500 HPLinpackベンチマークは、次の場所にあります。

http://www.top500.org/

HPCGに関するプレゼンテーションは、次の場所にあります。

http://www.hpcg-benchmark.org/downloads/isc15/HPCG-ISC15-FINAL-SLIDES_update1.pdf

HPCGのWebサイトは、

http://www.hpcg-benchmark.org/


1
2/3n3+2n2

3
メッセージパッシングについては何も述べられていないため、これは質問に答えていないようです。
David Ketcheson、2016

これらのベンチマークは、浮動小数点ユニットがどの程度効率的に使用されているかを示しているという意味で、質問に部分的に答えています。1から差し引くと、他のものすべてに費やされている時間を知ることができます。
ブライアンボーチャーズ2016

6

正直なところ、私たちは知りません。答えは、実際に何が実行されているか、およびユーザーが作成したコードに大きく依存します。Brian Borchersが指摘するように、すべてのコードがあり、そのコードが何をしているのかわかっているという2つのベンチマークの間には大きな違いがありますが、このコードがスーパーコンピューターのユーザーが実際に何をしているのかをどのように表すかについては、かなりの意見の相違があります。詳細なソースコード分析と実際のマシンでの実際のコードの重い計測がなければ、この比率を見つけることはほぼ不可能です。コミュニティがこの質問に答えるのに近づくことができるかもしれないデータを収集し始めているいくつかのプロジェクトがありますが、それはまったく解決されていません。

実際、質問は本当にはっきりしていません。クラスターノードの通信カードに、通信にのみ使用できるプロセッサが搭載されている場合、このカードがアイドル状態で通信(またはその他)を処理していない時間をどのようにカウントしますか?つまり、「利用可能な処理能力」として何がカウントされますか?最適化されていないものと同じ最適化されていない計算および通信ルーチンを含む、不適切に記述されたプログラムをカウントしますか?誰かが意図的にCPUを十分に活用していない既知のアンチパターンをコードで使用するとどうなりますか?まったく通信しない恥ずかしいほど並列のプログラムはどうですか(これらはスーパーコンピューターで実行されます。約束します)。

本やあなたの教授からのオフ・ザ・カフの発言を定量化しようとするあなたの時間を無駄にしません。これらの種類のステートメントは、並列プログラミングが難しく、一般に不十分に行われていることを思い出させるためにあります。スーパーコンピューターは、すべての無駄を排除または最適化するように完全に設計されていません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.