Main Content

병렬 for 루프(parfor)를 사용하여 코드 생성하기

이 예제에서는 parfor 루프를 포함하는 MATLAB® 알고리즘에 대해 C 코드를 생성하는 방법을 보여줍니다.

  1. 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
  2. test_parfor에 대한 C 코드를 생성합니다. MATLAB 명령줄에 다음을 입력합니다.

    codegen -config:lib test_parfor

    사용할 최대 스레드 수를 지정하지 않았으므로 생성된 C 코드는 사용 가능한 개수만큼의 코어에서 루프 반복을 병렬로 실행합니다.

  3. 최대 스레드 수를 지정하기 위해 함수 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
  4. test_parfor에 대한 C 코드를 생성합니다. -args 0을 사용하여 입력값 u가 double형 스칼라임을 지정합니다. MATLAB 명령줄에 다음을 입력합니다.

    codegen -config:lib test_parfor -args 0 

    생성 코드에서 parfor 루프의 반복은 입력값 u에 지정된 최대 개수만큼의 코어에서 실행됩니다. 사용할 수 있는 코어 수가 u개 미만인 경우 호출 시 사용 가능한 개수만큼의 코어에서 반복이 실행됩니다.

관련 항목