。
议案
を使用した対话形式でのループの并列実行この例では,低速の对于
ループから始めて,代わりに议案
ループを使用して计算を高速化します。议案
は,对于
ループ反复の実行を并列プール内のワーカーに分割します。
この例では,行列のスペクトル半径を计算し,对于
ループを议案
ループに変换します。高速化の结果を测定する方法を确认します。
马铃薯®エディターで,次の对于
ループを入力します。経过时间を测定するために,Tic.
とTOC.
を追加します。
抽动N = 200;A = 500;一个零=(N);对于I = 1:N A(I)= MAX(ABS(EIG(RAND(A))));结束TOC.
スクリプトを実行し,経过时间を确认します。
经过时间是31.935373秒。
スクリプト内の对于
ループを议案
ループに置き换えます。
抽动N = 200;A = 500;一个零=(N);议案I = 1:N A(I)= MAX(ABS(EIG(RAND(A))));结束TOC.
新しいスクリプトを実行し,もう一度実行します。最初の実行は,2回目の実行よりも遅くなります。これは,并列プールが起动して,コードをワーカーで使用可能にするのに时间がかかるためです0.2回目の実行の経过时间を确认します。
既定では,MATLABによって,ローカルマシン上に复数のワーカーからなる并列プールが自动的に开かれます。
开始使用“本地”的个人资料...连接到4名工人并行池(parpool)。......经过的时间10.760068秒。
议案
の実行は,対応する对于
ループの実行よりも约3倍高速です。高速化は,4つのワーカーでの理想的な高速化の系数4よりも小さくなっています。これは,データをクライアントとワーカー间で転送するために必要な时间を含む,并列オーバーヘッドによるものです。この例では,并列オーバーヘッドが比较的小さい良好な高速化と,议案
ループに変换することの利点が示されています。すべての对于
ループ反复を,より高速な议案
ループに変换できるわけではありません。详细については,PARFORを使用するタイミングの决定を参照してください。议案
ループを使用するための重要な要件の1つは,个々の反复が独立していなければならないことです。议案
处理に适している独立した问题には,モンテカルロシミュレーションやパラメータースイープなどがあります。以降の手顺については,对于ループからPARFORループへの変换を参照してください。
この例では,对于
ループを4つのワーカー上の议案
に変换することにより计算を高速化しました。并列プール内のワーカー数を増やすことにより,経过时间がさらに短缩される可能性があります。クラスターおよびクラウドへのPARFORループのスケールアップを参照してください。
クラスタープロファイルを変更すると,ループを実行するワーカーの数と,ワーカーをローカルまたはクラスターのどちらに配置するかを制御できます。プロファイルについての详细は,クラスターの検出とクラスタープロファイルの使用を参照してください。
并列基本设定を変更して,并列プールを自动作成するかどうかと,タイムアウトまでの时间を制御することができます。基本设定についての详细は,并列基本设定の指定を参照してください。
议案
ループを使用する代わりに,Parsim
コマンドを使用して的金宝appSimulink®モデルを并列実行できます.金宝appSimulinkの并列使用の详细と例については,复数のシミュレーションの実行(金宝appSimulink)を参照してください。