이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
병렬 풀에서 코드 실행하기
병렬 풀이란?
병렬 풀은 계산 클러스터 또는 데스크탑에 있는 MATLAB® 워커의 집합입니다. 기본적으로 병렬 풀은 parfor
와 같은 병렬 언어 기능에서 필요한 경우 자동으로 시작합니다. 병렬 기본 설정에서 디폴트 클러스터를 지정할 수 있습니다. 기본 설정 패널의 병렬연산 메뉴에서 병렬 기본 설정을 선택하면 디폴트 클러스터가 표시됩니다. 병렬연산 메뉴에서 디폴트 클러스터를 지정할 수도 있습니다. 또는 MATLAB 명령줄에서 parcluster
와 parpool
을 사용하여 클러스터와 풀 크기를 각각 선택할 수 있습니다. 자세한 내용은 이미지를 참조하십시오.
병렬 풀의 워커는 대화형 방식으로 사용할 수 있으며 작업이 이루어지는 동안 서로 통신할 수 있습니다. Job Monitor에서 parpool
작업을 볼 수 있습니다. 이러한 풀 워커는 대화형 방식으로 사용하도록 예약되어 있으며 다른 사용자에게는 제공되지 않습니다. 하나의 MATLAB 클라이언트 세션에서 한 번에 하나의 병렬 풀만 보유할 수 있습니다. MATLAB에서 현재 병렬 풀은 parallel.Pool
객체로 표현됩니다.
병렬 풀을 자동으로 시작하고 중지하기
기본적으로 병렬 풀은 특정 병렬 언어 기능에서 필요한 경우 자동으로 시작합니다. 다음과 같은 많은 함수가 자동으로 병렬 풀을 시작할 수 있습니다.
병렬 기본 설정에서는 풀이 실행되는 클러스터를 지정합니다. 기본 설정에 액세스하려면 홈 탭의 환경 섹션에서 병렬연산 > 병렬 기본 설정을 클릭하십시오.
병렬 기본 설정에서 풀을 자동으로 열거나 닫는 옵션을 끌 수 있습니다. 풀을 자동으로 여는 옵션을 끄고 열려 있는 병렬 풀이 없는 상태에서 Parallel Computing Toolbox 기능을 사용하는 경우, 코드는 클라이언트에서 실행됩니다.
풀을 시작하고 중지하는 또 다른 방법
풀이 자동으로 열리도록 선택하지 않는 경우 다음 기법을 사용하여 풀을 제어할 수 있습니다.
MATLAB 데스크탑에서 병렬 풀 제어하기
MATLAB 데스크탑의 왼쪽 아래 코너에서 병렬 상태 표시기를 사용하여 수동으로 병렬 풀을 시작할 수 있습니다.
MATLAB Online에서는 병렬 상태 표시기가 기본적으로 표시되지 않습니다. 먼저, parpool
을 사용하거나 병렬 풀을 자동으로 시작하는 함수를 사용하여 병렬 풀을 시작해야 합니다.
표시기 아이콘을 클릭하고 병렬 풀 시작을 선택합니다. 풀 클러스터는 디폴트 클러스터에 의해 지정됩니다. 디폴트 클러스터는 병렬연산 > 디폴트 클러스터 메뉴에서 확인 표시로 지정됩니다.
풀이 실행 중인 경우에는 메뉴 옵션이 다릅니다. 다음을 수행할 수 있습니다.
워커 개수 및 클러스터 이름 확인
자동 종료 시간 변경
병렬 풀 종료
풀을 중지하려는 경우 병렬 풀 종료를 선택해도 됩니다.
프로그래밍 인터페이스
병렬 풀 시작하기. 디폴트 설정을 사용하거나 대체 설정을 지정하여 프로그래밍 방식으로 병렬 풀을 시작하거나 중지할 수 있습니다.
디폴트 설정을 기반으로 병렬 풀을 열려면 다음을 수행하십시오.
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개의 워커가 있는 병렬 풀을 지원할 수 있습니다. 병렬 풀을 만들 때 NumWorkers
와 PreferredPoolNumWorkers
의 클러스터 객체 속성값은 병렬 풀의 크기에 영향을 미칩니다.
NumWorkers
클러스터 속성
NumWorkers
클러스터 속성은 클러스터에서 사용할 수 있는 워커 개수에 대한 절대적인 제한값입니다.
MATLAB 작업 스케줄러 클러스터의 경우, 클러스터에서 실행 중인 워커 개수로부터
NumWorkers
속성값이 결정됩니다.클라이언트 및 타사 스케줄러 클러스터에서 실행 중인 로컬 클러스터의 경우, 클러스터 프로파일에서
NumWorkers
속성값을 지정할 수 있습니다.
NumWorkers
속성값보다 큰 병렬 풀은 만들 수 없습니다.
PreferredPoolNumWorkers
클러스터 속성
PreferredPoolNumWorkers
클러스터 객체 속성은 클러스터 객체로 생성되는 풀의 선호 크기를 지정합니다. 이는 특정 워커 개수에 대한 요구 사항이나 요청이 아닙니다. PreferredPoolNumWorkers
속성의 디폴트 값은 클러스터 유형에 따라 달라집니다. 클러스터 프로파일에서 이 값을 수정할 수 있습니다. 다음은 클러스터 유형과 각 PreferredPoolNumWorkers
디폴트 값의 목록입니다.
MATLAB 작업 스케줄러, 공유 클라우드, 타사 스케줄러 클러스터 — 32
개인 클라우드 클러스터 —
Inf
로컬 프로세스 클러스터 —
Inf
(R2023b 이후)R2023a: 로컬 프로파일의 경우 디폴트 값은
NumWorkers
속성값입니다.
풀 생성 방법
풀을 만드는 데 사용하는 방법과 더불어 NumWorkers
속성값과 PreferredPoolNumWorkers
속성값에 따라 병렬 풀의 실제 크기가 결정됩니다.
풀 생성 방법 | 실제 풀 크기 |
---|---|
| MATLAB은 클러스터 프로파일 |
| MATLAB은 요청된 정확한 워커 개수로 풀을 시작하려고 시도합니다.
|
| MATLAB은
|
클러스터 선택 우선 순위
풀이 실행되는 클러스터를 선택하는 경우 다음과 같이 우선 순위가 결정됩니다.
명령줄 cluster 객체 인수는 디폴트 프로파일 설정을 재정의하고 프로파일
'MyProfile'
로 식별되는 클러스터를 사용합니다.c = parcluster('MyProfile'); p = parpool(c);
클러스터는 디폴트 프로파일에서 지정됩니다.
p = parpool;
참고 항목
delete
| gcp
| parcluster
| parfor
| spmd
| distributed
| parfeval
| parpool