並列および分散コンピューティング 第 1 章 基本概念

並列および分散コンピューティング 第 1 章 基本概念

1.1 並列分散コンピューティングの必然性

1.1.1 データフローから見た3つの壁

  • GPU メモリ容量の限定的な増加 (メモリ ウォール)
  • リンク帯域幅の向上は AI の計算能力の向上に大きく遅れています (通信の壁)
  • データはムーアの法則よりもはるかに速く増加していますが、ストレージ
    デバイスの速度 (帯域幅または IOPS) はプロセッサ (ストレージ ウォール) に大きく遅れています

1.1.2 システム構造の進化

フォン・ノイマン構造画像の説明を追加してください

フォン・ノイマン構造の特徴

  • オペレーターを中心とした構造
  • 命令はオペコードとアドレスコードで構成されます
  • プログラムの命令はコンピュータのメモリにあらかじめ格納されており、コンピュータはプログラムで指定された論理順序で命令を実行し、その実行順序を制御するのがPC命令と分岐命令です。
  • ハーバード構造:メモリ上では命令とデータは同等に扱われ、バイナリで表現されます。つまり、命令で構成されるプログラムは変更可能です。
  • 各メモリユニットは固定サイズで、順番に線形にアドレス指定され、アドレスごとにアクセスされます。

命令セットアーキテクチャの進化

  • 命令セットの機能
    · 複雑命令セット コンピュータ (CISC)
    · 縮小命令セット コンピュータ (RISC) (現代のコンピュータの基礎)デザイン)
  • 命令セット形式
    ・可変長命令セットコンピュータ
    ・固定長命令セットコンピュータ
  • 命令のアドレス空間とアドレッシング モード
    · 複数の柔軟なアドレッシング モード

コンピューティング アーキテクチャの進化

  • シングルレベル コンピューティング -> マルチレベル コンピューティング -> ネットワーク コンピューティング -> クラウド コンピューティング
  • 命令ワード幅が増加 8 16 32 64 ベクトル命令
  • 並列処理: シングルコア、マルチコア、多コア
  • ムーアの法則が失効し始める
  • 動作周波数の向上
  • 制御の複雑さの増加

ストレージ構造の進化

  • シングルレベル ストレージ -> マルチレベル ストレージ -> ネットワーク ストレージ -> クラウド ストレージ
  • ストレージ アーキテクチャはムーアの法則を守るために引き続き強力です
  • 容量が増加します
  • 速度上昇
  • エネルギー消費量の削減
  • ストレージ アーキテクチャはムーアの法則を守るために引き続き強力です

IO構造の進化
画像の説明を追加してください

1.2 並列計算

1.2.1 コンピュータシステムの構造の分類

マイケル・フリンによって提案されたフリン分類法:

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

**単一命令ストリーム、単一データストリーム、SISD (フォン・ノイマン)画像の説明を追加してください

  • 各命令は単一のデータを操作します
  • 命令セットの並列性
  • 各PU専用CU(CUコントロールユニット・PU算術論理ユニット)
  • パイプライン、動的スケジューリング、先読み実行、スーパースカラー、マルチイシュー。

**単一命令ストリーム、複数データ ストリーム、SIMD (アレイ プロセッサ、ベクトル)**
画像の説明を追加してください

  • 各命令は複数のデータ ストリームを操作します。

  • データセットの並列性

  • 複数の PU はプライベートに保存できますが、CU を共有します

  • ベクター アーキテクチャ GPU
    複数の命令ストリーム、複数のデータ ストリーム、MIMD
    画像の説明を追加してください

  • 各命令は単一のデータ ストリーム上で動作します

  • タスクレベルの並列処理

  • 密結合はスレッドレベルの並列処理として現れます: マルチコア、共有メモリ モデル

  • 疎結合はプロセス レベルの並列処理として現れます: マルチプロセッサ、メッセージ パッシング モード
    複数の命令ストリームと単一のデータ ストリーム、MISD (ハイ パフォーマンス、マルチマシン)
    画像の説明を追加してください

  • 複数の命令が単一のデータ ストリーム上で動作します

  • ストリーミングコンピューティング

  • 密結合は、オンチップ ストリーミング コンピューティングとして現れます。

  • 疎結合はビッグ データ ワークフローに現れます。

