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

9 views (last 30 days)

現在「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

Accepted Answer

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

More Answers (0)

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!