Main Content

병렬 연산이란?

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

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

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

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

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

Parallel Computing Toolbox™를 사용하면 다음을 수행할 수 있습니다.

  • 대화형 방식의 병렬 연산 툴(예: parforparfeval)을 사용하여 코드 실행 속도 향상

  • 대화형 방식의 빅데이터 처리 툴(예: distributed, tall, datastoremapreduce)을 사용하여 계산 확장

  • gpuArray를 사용하여 컴퓨터의 GPU에서 계산 속도 향상

  • batch를 사용하여 컴퓨터 클러스터나 클라우드 컴퓨팅 시스템으로 연산 분담

다음은 몇 가지 유용한 병렬 연산의 개념입니다.

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

  • 스레드: 스케줄러가 독립적으로 관리할 수 있는 가장 작은 명령의 집합. GPU, 멀티프로세서 또는 멀티코어 시스템에서는 다중 스레드를 동시에 실행할 수 있고 이를 멀티스레딩이라고 합니다.

  • 일괄 처리: 함수 스크립트를 백그라운드에서 실행하도록 실행을 분담하는 작업

  • 확장성: 리소스를 추가함에 따른 병렬 속도 향상 정도의 증가량

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

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

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

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

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

  • 데이터 확장: tall형 배열 및 분산 배열을 사용하여 빅데이터를 여러 MATLAB 워커에 분할합니다. 자세한 내용은 빅데이터 처리 항목을 참조하십시오.

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

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

관련 항목