MATLAB で「parfor」ル​ープをデバッグするこ​とはできますか?

4 vues (au cours des 30 derniers jours)
MathWorks Support Team
MathWorks Support Team le 3 Juin 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

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 3 Juin 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 の場合にのみ機能します。 

Plus de réponses (0)

Catégories

En savoir plus sur 並列計算の基礎 dans Help Center et File Exchange

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!