Concurrency-in-python-system-and-memory-architecture

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

システムとメモリのアーキテクチャ

プログラムまたはコンカレントシステムを設計する際には、さまざまなシステムおよびメモリアーキテクチャスタイルを考慮する必要があります。 1つのシステムとメモリスタイルは1つのタスクに適しているが、他のタスクにエラーが発生しやすいため、非常に必要です。

並行性をサポートするコンピューターシステムアーキテクチャ

マイケルフリンは1972年に、さまざまなスタイルのコンピューターシステムアーキテクチャを分類するための分類法を提供しました。 この分類法は、次の4つの異なるスタイルを定義します-

  • 単一命令ストリーム、単一データストリーム(SISD)
  • 単一命令ストリーム、複数データストリーム(SIMD)
  • 複数の命令ストリーム、単一のデータストリーム(MISD)
  • 複数の命令ストリーム、複数のデータストリーム(MIMD)。

単一命令ストリーム、単一データストリーム(SISD)

名前が示すように、このような種類のシステムには、1つの連続する着信データストリームと、データストリームを実行するための単一の処理ユニットがあります。 それらは、並列コンピューティングアーキテクチャを備えたユニプロセッサシステムのようなものです。 以下は、SISDのアーキテクチャです-

SSID

SISDの利点

SISDアーキテクチャの利点は次のとおりです-

  • 必要な電力が少なくなります。
  • 複数のコア間の複雑な通信プロトコルの問題はありません。

SISDの欠点

SISDアーキテクチャの欠点は次のとおりです-

  • SISDアーキテクチャの速度は、シングルコアプロセッサと同様に制限されています。
  • 大規模なアプリケーションには適していません。

単一命令ストリーム、複数データストリーム(SIMD)

名前が示すように、そのような種類のシステムには、複数の受信データストリームと任意の時点で単一の命令で動作できる処理ユニットの数があります。 それらは、並列コンピューティングアーキテクチャを備えたマルチプロセッサシステムのようなものです。 以下はSIMDのアーキテクチャです-

simd

SIMDの最良の例は、グラフィックカードです。 これらのカードには、何百もの個別の処理ユニットがあります。 SISDとSIMDの計算の違いについて説明する場合、追加配列 [5、15、20] および* [15、25、10]、*に対して、SISDアーキテクチャは3つの異なる追加操作を実行する必要があります。 一方、SIMDアーキテクチャでは、1回の追加操作で追加できます。

SIMDの利点

SIMDアーキテクチャの利点は次のとおりです-

  • 1つの命令のみを使用して、複数の要素で同じ操作を実行できます。
  • システムのスループットは、プロセッサのコアの数を増やすことで増やすことができます。
  • 処理速度は、SISDアーキテクチャよりも高速です。

SIMDの欠点

SIMDアーキテクチャの欠点は次のとおりです-

  • プロセッサのコアの数の間には複雑な通信があります。
  • コストはSISDアーキテクチャよりも高くなります。

複数命令単一データ(MISD)ストリーム

MISDストリームを使用するシステムには、同じデータセットで異なる命令を実行することにより、異なる操作を実行する多数の処理ユニットがあります。 以下はMISDのアーキテクチャです-

MISD

MISDアーキテクチャの代表はまだ商業的に存在しません。

複数命令複数データ(MIMD)ストリーム

MIMDアーキテクチャを使用するシステムでは、マルチプロセッサシステムの各プロセッサは、異なるデータセットのセットに対して独立して、異なる命令セットを並列に実行できます。 これは、単一の操作が複数のデータセットで実行されるSIMDアーキテクチャとは反対です。 以下はMIMDのアーキテクチャです-

MIMD

通常のマルチプロセッサはMIMDアーキテクチャを使用します。 これらのアーキテクチャは、基本的に、コンピューター支援設計/コンピューター支援製造、シミュレーション、モデリング、通信スイッチなどの多くのアプリケーション分野で使用されます。

同時実行性をサポートするメモリアーキテクチャ

並行性や並列処理などの概念を使用しながら、プログラムを高速化する必要が常にあります。 コンピューター設計者が見つけた解決策の1つは、共有メモリマルチコンピューター、つまり単一の物理アドレス空間を持つコンピューターを作成することです。 このシナリオでは、さまざまなスタイルのアーキテクチャが存在する可能性がありますが、次の3つの重要なアーキテクチャスタイルがあります-

UMA(Uniform Memory Access)

このモデルでは、すべてのプロセッサが物理メモリを均一に共有します。 すべてのプロセッサは、すべてのメモリワードへのアクセス時間が等しくなっています。 各プロセッサにはプライベートキャッシュメモリがあります。 周辺機器は一連のルールに従います。

すべてのプロセッサがすべての周辺機器に同等にアクセスできる場合、システムは*対称型マルチプロセッサ*と呼ばれます。 周辺機器にアクセスできるプロセッサが1つまたは少数の場合、システムは「非対称マルチプロセッサ」と呼ばれます。

UMA

不均一メモリアクセス(NUMA)

NUMAマルチプロセッサモデルでは、アクセス時間はメモリワードの場所によって異なります。 ここでは、共有メモリはローカルメモリと呼ばれるすべてのプロセッサに物理的に分散されています。 すべてのローカルメモリのコレクションは、すべてのプロセッサがアクセスできるグローバルアドレス空間を形成します。

NUMA

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

COMAモデルは、NUMAモデルの特殊バージョンです。 ここでは、すべての分散メインメモリがキャッシュメモリに変換されます。

coma