주요 콘텐츠

parfor

설명

parfor loopVar = initVal:endVal; statements; endinitvalendval(구간의 끝점 포함) 사이의 loopvar 값에 대해 일련의 MATLAB® 명령문을 실행합니다. 이는 증가하는 정수 값의 벡터를 지정합니다.

Parallel Computing Toolbox™가 있거나 MATLAB Coder™를 사용하여 MEX 함수 또는 독립 실행형 코드를 생성할 경우에는 루프가 병렬로 실행됩니다. 기존 for 루프와 달리, 반복이 정해진 순서대로 실행되지 않습니다. parfor 루프에서 직접 스크립트를 호출할 수는 없습니다. 대신, 스크립트를 호출하는 함수를 호출할 수 있습니다.

예제

parfor loopVar = initVal:step:endVal; statements;end는 각 반복 시 loopVarstep 값만큼 증분하거나 step 값이 음수인 경우에는 loopVar을 감소시킵니다. 여기서 step1 또는 -1이어야 합니다. 내림차순 루프 인덱스 변수를 가진 parfor 루프를 실행하려면 이 구문을 사용합니다.

이 구문을 사용하는 경우, 루프 반복은 연속되는 정수 값이어야 합니다.

R2026a 이전: step1이어야 하며 루프 반복은 연속으로 증가하는 정수 값이어야 합니다.

예제

parfor(loopVar = initVal:endVal); statements; endparfor(loopVar = initVal:step:endVal); statements; end도 루프에서 명령문을 실행합니다. 루프 표현식에 괄호를 사용하여 추가 옵션을 허용할 수 있습니다.

parfor(___,M); statements; endM을 사용하여 루프 본문의 명령문을 평가할 때 사용할 최대 워커 개수 또는 스레드 개수를 지정합니다. 여기서 M은 음이 아닌 정수여야 합니다.

예제

모두 축소

Parallel Computing Toolbox에서 3개의 워커나 코어를 사용하여 대규모의 고유값 계산을 3번 수행합니다.

parpool(3)
parfor ii = 1:3 
    c(:,ii) = eig(rand(1000)); 
end

R2026a 이후

워커에서 수학 표현식을 계산하려면 내림차순 범위를 사용하는 parfor 루프를 사용합니다.

초기값을 12로, 스텝 크기를 -1로, 최종 값을 1로 지정합니다. parfor 루프는 12에서 1까지 감소하면서 반복합니다.

parfor k = 12:-1:1
    out(k) = (5.*(k+8))./2;
end

입력 인수

모두 축소

초기값 initVal과 최종 값 endVal이 있는 루프 인덱스 변수입니다. 변수는 임의의 숫자형일 수 있으며 값은 정수여야 합니다.

parfor 루프 변수가 연속 정수인지 확인하십시오. 자세한 내용은 parfor 루프에서 변수 문제 해결하기 (Parallel Computing Toolbox) 항목을 참조하십시오.

R2026a 이전: 루프 반복은 연속으로 증가하는 정수 값이어야 합니다.

parfor 루프 변수의 범위는 지원되는 범위를 초과해서는 안 됩니다. 도움이 필요한 경우 parfor 루프에서 오버플로 방지하기 (Parallel Computing Toolbox) 항목을 참조하십시오.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

루프 인덱스 변수의 초기값으로, loopVar입니다. 변수는 임의의 숫자형일 수 있으며 값은 정수여야 합니다. M:N 형식일 때 endVal을 사용하여 parfor 범위 벡터를 지정합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

루프 인덱스 변수의 최종 값으로, loopVar입니다. 변수는 임의의 숫자형일 수 있으며 값은 정수여야 합니다. M:N 형식일 때 initVal을 사용하여 parfor 범위 벡터를 지정합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

루프 인덱스의 스텝 크기로, loopVar입니다. 변수는 임의의 숫자형일 수 있으며 루프 반복이 연속되는 정수 값이 되도록 값은 정수인 1 또는 -1이어야 합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

루프 본문으로, 텍스트로 지정됩니다. parfor 루프에서 실행할 MATLAB 명령문 집합입니다.

parfor 루프를 사용하려면 코드를 수정해야 할 수 있습니다. 도움이 필요한 경우 for 루프를 parfor 루프로 변환하기 (Parallel Computing Toolbox) 항목을 참조하십시오.

parfor 루프를 중첩하면 안 됩니다. 중첩 parfor 루프와 중첩 for 루프 및 기타 parfor 요구 사항 (Parallel Computing Toolbox) 항목을 참조하십시오.

병렬로 실행되는 최대 워커 개수로, 음이 아닌 정수로 지정됩니다. 상한을 지정하면, MATLAB은 사용 가능한 워커가 더 있더라도 이 개수를 초과하여 사용하지 않습니다. 사용 가능한 워커 개수보다 더 많이 요청하면 MATLAB은 호출 시점에 사용 가능한 최대 워커 개수를 사용합니다. 루프 반복이 워커 개수보다 적으면 일부 워커는 작동하지 않습니다.

parfor가 여러 개의 워커에서 실행될 수 없는 경우(예: 사용 가능한 코어가 하나뿐이거나 M이 0인 경우), MATLAB은 루프를 직렬로 실행합니다. 이 경우에도 MATLAB은 비결정적 순서로 루프 본문을 실행합니다. 코드를 테스트할 때 병렬 실행과 직렬 실행 간에 전환하려면 이 구문을 사용합니다.

  • Parallel Computing Toolbox를 사용하는 경우, 자세한 내용은 parfor (Parallel Computing Toolbox) 항목과 parpool (Parallel Computing Toolbox) 항목을 참조하십시오.

  • MATLAB Coder를 사용하는 경우, 자세한 내용은 parfor (MATLAB Coder) 항목을 참조하십시오.

확장 기능

모두 확장

버전 내역

R2008a에 개발됨

모두 확장

참고 항목