Parallel Computing Toolbox

주요 특징

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

MATLAB을 이용한 병렬 컴퓨팅. Parallel Computing Toolbox를 통해 12개의 worker와 GPU를 활용하고 클러스터로 확장하여 멀티코어 데스크탑에서 어플리케이션을 실행할 수 있습니다(MATLAB Distributed Computing Server 사용).

병렬 어플리케이션 프로그래밍

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

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

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

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

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

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

태스크 병렬화 어플리케이션 가속

독립적인 task(작업 단위)로 분류하고 동시에 여러 작업을 수행함으로써 일부 어플리케이션을 가속할 수 있습니다. 이러한 태스크 병렬화 어플리케이션에는 설계 최적화 시뮬레이션, BER 테스팅, 몬테까를로 시뮬레이션, 다수의 데이터 파일에 대한 반복적 분석이 포함됩니다.

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

병렬 작업 어플리케이션에서 parallel for-loops 사용 MATLAB 스크립트와 함수에서 parallel for-loops를 사용하고 대화식 또는 오프라인으로 모두 실행할 수 있습니다.

병렬 작업 어플리케이션에서 parallel for-loops 사용 MATLAB 스크립트와 함수에서 parallel for-loops를 사용하고 대화식 또는 오프라인으로 모두 실행할 수 있습니다.

GPU를 통한 MATLAB 연산 가속

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

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

MATLAB을 사용한 GPU 컴퓨팅.

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

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

Parallel Computing Toolbox에서는 멀티코어 컴퓨터에서 병렬 어플리케이션을 로컬로 실행할 수 있는 최대 12개의 worker를 사용할 수 있습니다. Toolbox를 MATLAB Distributed Computing Server와 함께 사용하면 컴퓨터 클러스터 또는 그리드 및 클라우드 컴퓨팅 서비스와 같이 대규모 컴퓨팅 리소스에서 더 많은 worker를 사용하는 어플리케이션을 실행할 수 있습니다. Server는 또한 대화식과 배치 워크플로를 모두 지원합니다.

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

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

Toolbox와 MATLAB Distributed Computing Server를 통한 데이터 병렬화 어플리케이션 구현

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

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

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

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

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

병렬화 어플리케이션을 대화식 또는 배치 작업으로 실행

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

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

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

병렬화 어플리케이션을 대화식 또는 배치 작업으로 실행

병렬화 어플리케이션을 대화식 또는 배치 작업으로 실행 어플리케이션을 Toolbox에서 사용 가능한 12개의 worker를 사용하여 워크스테이션에서 실행하거나, MATLAB Distributed Computing Server를 통해 이용 가능한 더 많은 worker를 사용하여 컴퓨터 클러스터에서 실행할 수 있습니다.

Parallel Computing Toolbox 평가판 사용

평가판 신청

MATLAB을 이용한 머신 러닝 기법 소개

웨비나 보기