주요 특징

  • 여러 프로세서에서 Task-Parallel 알고리즘 실행을 위한 Parallelfor-loops(parfor)
  • CUDA 지원 NVIDIA GPU에 대한 지원
  • 로컬로 실행되는 worker를 통해 데스크탑에서 멀티코어 프로세서를 완전히 활용
  • 컴퓨터 클러스터 및 그리드 지원(MATLAB Distributed Computing Server 사용)
  • 병렬 응용 프로그램의 대화식 및 배치 실행
  • 분산 배열 및 단일 프로그램 다중 데이터(spmd) 대형 데이터 세트 처리와 Data-Parallel 알고리즘을 위한 구조

MATLAB을 이용한 병렬 컴퓨팅. Parallel Computing Toolbox를 통해 GPU를 활용하고 클러스터로 확장하여 멀티코어 데스크탑에서 응용 프로그램을 실행할 수 있습니다(MATLAB Distributed Computing Server 사용).


병렬 응용 프로그램 프로그래밍

Parallel Computing Toolbox는 응용 프로그램을 변환하여 멀티코어 프로세서와 GPU가 장착된 컴퓨터를 활용할 수 있게 하는 몇 가지 고급 프로그래밍 구조를 제공합니다. parallel for-loops (parfor)와 같은 구조, 분산 처리와 GPU 연산을 위한 특수 배열 유형은 MATLAB 세션과 사용 중인 연산 리소스 사이의 연산과 데이터 관리의 복잡성을 추출하여 병렬 코드 개발을 단순화합니다.

다양한 컴퓨팅 리소스에서 다시 프로그래밍하지 않고 동일한 응용 프로그램을 실행할 수 있습니다. 병렬 구조화는 멀티코어 데스크탑(Toolbox 사용) 또는 컴퓨터 클러스터와 같은 대형 리소스(MATLAB Distributed Computing Server와 Toolbox 사용) 등 응용 프로그램이 실행되는 리소스에 관계없이 동일하게 작동합니다.


다른 MathWorks 제품에서 내장 병렬 알고리즘 사용

일부 MathWorks 제품의 주요 함수에는 내장 병렬 알고리즘이 있습니다. Parallel Computing Toolbox에서는 이러한 함수가 이용 가능한 병렬 컴퓨팅 리소스에서 연산을 배치하기 때문에 사용자가 MATLAB 및 Simulink 기반 분석이나 시뮬레이션 작업뿐 아니라 대형 Simulink 모델을 위한 코드 생성도 가속할 수 있습니다. 이러한 함수를 활용하기 위해 병렬 코드를 작성할 필요가 없습니다.

MathWorks 제품에서 내장 병렬 알고리즘 사용 내장 병렬 알고리즘은 MATLAB 및 Simulink 연산뿐 아니라 Simulink 모델로부터의 코드 생성도 가속합니다.


Task-Parallel 응용프로그램 가속

독립적인 작업(작업 단위)으로 분류하고 동시에 여러 작업을 수행함으로써 일부 응용 프로그램을 가속할 수 있습니다. 이러한 Task-Parallel 응용 프로그램에는 설계 최적화 시뮬레이션, BER 테스팅, Monte Carlo 시뮬레이션, 다수의 데이터 파일에 대한 반복적 분석이 포함됩니다.

툴박스는 여러 MATLAB worker(데스크탑 MATLAB 세션과 독립적으로 실행되는 MATLAB 연산 엔진)로 배분할 수 있는parallel for-loop 구조인 parfor를 제공합니다. 이 구조는 자동으로 worker의 존재를 감지하고 worker가 없을 경우 직렬 동작으로 변환합니다. 툴박스에서 작업 객체 조작과 같은 다른 메소드를 사용한 작업 실행도 설정할 수 있습니다.

Task-Parallel애플리케이션을 위해 parallelfor-loops 사용하기 MATLAB 스크립트와 함수에서parallelfor-loops를 사용하며 대화형 또는 오프라인 모두 실행할 수 있습니다.


GPU를 통한 MATLAB 연산 가속

Parallel Computing Toolbox는 MATLAB에서 직접 CUDA 지원 NVIDIA GPU 연산을 가능하게 하는 몇 가지 관련 함수를 가진 특수 배열 유형인 GPUArray를 제공합니다. 함수에는 fft,요소 방식 연산, 백슬래시 연산자(\)로도 알려진 lumldivide와 같은몇 개의 선형 대수 연산이 포함됩니다. 툴박스는 또한 기존의 CUDA 지원 GPU 커널을 MATLAB에서 직접 사용할 수 있는 메커니즘을 제공합니다.

MATLAB을 사용한GPU 컴퓨팅에 대해 자세히 알아보십시오.

MATLAB을 사용한 GPU 컴퓨팅. GPUArray와 GPU-지원 MATLAB 함수를 사용하면 저수준 CUDA 프로그래밍 없이 MATLAB 연산을 가속할 수 있습니다.


MATLAB Distributed Computing Server를 통해 클러스터, 그리드, 클라우드로 확장

Parallel Computing Toolbox를 사용하면 멀티코어 데스크탑에서 로컬로 MATLAB worker 실행을 통해 병렬 응용 프로그램을 실행할 수 있어 데스크탑의 계산 능력을 최대한 활용할 수 있습니다. 툴박스를 MATLAB Distributed Computing Server와 함께 사용하면 컴퓨터 클러스터 또는 그리드 및 클라우드 컴퓨팅 서비스와 같이 대규모 컴퓨팅 리소스에서 응용 프로그램을 실행할 수 있습니다.

