主要内容

。

议案を使用した対话形式でのループの并列実行

この例では,低速の对于ループから始めて,代わりに议案ループを使用して计算を高速化します。议案は,对于ループ反复の実行を并列プール内のワーカーに分割します。

この例では,行列のスペクトル半径を计算し,对于ループを议案ループに変换します。高速化の结果を测定する方法を确认します。

  1. 马铃薯®エディターで,次の对于ループを入力します。経过时间を测定するために,Tic.TOC.を追加します。

    抽动N = 200;A = 500;一个零=(N);对于I = 1:N A(I)= MAX(ABS(EIG(RAND(A))));结束TOC.
  2. スクリプトを実行し,経过时间を确认します。

    经过时间是31.935373秒。

  3. スクリプト内の对于ループを议案ループに置き换えます。

    抽动N = 200;A = 500;一个零=(N);议案I = 1:N A(I)= MAX(ABS(EIG(RAND(A))));结束TOC.

  4. 新しいスクリプトを実行し,もう一度実行します。最初の実行は,2回目の実行よりも遅くなります。これは,并列プールが起动して,コードをワーカーで使用可能にするのに时间がかかるためです0.2回目の実行の経过时间を确认します。

    既定では,MATLABによって,ローカルマシン上に复数のワーカーからなる并列プールが自动的に开かれます。

    开始使用“本地”的个人资料...连接到4名工人并行池(parpool)。......经过的时间10.760068秒。
    4つのワーカーでの议案の実行は,対応する对于ループの実行よりも约3倍高速です。高速化は,4つのワーカーでの理想的な高速化の系数4よりも小さくなっています。これは,データをクライアントとワーカー间で転送するために必要な时间を含む,并列オーバーヘッドによるものです。この例では,并列オーバーヘッドが比较的小さい良好な高速化と,议案ループに変换することの利点が示されています。すべての对于ループ反复を,より高速な议案ループに変换できるわけではありません。详细については,PARFORを使用するタイミングの决定を参照してください。

议案ループを使用するための重要な要件の1つは,个々の反复が独立していなければならないことです。议案处理に适している独立した问题には,モンテカルロシミュレーションやパラメータースイープなどがあります。以降の手顺については,对于ループからPARFORループへの変换を参照してください。

この例では,对于ループを4つのワーカー上の议案に変换することにより计算を高速化しました。并列プール内のワーカー数を増やすことにより,経过时间がさらに短缩される可能性があります。クラスターおよびクラウドへのPARFORループのスケールアップを参照してください。

クラスタープロファイルを変更すると,ループを実行するワーカーの数と,ワーカーをローカルまたはクラスターのどちらに配置するかを制御できます。プロファイルについての详细は,クラスターの検出とクラスタープロファイルの使用を参照してください。

并列基本设定を変更して,并列プールを自动作成するかどうかと,タイムアウトまでの时间を制御することができます。基本设定についての详细は,并列基本设定の指定を参照してください。

议案ループを使用する代わりに,Parsimコマンドを使用して的金宝appSimulink®モデルを并列実行できます.金宝appSimulinkの并列使用の详细と例については,复数のシミュレーションの実行(金宝appSimulink)を参照してください。

参考

|||

关键词トピック