1.2.2 並列処理

並列処理: コンピューター システムは、複数の計算または操作を同時に、または同じ時間間隔内で実行します。

  • 同時性: 2 つ以上のイベントが同時に発生すること。
  • 同時実行性: 同じ時間間隔内に発生する 2 つ以上のイベント。

データ処理の観点から見ると、並列処理レベルは低から高まであります。

  • 文字列ビット文字列: 一度に処理されるのはワードの 1 ビットだけです。 (最も基本的な逐次処理方式、並列処理はありません)
  • 単語文字列ビット結合: 単語のすべてのビットが同時に処理され、異なる単語がシリアル化されます (並列性が現れ始めます)。
  • ワード並列ビット列: 多くのワードの同じビット (ビット スライスと呼ばれる) を同時に (高い並列性で) 処理します。
  • 完全並列: 多くのワードのビットのすべてまたは一部を同時に処理します。 (最高レベルの並列処理)

エグゼキュータの観点から見ると、並列処理レベルは低から高まであります。

  • 命令内並列処理: 単一命令内のマイクロ操作間の並列処理
  • 命令レベルの並列処理: 2 つ以上の命令を並行して実行します。
  • スレッドレベルの並列処理: 2 つ以上のスレッドを並行して実行します。 (通常、1つのプロセスから派生した複数のスレッドがスケジューリング単位として使用されます)
  • タスクレベルまたはプロセスレベルの並列処理: 2 つ以上のプロセスまたはタスク (プログラムセグメント) を並行して実行します。
  • ジョブまたはプログラムレベルの並列処理: 2 つ以上のジョブまたはプログラムを並行して実行します。

1.2.3 コスト別に分類された並列コンピューティング

  • コンピューティング集約型: 大規模な科学工学計算や数値シミュレーションなど。
  • データ集約型: データ ウェアハウス、データ マイニング、コンピューティングの視覚化など。
  • コミュニケーション集約型: コラボレーション コンピューティングやストリーミング メディア サービスなど

1.2.4 並列計算機システム構成の応用分野

  • 高度に構造化された数値計算
  • 非構造化数値計算
  • リアルタイムの多要素問題
  • 大容量ストレージと集中的な入出力の問題
  • グラフィックとデザインの問題
  • AI

1.2.5 並列性を向上させるための 3 つの基本的な考え方

  • 時間の重複 (マルチコンポーネント パイプライン) により時間要素が導入され、複数の処理プロセスを時間内でずらして、同じハードウェア機器セットのさまざまな部分を順番に使用して、ハードウェアの回転率を高め、速度を向上させることができます。
  • リソースの重複 (マルチコア) によりスペース要素が導入され、量で勝ります。ハードウェアリソースのセットアップを繰り返すことで、コンピュータシステムのパフォーマンスが大幅に向上します。 (大型モデル)
  • リソース共有 (ソフトウェア同時実行) これは、複数のタスクが同じセットのハードウェア デバイスを特定の時間シーケンスで順番に使用できるようにするソフトウェア方法です。クラウド コンピューティングの仮想マシンなど。

1.2.6 並列処理の発展

スタンドアロン システムにおける並列処理の開発
高性能の単一プロセッサを開発するプロセスでは、時間重複の原理が主要な役割を果たします。

時間重複実現の基盤:コンポーネント機能の特化

  • 機能に応じて、作品をいくつかの相互接続された部分に分割します。
  • 各パーツを専用のコンポーネントに割り当てて完成させます。
  • 時間重複の原理に従って、各部分の実行プロセスは時間的に重複するため、すべてのコンポーネントは共通のタスクのセットを順番に完了できます。

