MATLAB で「parfor」ループをデバッグすることはできますか?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
le 3 Juin 2025
Réponse apportée : 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
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 の場合にのみ機能します。
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur 並列計算の基礎 dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!