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

조회 수: 9 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2025년 6월 3일
답변: MathWorks Support Team 2025년 6월 3일

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

채택된 답변

MathWorks Support Team
MathWorks Support Team 2025년 6월 3일
次のコードは、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개)

카테고리

Help CenterFile Exchange에서 並列計算の基礎에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

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

Start Hunting!