Parallel-computer-architecture-multiprocessors-multicomputers

提供:Dev Guides
移動先:案内検索

マルチプロセッサとマルチコンピューター

この章では、マルチプロセッサとマルチコンピュータについて説明します。

マルチプロセッサシステムの相互接続

並列処理では、入出力および周辺機器、マルチプロセッサ、共有メモリ間の高速通信のために効率的なシステム相互接続を使用する必要があります。

階層バスシステム

階層バスシステムは、コンピューターのさまざまなシステムとサブシステム/コンポーネントを接続するバスの階層で構成されます。 各バスは、多数の信号線、制御線、および電力線で構成されています。 ローカルバス、バックプレーンバス、I/Oバスなどの異なるバスを使用して、異なる相互接続機能を実行します。

ローカルバスは、プリント基板に実装されているバスです。 バックプレーンバスは、機能的なボードを差し込むために多くのコネクタが使用されるプリント回路です。 入出力デバイスをコンピューターシステムに接続するバスは、I/Oバスと呼ばれます。

クロスバースイッチとマルチポートメモリ

スイッチドネットワークは、入力と出力の間の動的な相互接続を提供します。 小規模または中規模のシステムは、主にクロスバーネットワークを使用します。 遅延の問題を解決できれば、多段ネットワークをより大きなシステムに拡張できます。

クロスバースイッチとマルチポートメモリの両方の組織は、単一ステージのネットワークです。 単一ステージのネットワークを構築する方が安価ですが、特定の接続を確立するには複数のパスが必要になる場合があります。 多段ネットワークには、複数のスイッチボックスがあります。 これらのネットワークは、入力を出力に接続できる必要があります。

マルチステージおよび結合ネットワーク

多段ネットワークまたは多段相互接続ネットワークは、主にネットワークの一端にある処理要素と、他端にあるスイッチング要素によって接続されたメモリ要素で構成される高速コンピュータネットワークのクラスです。

これらのネットワークは、より大きなマルチプロセッサシステムを構築するために適用されます。 これには、Omega Network、Butterfly Networkなどが含まれます。

マルチコンピューター

マルチコンピューターは、分散メモリーMIMDアーキテクチャーです。 次の図は、マルチコンピューターの概念モデルを示しています-

マルチコンピューターの概念モデル

マルチコンピューターは、パケット交換方式を適用してデータを交換するメッセージパッシングマシンです。 ここでは、各プロセッサにはプライベートメモリがありますが、プロセッサは自身のローカルメモリにしかアクセスできないため、グローバルアドレス空間はありません。 そのため、通信は透過的ではありません。ここでは、プログラマはコードに通信プリミティブを明示的に配置する必要があります。

グローバルにアクセス可能なメモリがないことは、マルチコンピューターの欠点です。 これは、次の2つのスキームを使用して解決することができます-

  • 仮想共有メモリ(VSM)
  • 共有仮想メモリ(SVM)

これらのスキームでは、アプリケーションプログラマは、グローバルにアドレス可能な大きな共有メモリを想定しています。 必要に応じて、アプリケーションによって作成されたメモリ参照はメッセージパッシングパラダイムに変換されます。

仮想共有メモリ(VSM)

VSMはハードウェア実装です。 そのため、オペレーティングシステムの仮想メモリシステムは、VSMの上に透過的に実装されます。 そのため、オペレーティングシステムは、共有メモリを備えたマシンで実行されていると見なします。

共有仮想メモリ(SVM)

SVMは、プロセッサのメモリ管理ユニット(MMU)からのハードウェアサポートを備えたオペレーティングシステムレベルのソフトウェア実装です。 ここでは、共有の単位はオペレーティングシステムのメモリページです。

プロセッサが特定のメモリ位置をアドレス指定する場合、MMUはメモリアクセスに関連付けられたメモリページがローカルメモリにあるかどうかを判断します。 ページがメモリにない場合、通常のコンピューターシステムでは、オペレーティングシステムによってディスクからスワップインされます。 ただし、SVMでは、オペレーティングシステムはその特定のページを所有するリモートノードからページをフェッチします。

