병렬 for 루프(parfor)를 사용하여 코드 생성하기
이 예제에서는 parfor
루프를 포함하는 MATLAB® 알고리즘에 대해 C 코드를 생성하는 방법을 보여줍니다.
parfor
루프를 포함하는 MATLAB 함수를 작성합니다. 예를 들면 다음과 같습니다.function a = test_parfor %#codegen a=ones(10,256); r=rand(10,256); parfor i=1:10 a(i,:)=real(fft(r(i,:))); end
test_parfor
에 대한 C 코드를 생성합니다. MATLAB 명령줄에 다음을 입력합니다.codegen -config:lib test_parfor
사용할 최대 스레드 수를 지정하지 않았으므로 생성된 C 코드는 사용 가능한 개수만큼의 코어에서 루프 반복을 병렬로 실행합니다.
최대 스레드 수를 지정하기 위해 함수
test_parfor
를 다음과 같이 재작성합니다.function a = test_parfor(u) %#codegen a=ones(10,256); r=rand(10,256); parfor (i=1:10,u) a(i,:)=real(fft(r(i,:))); end
test_parfor
에 대한 C 코드를 생성합니다.-args 0
을 사용하여 입력값u
가 double형 스칼라임을 지정합니다. MATLAB 명령줄에 다음을 입력합니다.codegen -config:lib test_parfor -args 0
생성 코드에서
parfor
루프의 반복은 입력값u
에 지정된 최대 개수만큼의 코어에서 실행됩니다. 사용할 수 있는 코어 수가u
개 미만인 경우 호출 시 사용 가능한 개수만큼의 코어에서 반복이 실행됩니다.