シングルプロセッサでのリソース重複原理の適用

  • 多体記憶
  • 複数の演算コンポーネント:
    · 一般的なコンポーネントは、加算コンポーネント、乗算コンポーネント、除算コンポーネント、論理演算コンポーネントなどのいくつかの専用コンポーネントに分解されます。同じコンポーネントを複数の設定を繰り返すこともできます。
    · 命令に必要な演算部分が空いている限り、この命令の実行を開始できます (オペランドの準備ができている場合)
    · これは実装します命令レベルは平行です。
  • アレイ プロセッサ (並列プロセッサ) は、多数の同一の処理ユニットをセットアップし、同じコントローラと同じ命令のコマンドの下でベクトルまたは配列の各要素に対して同じ演算を同時に実行できるようにし、アレイ プロセッサを形成します。

単一マシンでのリソース共有の応用
シングル プロセッサにおけるリソース共有の概念は、基本的に単一プロセッサを使用してマルチプロセッサの機能をシミュレートし、いわゆる仮想マシンの概念。仮想マシンの各ユーザーは、自分が専用のプロセッサを持っているように感じます。

マルチマシンシステムにおける並列処理の開発

  • 結合度: マルチマシン システム内のマシン間の物理的接続の密接さと相互作用機能の強さを反映します。 「低結合、高凝集」の考え方
  • 密結合システム (直接結合システム): このシステムでは、コンピュータ間の物理接続は、通常はバスまたは高速スイッチの相互接続を介して、より高い周波数帯域で行われ、メイン メモリを共有できます。マシン間の対話は変数レベルで行われます。
  • 疎結合システム(間接結合システム):一般に、コンピュータはチャネルまたは通信回線を通じて相互接続され、外部記憶装置(ディスク、テープなど)を共有できます。マシン間の対話は、ファイルまたはデータ セット レベルで発生します。

マルチマシンシステム

  • 高可用性: 構造的な堅牢性 (マルチアクティブ インスタンス)、データの信頼性 (ホット スタンバイとレプリカ)、再構成可能なシステム (マルチポイント コラボレーション)
  • 高パフォーマンス: 負荷分散 (リバース プロキシ)、エラスティック コンピューティング (Web サービス)、低遅延 (メッセージ キュー、分散キャッシュ)
  • 高信頼性:データ暗号化、本人認証、権限制御

1.2.7 並列コンピューティングのパラダイム

フェーズ パラレル画像の説明を追加してください
フェーズ パラレル 並列プログラムは一連のスーパー ステップで構成され、各スーパー ステップはフェーズとも呼ばれます。各スーパー ステップ内で、各プロセスは独自の並列計算を実行し、その後相互作用 (通信同期などを含む) を実行します。フェーズ並列処理は、緩い同期並列処理とも呼ばれ、エラーチェックや性能解析が容易になるというメリットがありますが、 デメリットとしては、 計算フェーズと対話フェーズが重ならないため、 負荷バランスを保つことが難しいという点があります。

並列処理を分割して征服する
画像の説明を追加してください

並列分割統治: 主要なプロセスはワークロードを複数の小さな負荷に分割し、それらをいくつかのサブプロセスに割り当てます。これらのサブプロセスはそれぞれの計算を並列で完了し、後続のプロセスがこれらの計算の結果をマージします。このスライスとマージのプロセスは当然再帰につながり、負荷バランスを維持するのが難しいという欠点があります。先行プロセスと後続プロセスは、同じプロセスであっても、MapReduce などの異なるプロセスであっても構いません。

画像の説明を追加してください

パイプラインの並列処理
パイプラインの異なるセクションにある複数のプロセスの実行操作をオーバーラップさせることで、全体的な並列効果が実現します。欠点は、通常、各セグメントの負荷が異なるため、負荷バランスを維持することが困難であることです。負荷の不均衡によりパイプライン バブルが発生します。解決策は、ボトルネック セグメントを繰り返し設定するか、ボトルネック セグメントを細分化することです。

