Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

병렬 풀에서 코드 실행하기

병렬 풀이란?

병렬 풀은 계산 클러스터 또는 데스크탑에 있는 MATLAB® 워커의 집합입니다. 기본적으로 병렬 풀은 parfor와 같은 병렬 언어 기능에서 필요한 경우 자동으로 시작합니다. 병렬 기본 설정에서 디폴트 클러스터를 지정할 수 있습니다. 기본 설정 패널의 병렬연산 메뉴에서 병렬 기본 설정을 선택하면 디폴트 클러스터가 표시됩니다. 병렬연산 메뉴에서 디폴트 클러스터를 지정할 수도 있습니다. 또는 MATLAB 명령줄에서 parclusterparpool을 사용하여 클러스터와 풀 크기를 각각 선택할 수 있습니다. 자세한 내용은 이미지를 참조하십시오.

병렬 풀의 워커는 대화형 방식으로 사용할 수 있으며 작업이 이루어지는 동안 서로 통신할 수 있습니다. Job Monitor에서 parpool 작업을 볼 수 있습니다. 이러한 풀 워커는 대화형 방식으로 사용하도록 예약되어 있으며 다른 사용자에게는 제공되지 않습니다. 하나의 MATLAB 클라이언트 세션에서 한 번에 하나의 병렬 풀만 보유할 수 있습니다. MATLAB에서 현재 병렬 풀은 parallel.Pool 객체로 표현됩니다.

Diagram showing a client MATLAB and a parallel cluster. The cluster contains eight parallel workers and the client has started a parallel pool using three of the workers.

병렬 풀을 자동으로 시작하고 중지하기

기본적으로 병렬 풀은 특정 병렬 언어 기능에서 필요한 경우 자동으로 시작합니다. 다음과 같은 많은 함수가 자동으로 병렬 풀을 시작할 수 있습니다.

병렬 기본 설정에서는 풀이 실행되는 클러스터를 지정합니다. 기본 설정에 액세스하려면 탭의 환경 섹션에서 병렬연산 > 병렬 기본 설정을 클릭하십시오.

풀을 시작하고 중지하는 또 다른 방법

병렬 기본 설정에서 풀을 자동으로 열거나 닫는 옵션을 끌 수 있습니다. 풀이 자동으로 열리도록 선택하지 않는 경우 다음 기법을 사용하여 풀을 제어할 수 있습니다.

MATLAB 데스크탑에서 병렬 풀 제어하기

MATLAB 데스크탑의 왼쪽 아래 코너에서 병렬 상태 표시기를 사용하여 수동으로 병렬 풀을 시작할 수 있습니다.

The parallel status indicator, including a drop down menu showing options for starting a parallel pool and inspecting your parallel preferences.

MATLAB Online에서는 병렬 상태 표시기가 기본적으로 표시되지 않습니다. 먼저, parpool을 사용하거나 병렬 풀을 자동으로 시작하는 함수를 사용하여 병렬 풀을 시작해야 합니다.

표시기 아이콘을 클릭하고 병렬 풀 시작을 선택합니다. 풀 클러스터는 디폴트 클러스터에 의해 지정됩니다. 디폴트 클러스터는 병렬연산 > 디폴트 클러스터 메뉴에서 확인 표시로 지정됩니다.

풀이 실행 중인 경우에는 메뉴 옵션이 다릅니다. 다음을 수행할 수 있습니다.

  • 워커 개수 및 클러스터 이름 확인

  • 자동 종료 시간 변경

  • 병렬 풀 종료

The parallel status indicator, highlighted blue to indicate that a parallel pool is running. A tooltip shows that a parallel pool has been running for about one minute and will shut down if still idle in 29 minutes.

풀을 중지하려는 경우 병렬 풀 종료를 선택해도 됩니다.

The parallel status indicator, highlighted blue to indicate that a parallel pool is running and including a menu showing options for shutting down the parallel pool and inspecting your parallel preferences.

프로그래밍 인터페이스

병렬 풀 시작하기.  디폴트 설정을 사용하거나 대체 설정을 지정하여 프로그래밍 방식으로 병렬 풀을 시작하거나 중지할 수 있습니다.

디폴트 설정을 기반으로 병렬 풀을 열려면 다음을 수행하십시오.

parpool

특정 크기의 풀을 열려면 다음을 수행하십시오.

parpool(4)

디폴트 이외의 클러스터를 사용하고 풀이 실행되는 위치를 지정하려면 다음을 수행하십시오.

parpool('MyCluster',4)

