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.

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

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

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

병렬 기본 설정에서 풀을 자동으로 열거나 닫는 옵션을 끌 수 있습니다. 풀을 자동으로 여는 옵션을 끄고 열려 있는 병렬 풀이 없는 상태에서 Parallel Computing Toolbox 기능을 사용하는 경우, 코드는 클라이언트에서 실행됩니다.

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

풀이 자동으로 열리도록 선택하지 않는 경우 다음 기법을 사용하여 풀을 제어할 수 있습니다.

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)

여러 병렬 환경에서 하나의 병렬 풀을 실행할 수 있습니다. 자세한 내용은 스레드 기반 환경과 프로세스 기반 환경 중에서 선택하기 항목을 참조하십시오.

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

p = gcp;
delete(p)

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

delete(gcp('nocreate'))

참고

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

풀 크기에 영향을 미치는 요인

Parallel Computing Toolbox™는 최대 2,000개의 워커가 있는 병렬 풀을 지원할 수 있습니다. 병렬 풀을 만들 때 NumWorkersPreferredPoolNumWorkers의 클러스터 객체 속성값은 병렬 풀의 크기에 영향을 미칩니다.

NumWorkers 클러스터 속성

NumWorkers 클러스터 속성은 클러스터에서 사용할 수 있는 워커 개수에 대한 절대적인 제한값입니다.

  • MATLAB 작업 스케줄러 클러스터의 경우, 클러스터에서 실행 중인 워커 개수로부터 NumWorkers 속성값이 결정됩니다.

  • 클라이언트 및 타사 스케줄러 클러스터에서 실행 중인 로컬 클러스터의 경우, 클러스터 프로파일에서 NumWorkers 속성값을 지정할 수 있습니다.

NumWorkers 속성값보다 큰 병렬 풀은 만들 수 없습니다.

PreferredPoolNumWorkers 클러스터 속성

PreferredPoolNumWorkers 클러스터 객체 속성은 클러스터 객체로 생성되는 풀의 선호 크기를 지정합니다. 이는 특정 워커 개수에 대한 요구 사항이나 요청이 아닙니다. PreferredPoolNumWorkers 속성의 디폴트 값은 클러스터 유형에 따라 달라집니다. 클러스터 프로파일에서 이 값을 수정할 수 있습니다. 다음은 클러스터 유형과 각 PreferredPoolNumWorkers 디폴트 값의 목록입니다.

  • MATLAB 작업 스케줄러, 공유 클라우드, 타사 스케줄러 클러스터 — 32

  • 개인 클라우드 클러스터 — Inf

  • 로컬 프로세스 클러스터 — Inf (R2023b 이후)

    R2023a: 로컬 프로파일의 경우 디폴트 값은 NumWorkers 속성값입니다.

풀 생성 방법

풀을 만드는 데 사용하는 방법과 더불어 NumWorkers 속성값과 PreferredPoolNumWorkers 속성값에 따라 병렬 풀의 실제 크기가 결정됩니다.

풀 생성 방법실제 풀 크기
  • 자동 풀 생성이 켜져 있는 상태에서 자동으로 풀을 시작할 수 있는 함수를 실행합니다.

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

  • 풀 크기 인수를 지정하지 않고 parpool 함수를 호출합니다.

MATLAB은 클러스터 프로파일 PreferredPoolNumWorkers 속성값을 사용하여 풀의 최대 워커 개수를 결정합니다. MATLAB이 PreferredPoolNumWorkers 속성에 지정된 개수 만큼의 워커로 풀을 시작할 수 없는 경우, 오류 없이 더 작은 풀을 얻게 됩니다. 풀 크기는 NumWorkers 값을 초과할 수 없습니다.

parpool 함수를 실행하고 풀 크기를 정수로 지정합니다.

MATLAB은 요청된 정확한 워커 개수로 풀을 시작하려고 시도합니다.

  • 지정된 값이 NumWorkers 속성값을 초과하지 않는 경우, 지정된 워커 개수가 있는 풀을 얻게 됩니다.

  • 지정된 값이 NumWorkers 속성값을 초과하는 경우, MATLAB은 오류를 발생시킵니다.

parpool 함수를 실행하고 풀 크기를 정수 범위로 지정합니다.

MATLAB은 NumWorkers 속성값을 초과하지 않고 해당 범위 내에서 가능한 한 가장 큰 값으로 풀을 만들려고 시도합니다.

  • 범위의 하한이 NumWorkers 속성값보다 큰 경우, MATLAB은 오류를 발생시킵니다.

  • 범위의 상한이 NumWorkers 속성값을 초과하는 경우, NumWorkers 속성값까지 가능한 한 가장 큰 풀 크기를 얻게 됩니다.

클러스터 선택 우선 순위

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

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

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

    p = parpool;

참고 항목

| | | | | | |

관련 예제

세부 정보