이번역최신을있지않습니다않습니다。최신내용으로보려면를하십시오하십시오하십시오。
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;结尾
그러나그경우분석기는종속성을할없습니다없습니다없습니다。
다른일반적인parfor
문제에대한내용은중첩parfor루프와중첩중첩루프및기타기타요구항목을하십시오。