여러 병렬 환경에서 하나의 병렬 풀을 실행할 수 있습니다. 자세한 내용은 Choose Between Thread-Based and Process-Based Environments 항목을 참조하십시오.

병렬 풀 종료하기.  현재 병렬 풀을 가져와서 풀을 종료할 때 해당 객체를 사용하려면 다음을 수행하십시오.

p = gcp;
delete(p)

실행 중인 병렬 풀이 없어야 함.  인수 없이 명령 gcp를 실행할 때 실수로 풀을 열 수 있습니다. 이 문제를 방지하려면 다음을 수행하십시오.

delete(gcp('nocreate'))

참고

병렬 풀이 시작 중일 때 중지하려면, Ctrl+C 또는 Ctrl+Break를 누릅니다. Apple macOS에서는 Command.(즉, 명령 키와 마침표 키)도 사용할 수 있습니다.

풀 크기 및 클러스터 선택

풀 크기를 지정하는 위치는 여러 곳이 있습니다. 풀 크기를 제한하는 요인에는 여러 가지가 있을 수 있습니다. 병렬 풀의 실제 크기는 다음 조합으로 결정됩니다.

  1. 라이선싱 또는 클러스터 크기

    풀의 워커 개수에 대한 최대 제한은 클러스터의 워커 개수로 제한됩니다. 이 제한은 사용 가능한 MATLAB Parallel Server™ 라이선스 개수로 결정될 수 있습니다. MATLAB 작업 스케줄러의 경우, 제한은 클러스터에서 실행 중인 워커 개수로 결정될 수 있습니다. 클라이언트 컴퓨터에서 실행 중인 로컬 클러스터에는 Parallel Computing Toolbox™용 라이선스 이외의 라이선스는 필요하지 않습니다. 워커 개수에 대한 제한은 알려진 여러 데스크탑 하드웨어를 지원할 수 있을 정도로 충분히 높습니다.

  2. 워커의 클러스터 프로파일 개수(NumWorkers)

    cluster 객체는 워커 개수에 대한 엄중한 제한값을 설정할 수 있으며, 이는 클러스터 프로파일에서 지정합니다. 명령줄이나 클러스터 프로파일의 PreferredPoolNumWorkers 속성에서 추가 워커를 요청하더라도 해당하는 프로파일에 설정된 한계를 초과할 수는 없습니다. 이 개수를 초과하면 오류가 발생합니다.

  3. 명령줄 인수

    명령줄에서 풀 크기를 지정하면 클러스터 프로파일의 PreferredPoolNumWorkers 속성에서 설정 값을 재정의하게 됩니다. 명령줄에서 요청한 풀 크기는 해당하는 클러스터 프로파일의 제한 내에 있어야 합니다.

  4. 워커의 클러스터 프로파일 기본 개수(PreferredPoolNumWorkers) (R2023a 이후)

    명령줄에서 풀 크기를 지정하지 않는 경우, MATLAB은 클러프터 프로파일의 PreferredPoolNumWorkers 클러스터 객체 속성에서 결정된 크기로 풀을 시작하려고 시도합니다. 이 값은 기본 설정이며 특정 워커 개수에 대한 요구 사항이나 요청이 아닙니다. 따라서 풀이 PreferredPoolNumWorkers 속성에 지정된 만큼의 워커로 시작할 수 없는 경우 오류 없이 작은 풀로 시작하게 됩니다. PreferredPoolNumWorkers 속성의 디폴트 값은 클러스터 유형에 따라 달라집니다.

    클러스터 유형PreferredPoolNumWorkers 디폴트 값

    MATLAB 작업 스케줄러

    공유 클라우드

    타사 스케줄러

    32

    로컬 프로세서 (R2023b 이후)

    개인 클라우드

    Inf

    참고

    R2023a: 로컬 프로파일의 경우 디폴트 풀 크기는 NumWorkers 속성값으로 결정됩니다.

    생성되는 풀의 크기를 제한하지 않도록 PreferredPoolNumWorkers 속성값을 NumWorkers 속성값보다 큰 수로 설정할 수 있습니다. 정확한 워커 개수가 필요한 경우 명령줄에서 개수를 지정하십시오.

풀이 실행되는 클러스터를 선택하는 경우 다음과 같이 우선 순위가 결정됩니다.

  1. 명령줄 cluster 객체 인수는 디폴트 프로파일 설정을 재정의하고 프로파일 'MyProfile'로 식별되는 클러스터를 사용합니다.

    c = parcluster('MyProfile');
    p = parpool(c);
  2. 클러스터는 디폴트 프로파일에서 지정됩니다.

    p = parpool;

참고 항목

| | | | | | |

관련 예제

세부 정보