マスタースレーブ並列処理
画像の説明を追加してください

マスター/スレーブ並列 (マスター/スレーブ並列) マスター プロセスは並列プログラムの直列部分​​を実行し、同時に並列計算を実行できるいくつかのサブプロセスを生成します。サブプロセスが計算を完了すると、メインプロセスに新しいタスクを再割り当てします。この種の並列処理は、ハーディング並列処理とも呼ばれます。メイン プロセスがすべての調整作業を担当します。欠点は、メイン プロセスがシステムのボトルネックになりやすいことです。解決策は、複数のマスターと複数のスレーブを使用することですが、また、マルチマスターコラボレーションのデータ一貫性の問題。

ワーク プールの並列
![画像の説明を追加してください](https://img-blog.csdnimg.cn/c00ee6a97ec14d8abf2741a53b62ff06.png ワーク プールの並列 (ワーク プール)開始 プールにはジョブが 1 つだけあり、アイドル状態のプロセスはそれをプールから取り出して実行できます。実行中に、1 つ以上の新しいジョブが生成され、他のアイドル状態のプロセスが実行できるようにプールに戻されることがあります。プールが空になると、並列プログラムは終了します。ワーク プールは論理的なグローバル データ構造であり、順序なしキュー、順序付きキュー、優先マルチキューなどにすることができます。これは、一般的に使用されるメッセージ キュー ソリューションです。エンタープライズレベルのアプリケーション。

並列コンピューティングの主な問題

  • メモリ ウォール問題 (メモリ ウォール) は、メモリ アクセス能力と処理装置の計算能力の不均衡であり、プロセッサが「ハングリー」状態になります。
  • パワーウォール問題(パワーウォール)
  • 生態学的壁の問題

1.3 分散コンピューティング

1.3.1 分散コンピューティング システムはなぜ必要ですか?

分散コンピューティング システムの開発を促進する 2 つの主要なテクノロジ:

  • コンピュータのハードウェア技術とソフトウェア技術の開発。
  • コンピュータネットワーク技術の発展。

** 2 つの主要なテクノロジにより、人々のコンピュータの使用方法が変わりました。 **

  • 1950 年代には、マシンに乗り込むための予約をするのにすべてのリソースが費やされました。
  • 1960 年代にはバッチ処理技術。
  • 1970 年代には、タイムシェアリング システムにより、複数のユーザーが 1 台のコンピュータを同時に使用できるようになりました。
  • 1980 年代のパーソナル コンピューターでは、各ユーザーが専用のコンピューターを持っていました。
  • 1990 年代から現在まで、コンピュータ ネットワークを介して複数のコンピュータが使用されています。
    物理的根拠によってアプリケーション モードが決まります

複数のコンピュータ システム環境によってもたらされる新しい問題:
複数のコンピュータ システム環境によってもたらされる新しい問題:

  • 使用中、ユーザーはローカル オブジェクトとリモート オブジェクトの違いを理解する必要があります。
  • 管理の面では、管理者はファイルのバックアップなどの業務に走り回ることができません。

上記の新しい問題を解決する方法は、分散オペレーティング システムを実装することです。
分散コンピューティング システムでは、複数のコンピュータがスタンドアロン システムのように動作する完全なシステムを形成します。分散オペレーティングシステム 分散オペレーティングシステムは、分散コンピューティングシステムを実現するための中核です。

1.3.2 分散コンピューティング システムの関連概念

分散コンピューティング システムとは
分散コンピューティング システムとは、複数の独立したコンピュータ システムが相互に接続されて構成されるコンピューティング システムです。ユーザーの観点からは、集中型であるように見えます。スタンドアロン システム

分散コンピューティング システムは、集中プログラム、データ、ハードウェアへの依存を最小限に抑えながら、システム全体の制御下で共通のタスクを実行するために協力できる複数の相互接続された処理リソースで構成されるコンピューティング システムです。これらの処理リソースは、物理的に隣接することも、地理的に分散することもできます。

分散コンピューティング システム定義の説明:

  • システムは複数のプロセッサまたはコンピュータ システムで構成されます。
  • 2 種類の構造: これらのコンピューティング リソースは、マシンの内部バスまたはスイッチによって接続され、共有メイン メモリを介して通信する物理的に隣接するプロセッサにすることができます。また、これらのコンピューティング リソースは、地理的に分離してコンピュータ通信ネットワークによって接続することもできます (リモート ネットワークに接続されたコンピュータ システム、またはローカル エリア ネットワークはメッセージを使用して通信します。
  • これらのリソースは全体を形成し、ユーザーに対して透過的です。つまり、ユーザーはリソースを使用するときにこれらのリソースがどこにあるかを知る必要がありません。
  • プログラムは、さまざまなコンピューティング リソース上で実行するために配布できます。
  • 各コンピュータ システムは同等のステータスを持ち、システム全体のオペレーティング システムによって制御されるだけでなく、マスター/スレーブ制御や集中制御リンクはありません。

密結合および疎結合の分散コンピューティング システム

  • 密結合分散コンピューティング システム*画像の説明を追加してください
  • 接続方法:内部バスまたはマシン内相互接続ネットワーク
  • リソース間の処理距離: 物理的に分散しており、互いに非常に近い。
  • 処理リソース: マルチプロセッサ。
  • 通信方式:共有メモリ。

疎結合分散コンピューティング システム アーキテクチャ
画像の説明を追加してください

  • 接続方法:通信ネットワーク
  • リソース間の距離に対処する: 地理的に分散しており、遠く離れています。
  • 処理リソース: 複数のコンピュータ システム。
  • コミュニケーション方法:メッセージ交換。

同種および異種分散コンピューティング システム

  • 同種分散システムの場合、システムを構成するコンピュータのハードウェアとソフトウェアは同一または非常に類似しており、システムを構成するコンピュータネットワークのハードウェアとソフトウェアも同一または非常に類似している。
  • 異種分散システムの場合、システムを構成するコンピュータのハードウェアやソフトウェアが異なったり、システムを構成するコンピュータネットワークのハードウェアやソフトウェアも異なったりする。
    画像の説明を追加してください

1.3.3 分散コンピューティング システムの透明性

  • 分散コンピューティング システムの透明性: ユーザーやプログラマーはネットワークの存在を認識できません。このように、ユーザーまたはプログラマーの観点からは、ネットワーク内のすべてのマシンが 1 つとして見え、ユーザーまたはプログラマーはマシンとネットワーク自体の境界を見ることができません。ユーザーは、データがどこに配置され、プロセスが実行されるかを知る必要はありません。
    分散コンピューティング システムの透過的なパフォーマンス:
  • 名前の透明性: 名前の透明性とは、オブジェクトの名前がグローバルに一意であり、オブジェクトへのアクセスに使用される名前は、どこからアクセスしても同じであることを意味します。このように、システム内でプログラムを移動しても、その正確さに影響はありません。
  • 場所の透明性: 場所の透明性とは、リソースの名前にリソースの場所情報が含まれていないことを意味します。このようにして、リソースがシステム内で移動された場合、リソース名は変更されずに、元のプログラムが正常に実行されます。
  • 透明性へのアクセス: 透明性へのアクセス。ユーザーはローカルリソースとリモートリソースを区別する必要はなく、ローカルリソースとリモートリソースへのアクセス方法は同じです。
  • 移行は透過的です。移行の透過性とは、リソースまたは自分のジョブが別の場所に移行されたかどうかをユーザーが知らないことを意味します。移行の透過性には、名前の透過性のサポートが必要です。
  • 透明にコピーします。レプリケーションの透過性により、ファイルまたは他のオブジェクトの複数のコピーがシステム内に同時に存在することができますが、この状況はユーザーには透過的であり、オブジェクトへの変更はオブジェクトのすべてのコピーに同時に適用される必要があります。
  • 同時実行性と並列性は透過的です。複数のプロセスが同じリソースに同時または並行してアクセスしたり、1 つのプロセスが複数のリソースを同時に使用したりする場合、相互干渉や破壊は発生しません。
  • 失敗は透過的です。システムの特定の部分に障害が発生しても、システム全体は障害を起こさず、正常に動作し続けます。

分散コンピューティング システムが透過的である場合、次のような利点があります。

  • リソースにアクセスする方法が 1 つしかなく、ソフトウェアの機能が場所に依存しないため、ソフトウェア開発が容易になります。
  • 特定のシステム リソースの変更は、アプリケーション ソフトウェアにはほとんど、またはまったく影響を与えません。
  • システムのリソースの冗長性 (ハードウェアの冗長性とソフトウェアの冗長性) により、動作の信頼性と可用性が向上します。透過性により、この冗長性を実装するときに、さまざまな冗長リソースを相互に置き換えることが容易になります。
  • リソース操作に関しては、操作を 1 つの場所から他のいくつかの場所に移動しても影響はありません。

透明性に影響を与える要因

  • システムの不均一性は、透明性に一定の影響を与えます。
    · Web サービスを通じて緩やかに統合されています。
    ·さまざまな言語でプログラムを共有します。
    ·フロントエンド ソフトウェアを複数の既存システムに追加します。
  • 透明性に対する地方自治の影響
    · 分散コンピューティング システムは、複数の場所に分散したコンピュータの集合で構成され、その場所のマシンの可視性を維持する必要があります。 、この地方自治は世界的な透明性を制限します
    ・リソース管理の側面。分散コンピューティング システムによって接続された各マシンは、リソースの使用をより詳細に制御することを目的として、さまざまなユーザーによって操作されるか、組織のさまざまな部門によって制御されます。
    ·ネーミング。同じモデルのマシンであっても、異なるユーザーは異なる方法でディレクトリを作成する場合があります
  • ネットワーク相互接続が透明性に与える影響
    · 多くのネットワークは、さまざまなメーカーが提供するさまざまなシリーズのコンピュータを接続しています。
    · 今日のネットワークは一般的に、次のネットワークから直接開発されています。初期のネットワーク構造では、その最も重要な機能は通信であり、分散コンピューティングは考慮されていませんでした
    · リモート ネットワークは一般に、低帯域幅または高遅延を特徴とする高価なリソースです

1.3.4 分散コンピューティング システムのアーキテクチャと設計

分散コンピューティング システムの階層構造
分散コンピューティング システムは、いくつかの論理レイヤに分割できます。レイヤはインターフェイスと呼ばれ、各レイヤには 2 つのインターフェイスがあります。レイヤーによって提供される機能はさらにいくつかのモジュールに分割でき、モジュール間のインターフェイスもあります。インターフェースは次の 3 つの部分で構成されます

  • 可視の抽象オブジェクト (リソース) と、これらのオブジェクトに必要な操作とパラメーターのセット。
  • これらの操作の法的順序を管理する一連のルール。
  • 操作とパラメータに必要なエンコードとフォーマットの規則。

プロセスとメッセージ配信のための分散コンピューティング システム モデル
画像の説明を追加してください

分散コンピューティング システムは 4 つの層で構成されます。第 1 層はハードウェアまたはファームウェアで構成されるハード コア、第 2 層は分散オペレーティング システムのカーネル、第 3 層は分散オペレーティング システムのサービス層、第 4 層は分散オペレーティング システムのカーネルです。層はユーザーと関連するアプリケーション層です。

ミドルウェアをベースとした分散コンピューティングシステム画像の説明を追加してください

分散コンピューティング システムの設計上の問題
各レイヤーまたは複数のレイヤーに共通する設計上の問題:

  1. ネーミングの問題。
  2. エラー制御。
  3. リソース管理の問題。
  4. 同期の問題。
  5. 保護の問題。
  6. テストの質問

1.4 定量化の原則

1.4.1 規則性の原則

繰り返し発生するイベントに焦点を当て、頻繁に発生する状況に応じた最適化手法の原則を選択して、より全体的な改善を実現します。

1.4.2 局所性の原則

プログラムの実行中にアクセスされるメモリ アドレスの分布はランダムではなく、比較的クラスター化されています。

  • パレートの法則
    プログラム実行時間の 80% は、プログラム内のコードの 20% を実行します。
    人生における 80/20 の原則、最後の 20%
  • プログラムの時間的局所性
    プログラムが使用しようとしている情報は、現在使用されている情報 (または最近使用されたばかりの情報) である可能性があります。
  • プログラムの空間的局所性
    プログラムが使用しようとしている情報は、現在使用されている情報に空間的に隣接しているか、または近い可能性があります。

1.4.3 ベンチマーク原則

ベンチマーク スーツ • あらゆる面で代表的なテスト プログラムのセットを選択して、一般的なテスト プログラムのコレクションを形成します。独立したテスト手順の一方的性を回避し、コンピュータ システムのパフォーマンスをあらゆる側面 (他の一般的なコンピュータ システムと比較して) でできるだけ包括的にテストします。

1.4.4 ムーアの法則

単位面積あたりのトランジスタ数は 18 か月ごとに 2 倍になり、価格はその逆になります

1.4.5 デナードの法則

各テクノロジーの世代では、消費電力は同じままでトランジスタ密度が 2 倍になります

1.4.6 アムダールの法則

特定のコンポーネントの実行を高速化することで得られるシステム パフォーマンスの高速化率を表し、システムの合計実行時間に対するコンポーネントの実行時間の割合によって制限されます。

  • 改善可能率:改善前のシステムにおいて、総実行時間に占める改善可能な部分の実行時間の割合。 (常に 1 未満) パーセントです。
  • コンポーネントの高速化率: 部分的な改善後にパフォーマンスを改善できる倍数。改善前の所要実行時間と改善後の実行時間の比率です。

1.4.7 計算コスト評価モデル

並列計算オーバーヘッド = 計算オーバーヘッド + データ オーバーヘッド + 通信オーバーヘッド + スケジューリング オーバーヘッド

• 通信時間は Tn で表され、メモリアクセス時間は Td で表され、計算時間は Tc で表されます。
• 非同期動作メカニズムが使用されている場合、 < a i=2> • Td • Td>Tc の場合、Tc は Td によって部分的に隠蔽されます。総コストは T =Td です。 • Td=Tc の場合、Tc と Td は相互に非表示になり、タイム オーバーラップのパフォーマンスが最も優れています。 • したがって、互いに隠れる Tc と Td の比率が最適化の重要なポイントです • 通信オーバーヘッド p-p とデータ オーバーヘッド p-m はポイントツーポイントです情報送信。 、 • 計算オーバーヘッドは p 内の計算コンポーネントに作用し、スケジューリング オーバーヘッドは p 内のスケジューリング コンポーネントに作用し、両方ともポイント内で •並列計算オーバーヘッド = 計算オーバーヘッド + 送信オーバーヘッド






1.4.8 CPU性能計算式

CPU 時間 = IC ×CPI ×クロック サイクル タイム
• IC (命令数): プログラム内の命令の数。命令セットの構造とコンパイル テクノロジーによって異なります。 a>
• CPI (命令あたりのサイクル数): コンピュータの構成と命令セット構造に応じて、各命令によって実行される平均クロック サイクル数

• クロック サイクル タイム: システム クロック周波数の逆数であり、ハードウェア実装テクノロジとコンピュータの構成によって異なります。

理想的な CPI は、命令およびデータ アクセスのキャッシュ ヒット率が 100% のときの CPI です CPI = 理想的な CPI + CPI 一時停止

おすすめ

転載: blog.csdn.net/weixin_61197809/article/details/134484490