MATLAB で「parfor」ループをデバッグすることはできますか?
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 3 de Jun. de 2025
Respondida: MathWorks Support Team
el 3 de Jun. de 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
Respuesta aceptada
MathWorks Support Team
el 3 de Jun. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre 並列計算の基礎 en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!