Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

比較する復調タイプのマルチコア シミュレーション

この例では、LLR と硬判定復調を比較します。ここでは、Simulink® のデータフロー領域を使用して通信システムのデータ駆動型部分を複数のスレッドに自動的に分割し、デスクトップの複数のコア上で実行することでシミュレーションのパフォーマンスを向上させます。

はじめに

データフロー実行領域により、計算量の多いシステムの設計で複数のコアを使用できます。この例では、サブシステムの実行領域としてのデータフローでモデルのシミュレーション パフォーマンスを改善する方法を説明します。データフローと、複数のスレッドを使用して Simulink モデルを実行する詳細については、Multicore Execution Using Dataflow Domainを参照してください。

LLR と硬判定復調

この例では、復号化器で硬判定復調の代わりに LLR を使用するときに BER 性能を比較する通信システムを示します。この例は、1 台の送信機、AWGN チャネルおよび 3 台の受信機を使用します。3 台の受信機は、異なる復号化技術を使用して各アプローチの BER を比較します。ビット エラー レートの計算は、3 台の受信機のパフォーマンスを比較するために Display ブロックに表示されます。

Dataflow Subsystem の設定

この例では、Simulink でデータフロー領域を使用し、デスクトップ上の複数のコアを利用してシミュレーション パフォーマンスを向上させます。このモデルの dataflow subsystem の [領域] パラメーターは、Dataflow として設定されます。これを表示するには、サブシステムを選択してからプロパティ インスペクターにアクセスします。プロパティ インスペクターにアクセスするには、Simulink ツールストリップの [モデル化] タブの [設計] ギャラリーで [プロパティ インスペクター] を選択するか、[シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。

データフロー領域は、モデルを複数のスレッドに自動的に分割し、パフォーマンスを向上させます。[領域] パラメーターを Dataflow に設定すると、[マルチコア] タブの解析を使用してモデルを解析し、パフォーマンスを向上させることができます。モデルにデータフロー領域がある場合は、ツールストリップで [マルチコア] タブを利用できます。[マルチコア] タブの詳細については、Perform Multicore Analysis for Dataflowを参照してください。

Dataflow Subsystem の同時実行の解析

この例では、シミュレーション パフォーマンス解析のために [マルチコア] タブ モードが Simulation Profiling に設定されています。

最適なシミュレーション パフォーマンスのためには、モデル設定を最適化することを推奨します。推奨されたモデル設定を受け入れるには、[マルチコア] タブで [最適化] をクリックします。または、[最適化] ボタンの下にあるドロップダウン メニューを使用して、設定を個別に変更することもできます。この例では、既に最適なモデル設定になっています。

[マルチコア] タブで、[解析の実行] ボタンをクリックして、シミュレーション パフォーマンスのデータフロー領域の解析を開始します。解析の終了後、[データフロー解析レポート] ウィンドウに Dataflow Subsystem がシミュレーション中に使用するスレッド数が表示されます。

モデル解析後の [データフロー解析レポート] ウィンドウには 3 つのスレッドが表示されており、3 つの異なる受信機タイプを同時に個別に実行できることが示されています。[レイテンシ] が 0 の場合、データフローはモデル内でこの固有の並列処理のみを使用できます。3 つの受信機は 1 つの送信機にデータ依存しています。これによって、受信機が処理を開始する前に送信機がその処理を完了する必要があるためボトルネックが発生します。パイプライン遅延がない場合、モデル内で固有の並列処理のみを利用して、複数のスレッドを使用しながら Dataflow Subsystem を実行することができます。データ依存のブロックをパイプライン化することによって、Dataflow Subsystem は、データ スループットを上げるために同時実行を増やすことができます。[データフロー解析レポート] ウィンドウには、パイプライン遅延の推奨数が [同時実行性を高めるための提案] として表示されます。推奨レイテンシの値は最高のパフォーマンスを得られるように計算されます。

次の図は、Dataflow Subsystem の推奨レイテンシが 3 である [データフロー解析レポート] ウィンドウを示しています。

[承諾] ボタンをクリックして、Dataflow Subsystem の推奨レイテンシを使用します。この値は、[レイテンシ] パラメーターとして [プロパティ インスペクター] で直接入力することもできます。Simulink では、Dataflow Subsystem の出力端子で $Z^{-n}$ タグを使用してレイテンシ パラメーターの値が表示されます。

今度は [データフロー解析レポート] ウィンドウにスレッドの数が 5 と表示されており、Dataflow Subsystem 内部のブロックが 5 つのスレッドを使用してシミュレーションを並列実行していることを意味します。3 つのパイプライン遅延を使用することで、Dataflow Subsystem 内で並列に実行できるブロック数が増加しました。[スレッドの強調表示] は、[スレッド強調表示の凡例] に示すように、スレッドの割り当てに基づいてブロックを色で強調表示します。[パイプライン遅延の表示] は、$Z^{-n}$ タグを使用して、Dataflow Subsystem 内でパイプライン遅延が挿入された場所を示します。

マルチコア シミュレーションのパフォーマンス

複数のスレッドを使用してモデルを実行するための実行時間とモデルがデータフローを使用しないときにかかる実行時間を比較して、複数のコアの使用によるパフォーマンスの向上を測定します。実行時間は sim コマンドを使用して測定されます。これによりモデルのシミュレーション実行時間が返されます。これらの数字と解析は、Intel® Xeon® CPU W-2133 @ 3.6 GHz、6 コア、12 スレッドのプロセッサを使用する Windows デスクトップ コンピューターで得られたものです。

Simulation execution time for multithreaded model = 4.26s
Simulation execution time for single-threaded model = 10.81s
Actual speedup with dataflow: 2.5x

まとめ

この例では、データフロー実行領域がデスクトップで複数のコアを使用して通信システムのモデルのパフォーマンスを向上できる方法を示します。