이 세션에서는 Cornell University Bioacoustics Research Program 데이터 과학자들이 MATLAB ® 을 사용하여 수테라바이트에 달하는 음향 데이터를 처리 및 분석하기 위한 고성능 컴퓨팅 소프트웨어를 개발하는 방법에 대해 설명합니다.

MATLAB Distributed Computing Server를 사용하여 클러스터에서 유전자 조절 모델 실행 Server는 Parallel Computing Toolbox를 사용하여 개발된 어플리케이션이 대규모 문제를 위해 컴퓨터 클러스터를 활용할 수 있게 합니다. 컴파일된 MATLAB 어플리케이션도 Server를 사용할 수 있습니다.


Toolbox와 MATLAB Distributed Computing Server를 통한 병렬 데이터 응용 프로그램 구현

Parallel Computing Toolbox의 분산 배열은 데스크탑 컴퓨터 메모리(RAM)보다 몇 배 많은 데이터를 보유할 수 있는 특수 배열입니다. 분산 배열은 데이터를 컴퓨터 클러스터에서 실행 중인 몇 개의 MATLAB worker 프로세스로 배분합니다(MATLAB Distributed Computing Server 사용). 따라서 분산 배열을 사용하면 데스크탑 컴퓨터의 메모리 한계를 극복하고 매우 큰 행렬 조작이 필요한 문제를 해결할 수 있습니다.

분산 배열에서 사용할 수 있는 240개 이상의 함수를 통해 MATLAB 배열과 마찬가지로 이러한 분산 배열과 상호 작용으로 데이터 조작을 저수준의 MPI 프로그래밍 없이 worker에서 원격으로 조작할 수 있습니다. 사용할 수 있는 함수로는 백슬래시연산자(\)로도 알려진 mldivide와 같은 ScaLAPACK 기반 선형 대수 루틴, luchol,MAT-file에서 분산 데이터 이동을 위한 함수가 포함됩니다.

Parallel Computing Toolbox는 또한 MATLAB에 내장된 mapreduce 기능을 확장하므로 사용자는 로컬 worker에 mapreduce 기반 응용 프로그램을 실행하여 성능을 개선할 수 있습니다. 사용자는 툴박스를 MATLAB Distributed Computing Server와 결합하여 mapreduce를 Hadoop 클러스터에서 실행함으로써 이 응용 프로그램을 더욱 확장할 수 있습니다.

툴박스는 병렬화 방식에 대한 파인 그레인드(fine-grained) 제어를 위해 단일 프로그램 다중 데이터(spmd) 구조와 MPI 표준 라이브러리(MPICH2)를 기반으로 한 몇 가지 메시지 전달(Message-passing) 루틴을 제공합니다. 이 spmd 구조를 통해 병렬 컴퓨팅에 참여하는 worker에서 동시에 실행할 코드 영역을 지정할 수 있습니다. 프로그램을 실행하는 동안 spmd는 자동으로 본문의 데이터와 코드를 worker로 전달하고 실행이 끝나면 결과를 다시 MATLAB 클라이언트 세션으로 가져옵니다. 연산을 전송, 수신, 배포, 차단, 관측할 수 있는 메시지 전달(Message-passing) 함수를 이용할 수 있습니다.

분산 배열을 통한 프로그래밍 분산 배열과 병렬 알고리즘을 통해 가능한 코드를 변경하지 않고 MPI 프로그래밍 없이 Data-Parallel MATLAB 프로그램을 만들 수 있습니다.


병렬 응용 프로그램을 대화형 또는 배치 작업으로 실행

Parallel Computing Toolbox를 사용하여 병렬 응용 프로그램을 대화형 및 배치 작업으로 실행할 수 있습니다. 이 parpool 명령을 사용하면 데스크탑에서 로컬로 실행(툴박스 사용)하거나 컴퓨터 클러스터에서 실행(MATLAB Distributed Computing Server 사용)하는 MATLAB worker 풀로 MATLAB 세션을 연결하여 전용 대화형 병렬 실행 환경을 구성할 수 있습니다. 이러한 worker에서 MATLAB 프롬프트로부터 병렬 응용 프로그램을 실행하고 다른 MATLAB 세션에서와 같이 연산이 끝나면 즉시 결과를 회수할 수 있습니다.

실행 시간이 상대적으로 짧을 때는 응용 프로그램을 대화형으로 실행하는 것이 적합합니다. 응용 프로그램 실행 시간이 길어지는 경우 툴박스를 사용하여 배치 작업으로 실행을 설정할 수 있습니다. 이렇게 하면 대형 MATLAB 및 Simulink 응용 프로그램을 실행하는 동안 MATLAB 세션을 다른 활동에 사용할 수 있습니다.

응용 프로그램이 배치에서 실행 중일 때 MATLAB 세션을 종료하고 나중에 결과를 회수할 수 있습니다. 툴박스는 batch 함수와 jobtask 객체와 같이 병렬 프로그램의 오프라인 실행 관리를 위한 몇 가지 메커니즘을 제공합니다 이 batch 함수와 jobtask 객체는 모두 직렬 MATLAB 및 Simulink 응용 프로그램 실행을 데스크탑 MATLAB 세션으로부터 전가하는 데 사용할 수 있습니다.

以交互方式和作为批处理作业运行并行应用程序。您可以使用该工具箱随带的本地 worker 在工作站上,也可以使用 MATLAB Distributed Computing Server 随带的更多 worker 在计算机集群上运行应用程序。

병렬 응용 프로그램을 대화형 또는 배치 작업으로 실행 응용 프로그램을 툴박스에서 사용 가능한 로컬 worker를 사용하여 워크스테이션에서 실행하거나, MATLAB Distributed Computing Server를 통해 이용 가능한 더 많은 worker를 사용하여 컴퓨터 클러스터에서 실행할 수 있습니다.