주요 콘텐츠

병렬 연산이란?

R2026b

병렬 연산을 사용하면 많은 계산을 동시에 수행할 수 있습니다. 큰 문제를 여러 개의 작은 문제로 분할하여 동시에 처리할 수 있습니다.

병렬 연산을 고려해야 하는 주요 이유는 다음과 같습니다.

  • 작업을 분산하고 분산된 작업을 동시에 실행하여 시간을 절약할 수 있습니다.

  • 데이터를 분산하여 빅데이터 문제를 해결할 수 있습니다.

  • 데스크탑 컴퓨터 리소스를 제대로 활용하고 클러스터 및 클라우드 컴퓨팅 환경으로 확장할 수 있습니다.

다음 표에는 몇 가지 유용한 병렬 연산 용어와 해당 정의가 나와 있습니다.

용어정의
스레드

CPU가 독립적으로 스케줄링하고 실행할 수 있는 가장 작은 명령 실행 단위. GPU, 멀티프로세서 또는 멀티코어 컴퓨터에서는 멀티스레딩을 수행하거나 다중 스레드를 동시에 실행할 수 있습니다.

프로세스

하나 이상의 스레드에 의해 실행되는 컴퓨터 프로그램 인스턴스. 각 프로세스는 자체 메모리 블록을 가집니다.

노드

하나 이상의 CPU 또는 GPU를 포함하는 독립 실행형 컴퓨터. 노드는 네트워크로 연결되어 클러스터나 슈퍼컴퓨터를 형성할 수 있습니다.

클러스터

상호 연결된 컴퓨터들의 집합으로, 복잡하고 데이터 집약적인 작업을 처리하기 위한 고성능 연산 능력을 제공하기 위해 하나의 통합 시스템으로 함께 작동합니다.

확장성

리소스를 추가함에 따라 병렬 속도 향상이 증가하는 정도.

일괄 처리

기능 수행 스크립트를 백그라운드에서 실행하도록 실행을 분담하는 작업.

MATLAB® 및 Parallel Computing Toolbox™에서 제공하는 툴

  • MATLAB 워커: 그래픽 데스크탑 없이 백그라운드에서 실행되는 MATLAB 계산 엔진입니다. Parallel Computing Toolbox의 함수를 사용하여 작업을 자동으로 나누고 워커에 할당하여 계산을 병렬로 실행할 수 있습니다. 로컬 워커를 실행하여 멀티코어 데스크탑 컴퓨터의 모든 코어를 활용할 수 있습니다. 또한 MATLAB Parallel Server™를 사용하여 컴퓨터 클러스터에서 워커를 실행하도록 확장할 수도 있습니다. 사용자가 상호 작용하는 MATLAB 세션을 MATLAB 클라이언트라고 합니다. 이 클라이언트는 병렬 언어 함수를 사용하여 워커에 지시합니다.

  • 병렬 풀: parpool 또는 자동 병렬 연산을 지원하는 함수를 사용하여 만든 MATLAB 워커의 병렬 풀입니다. 기본적으로 병렬 언어 함수는 필요할 때 자동으로 병렬 풀을 만듭니다. 자세한 내용은 병렬 풀에서 코드 실행하기 항목을 참조하십시오.

    디폴트 Processes 프로파일의 경우, 디폴트 워커 개수는 단일 계산 스레드를 사용하는 물리적 CPU 코어당 하나입니다. 이는 비록 각각의 물리적 코어가 여러 개의 가상 코어를 가질 수 있지만 가상 코어는 일반적으로 공유 부동소수점 장치(FPU) 등의 일부 리소스를 공유하기 때문입니다. 대부분의 MATLAB 계산은 배정밀도 부동소수점이므로 이 장치를 사용합니다. 물리적 코어당 워커를 하나로 제한하면 각 워커가 부동소수점 장치에 단독으로 액세스할 수 있으므로 일반적으로 계산 코드의 성능이 최적화됩니다. 자신의 코드가 고도의 계산을 요하지 않는다면(예로 입/출력(I/O) 집약적이지 않은 경우), 물리적 코어당 최대 2개의 워커를 사용하는 것을 고려해 보십시오. 너무 적은 리소스에서 너무 많은 워커를 실행하면 컴퓨터 성능 및 안정성에 영향을 미칠 수 있습니다.

  • 속도 개선: 여러 MATLAB 워커 또는 GPU에서 실행하여 코드 실행 속도를 향상시킵니다(예: parfor, parfeval 또는 gpuArray 사용).

  • 데이터 확장: 빅데이터를 여러 MATLAB 워커에 분할하고, 분산 배열 및 tall형 배열, datastore, mapreduce와 같은 대화형 방식의 빅데이터 처리 툴을 사용합니다. 자세한 내용은 빅데이터 처리 항목을 참조하십시오.

  • 비동기 처리: parfeval을 사용하여 계산 작업이 완료될 때까지 기다리지 않고 백그라운드에서 계산 작업을 실행합니다.

  • 컴퓨터 클러스터나 클라우드 컴퓨팅 시스템으로 연산 분담

  • 클러스터 및 클라우드로 확장: 로컬 컴퓨터에서 처리하기에는 연산 작업이 너무 크거나 너무 느린 경우, MATLAB Parallel Server를 사용하여 batch 작업을 통해 해당 연산을 온사이트 클러스터나 클라우드의 클러스터로 분담할 수 있습니다. 자세한 내용은 클러스터 및 클라우드 항목을 참조하십시오.

참고 항목

도움말 항목