3世代のマルチコンピューター

このセクションでは、3世代のマルチコンピューターについて説明します。

過去のデザインの選択肢

プロセッサテクノロジを選択する際、マルチコンピュータの設計者は、ビルディングブロックとして低コストの中粒度プロセッサを選択します。 大部分の並列コンピューターは、標準の市販のマイクロプロセッサーで構築されています。 分散メモリは、スケーラビリティを制限する共有メモリを使用するのではなく、マルチコンピューター用に選択されました。 各プロセッサには独自のローカルメモリユニットがあります。

相互接続スキームの場合、マルチコンピューターには、アドレス交換ネットワークではなく、メッセージパッシング、ポイントツーポイントダイレクトネットワークがあります。 制御戦略として、マルチコンピューターの設計者は、非同期MIMD、MPMD、およびSMPD操作を選択します。 CaltechのCosmic Cube(1983年、Seitz)は、第一世代のマルチコンピューターの最初のものです。

現在および将来の開発

次世代コンピューターは、グローバルに共有された仮想メモリを使用して、中規模から細粒度のマルチコンピューターに進化しました。 第二世代のマルチコンピューターは現在も使用されています。 ただし、i386、i860などのより優れたプロセッサを使用する 第二世代のコンピューターはたくさん開発されました。

第3世代コンピューターは、VLSI実装ノードが使用される次世代コンピューターです。 各ノードには、14 MIPSプロセッサ、20 Mバイト/秒のルーティングチャネル、および16 KバイトのRAMが1つのチップに統合されています。

Intel Paragonシステム

以前は、すべての機能がホストに与えられていたため、同種のノードを使用してハイパーキューブマルチコンピューターを作成していました。 そのため、これによりI/O帯域幅が制限されました。 したがって、大規模な問題を効率的にまたは高いスループットで解決するために、これらのコンピューターは使用できませんでした。IntelParagon Systemは、この困難を克服するように設計されました。 ネットワーク環境でのマルチユーザーアクセスを備えたマルチサーバーをアプリケーションサーバーに変えました。

メッセージパッシングメカニズム

マルチコンピューターネットワークのメッセージパッシングメカニズムには、特別なハードウェアとソフトウェアのサポートが必要です。 このセクションでは、いくつかのスキームについて説明します。

メッセージルーティングスキーム

ストアアンドフォワードルーティングスキームを備えたマルチコンピューターでは、パケットは情報伝送の最小単位です。 ワームホールでルーティングされたネットワークでは、パケットはさらにフリットに分割されます。 パケット長はルーティングスキームとネットワーク実装によって決まりますが、フリットの長さはネットワークサイズの影響を受けます。

  • ストアアンドフォワードルーティング*では、パケットは情報伝送の基本単位です。 この場合、各ノードはパケットバッファーを使用します。 パケットは、一連の中間ノードを介して送信元ノードから宛先ノードに送信されます。 遅延は、送信元と宛先の間の距離に直接比例します。
  • ワームホールルーティング*では、送信元ノードから宛先ノードへの送信は一連のルーターを介して行われます。 同じパケットのすべてのフリットは、パイプライン方式で分離不可能なシーケンスで送信されます。 この場合、ヘッダーフリットのみがパケットの送信先を認識します。

デッドロックと仮想チャネル

仮想チャネルは、2つのノード間の論理リンクです。 ソースノードとレシーバノードのフリットバッファ、およびそれらの間の物理チャネルによって形成されます。 物理チャネルがペアに割り当てられると、1つのソースバッファが1つのレシーババッファとペアになり、仮想チャネルが形成されます。

すべてのチャネルがメッセージで占有されており、サイクル内のどのチャネルも解放されていない場合、デッドロック状態が発生します。 これを回避するには、デッドロック回避スキームに従う必要があります。