主要内容

이번역최신을있지않습니다않습니다。최신내용으로보려면를하십시오하십시오하십시오。

parfor루프반복서로독립적함함

为了루프를parfor루프로변환때오류가발생경우경우parfor루프반복독립적을하십시오하십시오하십시오。parfor루프반복은정해진순서가없지만为了루프의반복는순차적입니다。또한parfor루프반복은풀의다른다른®워커에서반복에를를않습니다않습니다않습니다。따라서하나의parfor루프반복반복결과에영향받지합니다합니다합니다。이규칙은还原变量를사용의을누적하는에적용되지않습니다않습니다。

다음예제생성결과동일하나,왼쪽에서는는为了루프를오른쪽는parfor루프를합니다。matlab명령창예제따라해보십시오보십시오。

清除一种为了i = 1:8 a(i)= i;结尾一种
a = 1 2 3 4 5 6 7 8
清除一种parfori = 1:8 a(i)= i;结尾一种
a = 1 2 3 4 5 6 7 8

一种의각는는와같습니다。각요소된변수에의해서만다른변수에종속않으므로않으므로parfor루프는동작합니다。독립적인을갖는为了루프는이상인parfor루프변환입니다。

참고

기본적으로parfor는병렬시작않은경우으로워커병렬풀을합니다합니다합니다。parfor는병렬이하게설정된클러스터프로파일을풀을만듭니다만듭니다만듭니다。

이예제에서요소는为了루프와마찬가지로parfor루프이후공간에서할있습니다있습니다있습니다。

이번에는에인덱싱않은변수를하거나의의루프루프변수一世에종속않는를해보겠습니다보겠습니다。다음예제따라해보고의의d一世의값확인보십시오보십시오。

清除一种d = 0;i = 0;为了i = 1:4 d = i*2;a(i)= d;结尾A D i
a = 2 4 6 8 d = 8 i = 4
清除一种d = 0;i = 0;parfori = 1:4 d = i*2;a(i)= d;结尾A D i
a = 2 4 6 8 d = 0 i = 0

一种의요소두예제에서하지만하지만d의값그렇지않습니다。为了루프에서은순차으로실행되므로이​​후d는루프반복저장한을갖습니다갖습니다。그러나parfor루프에서은병렬로실행하므로d에루프에한값을할없습니다없습니다없습니다。이상황은변수一世에도적용됩니다。따라서parfor루프동작루프외부의값d一世에영향미치지정의됩니다。두변수은전과에에합니다합니다합니다。parfor루프의가독립이지않은경우에는为了루프의답이를있습니다있습니다있습니다。요약에서parfor루프는이반복과서로적합니다합니다합니다。parfor문다음모든루프반복시퀀스종속않아야합니다합니다합니다。

코드분석기는이적인지를진단데도움됩니다됩니다됩니다。다음예제이전의값을해되는반복보여줍니다줍니다줍니다。

parfork = 2:10 x(k)= x(k-1) + k;结尾
matlab편집기에서분석기확인하십시오하십시오。이경우분석기는문제보고합니다합니다。

그러나그경우분석기는종속성을할없습니다없습니다없습니다。

다른일반적인parfor문제에대한내용은중첩parfor루프와중첩중첩루프및기타기타요구항목을하십시오。

참고항목

관련예제

세부정보