Parallel-computer-architecture-hardware-software-tradeoffs

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

ハードウェアソフトウェアのトレードオフ

ハードウェアコストを削減する方法は多数あります。 1つの方法は、通信アシストとネットワークを処理ノードにあまり緊密に統合せず、通信の待ち時間と占有率を増やすことです。

別の方法は、ハードウェアではなくソフトウェアで自動複製と一貫性を提供することです。 後者の方法は、メインメモリでレプリケーションと一貫性を提供し、さまざまな粒度で実行できます。 これにより、ノードおよび相互接続に既製の汎用部品を使用できるため、ハードウェアコストが最小限に抑えられます。 これは、プログラマーに良いパフォーマンスを達成するよう圧力をかけます。

緩和されたメモリ整合性モデル

共有アドレス空間のメモリ一貫性モデルは、同じ場所または異なる場所のメモリ操作が相互に実行しているように見える順序で制約を定義します。 実際、共有アドレス空間の命名モデルをサポートするシステム層には、プログラマーのインターフェース、ユーザーシステムのインターフェース、ハードウェアとソフトウェアのインターフェースを含むメモリ一貫性モデルが必要です。 その層と対話するソフトウェアは、独自のメモリ一貫性モデルを認識している必要があります。

システム仕様

アーキテクチャのシステム仕様は、メモリ操作の順序付けと並べ替え、およびそこから実際に得られるパフォーマンスの量を指定します。

以下は、プログラムの順序で緩和を使用するいくつかの仕様モデルです-

  • * Write-to-Readプログラム順序の緩和*-このクラスのモデルにより、ハードウェアは、第1レベルのキャッシュメモリで見逃された書き込み操作のレイテンシを抑制することができます。 書き込みミスが書き込みバッファにあり、他のプロセッサから見えない場合、プロセッサはキャッシュメモリでヒットする読み取り、またはキャッシュメモリでミスする単一の読み取りを完了することができます。
  • * Write-to-ReadおよびWrite-to-Writeプログラムの順序を緩和*-さまざまな場所への以前の未処理の書き込みをバイパスして書き込みできるようにすることで、メインメモリを更新する前に複数の書き込みを書き込みバッファにマージできます。 したがって、重複する複数の書き込みミスが発生し、順不同で表示されます。 動機は、プロセッサブレークタイムに対する書き込みレイテンシの影響をさらに最小限に抑え、新しいデータ値を他のプロセッサから見えるようにすることで、プロセッサ間の通信効率を高めることです。
  • すべてのプログラム注文の緩和-プロセス内のデータと制御の依存関係を除き、デフォルトではプログラム注文は保証されません。 したがって、利点は、複数の読み取り要求を同時に未処理にすることができ、プログラムの順序で後の書き込みでバイパスでき、順序が狂って完了するため、読み取りの待ち時間を隠すことができることです。 このタイプのモデルは、他のメモリ参照への過去の読み取りミスを継続できる動的にスケジュールされたプロセッサに特に役立ちます。 これらは、コンパイラーの最適化によって行われるアクセスの排除さえも含め、多くの並べ替えを可能にします。

プログラミングインターフェース

プログラミングインターフェイスは、同期操作の間、プログラムの順序をまったく維持する必要がないことを前提としています。 すべての同期操作が明示的にラベル付けまたは識別されていることが保証されます。 ランタイムライブラリまたはコンパイラは、これらの同期操作を、システム仕様で要求される適切な順序保存操作に変換します。

システムは、プロセス内の場所への依存を混乱させることなく、同期操作間で操作を任意の方法で並べ替えることができますが、連続した一貫した実行を保証します。 これにより、コンパイラは、必要な並べ替えに対して同期ポイント間の十分な柔軟性を実現し、メモリモデルで許可されている数だけ並べ替えを実行することもできます。 プログラマのインターフェイスでは、一貫性モデルは少なくともハードウェアインターフェイスの一貫性モデルと同じくらい弱い必要がありますが、同じである必要はありません。

翻訳メカニズム

ほとんどのマイクロプロセッサでは、ラベルを翻訳してメカニズムを維持することは、同期としてラベル付けされた各操作の前後に適切なメモリバリア命令を挿入することになります。 命令を保存し、個々のロード/ストアにどの順序を適用するかを示し、余分な命令を回避します。 ただし、通常は操作が頻繁ではないため、ほとんどのマイクロプロセッサがこれまで行ってきた方法ではありません。

容量制限の克服

プロセッサキャッシュメモリ内のハードウェアのみで自動複製と一貫性を提供するシステムについて検討しました。 プロセッサキャッシュは、ローカルのメインメモリに最初に複製されることなく、参照時にリモートで割り当てられたデータを直接複製します。

これらのシステムの問題は、ローカルレプリケーションの範囲がハードウェアキャッシュに制限されることです。 キャッシュメモリからブロックを置き換える場合、再度必要になったときにリモートメモリからブロックをフェッチする必要があります。 このセクションで説明するシステムの主な目的は、レプリケーションキャパシティの問題を解決することですが、ハードウェアの一貫性とキャッシュブロックのきめ細かい粒度を提供して効率を高めることです。

三次キャッシュ

複製能力の問題を解決するための1つの方法は、大きくても低速のリモートアクセスキャッシュを使用することです。 これは機能のために必要です。マシンのノード自体が小規模なマルチプロセッサであり、パフォーマンスのために単純に大きくすることができる場合です。 また、ローカルプロセッサのキャッシュメモリから置き換えられた複製されたリモートブロックも保持します。

キャッシュオンリーメモリアーキテクチャ(COMA)

COMAマシンでは、メインメモリ全体のすべてのメモリブロックにハードウェアタグがリンクされています。 メモリブロックに割り当てられたスペースが常に保証される固定ノードはありません。 データは、それらにアクセス/引き付けるノードのメインメモリに動的に移行または複製されます。 リモートブロックにアクセスすると、アトラクションメモリに複製されてキャッシュに取り込まれ、ハードウェアによって両方の場所で一貫性が保たれます。 データブロックは、任意のアトラクションメモリに常駐でき、一方から他方へ簡単に移動できます。

ハードウェアコストの削減

コスト削減とは、専用ハードウェアの一部の機能を既存のハードウェアで実行されるソフトウェアに移行することを意味します。 ソフトウェアは、ハードウェアキャッシュ内よりもメインメモリ内で複製と一貫性を管理する方がはるかに簡単です。 低コストの方法は、メインメモリで複製と一貫性を提供する傾向があります。 コヒーレンスを効率的に制御するために、アシストの他の各機能コンポーネントは、ハードウェアの専門化と統合の恩恵を受けることができます。

研究努力は、専用のハードウェアでアクセス制御を実行するなど、さまざまなアプローチでコストを削減することを目的としていますが、他のアクティビティをソフトウェアおよびコモディティハードウェアに割り当てます。 別のアプローチは、ソフトウェアでアクセス制御を実行することであり、特殊なハードウェアサポートなしで、コモディティノードおよびネットワーク上でコヒーレントな共有アドレス空間抽象化を割り当てるように設計されています。

並列ソフトウェアへの影響

緩和されたメモリ一貫性モデルでは、並列プログラムが必要な競合するアクセスを同期ポイントとしてラベル付けする必要があります。 プログラミング言語は、一部の変数を同期としてラベル付けするサポートを提供します。このラベルは、コンパイラーによって適切な順序保存命令に変換されます。 コンパイラが共有メモリへのアクセスの再配列を制限するために、コンパイラはそれ自体でラベルを使用できます。