MATLAB で「parfor」ループをデバッグすることはできますか?
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 3 Jun. 2025
Beantwortet: MathWorks Support Team
am 3 Jun. 2025
現在「parfor」ループをデバッグするには「for」ループ内で「parfor」ループの重複コードを維持する必要があります。どのループを実行するかを決定するために、if 文を使用して parpool の存在を検出しています。コードを重複させずにこれを行う方法はありますか?
if ~isempty(gcp('nocreate'))
parfor ii=1:length(caseInputs)
myCodeStatements
end
else
for ii=1:length(caseInputs)
myCodeStatements % same code as above, I'd like to eliminate this
end
end
Akzeptierte Antwort
MathWorks Support Team
am 3 Jun. 2025
次のコードは、MATLAB で "parfor" ループをデバッグするための回避策を示しています。
if ~isempty(gcp('nocreate'))
debug = Inf;
else
debug = 0;
end
parfor (loopvar = 1:10,debug)
pctfunction(loopvar);
end
function pctfunction(loopvar)
disp(loopvar) % breakpoints can be set in here
end
「parfor」に渡されるデバッグ値は「parfor」ループが実行されるワーカーの数を指定します。「0」が渡された場合「parfor」にはワーカーが割り当てられず「for」ループと同様に動作します。
「parfor」使用時にブレークポイントを設定するには、parfor ループから 2 つ目の関数を呼び出す必要があります。2 つ目の関数でブレークポイントを設定できます。ブレークポイントはデバッグ値が 0 の場合にのみ機能します。
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu 並列計算の基礎 finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!