MATLAB 및 Simulink 교육

Accelerating and Parallelizing MATLAB Code

교육과정 세부 정보

본 2일 교육과정은 MATLAB 코드의 실행 속도를 향상시키는 다양한 방법들을 다룹니다. 메모리 선할당(preallocation) 및 벡터화 연산(vectorization) 등을 사용하여 계산상의 병목 현상을 제거하는 방법, MATLAB Coder™ 를 사용하여 MATLAB 코드를 MEX 파일로 컴파일하는 방법, Parallel Computing Toolbox™를 사용하여 병렬 for 루프에 의한 컴퓨터의 멀티 코어 기능을 활용하는 방법, MATLAB Parallel Server™를 사용하여 여러 컴퓨터로 처리 규모를 확장하는 방법 등을 교육 전반에 걸쳐 학습할 것입니다. 시뮬레이션 시간이 오래 걸렸던 엔지니어 분들은 본 교육과정에서 제공하는 다양한 실습 및 연습문제들을 통해 도움을 받을 수 있습니다. 본 과정의 주요 내용은 다음과 같습니다.

  • MATLAB 핵심 기능 내에서 성능 개선
  • MEX 파일 생성
  • 병렬 연산
  • 오프로딩(offloading) 실행 기법
  • 클러스터 활용
  • GPU 컴퓨팅

Day 1 of 2


성능 개선

Objective: 코드 성능을 분석하고 MATLAB 내에서 속도를 높이기 위해 여러 기법을 활용합니다.

  • 병목 현상 식별
  • 배열 사전할당
  • 다양한 방법으로 연산 벡터화
  • 알고리즘 재작성

MEX 파일 생성

Objective: 성능 향상을 위해 MATLAB 코드에서 컴파일된 코드 파일을 생성합니다.

  • MATLAB Coder 개요 및 워크플로
  • MEX 파일 생성 및 확인
  • 지원되지 않는 함수 호출
  • MEX 파일 생성을 위한 설정 조정

병렬 연산

Objective: 다중 코어를 활용하기 위해 코드 실행을 병렬화합니다.

  • 추가 MATLAB 프로세스 열기
  • 병렬 for 루프 실행
  • 가속 측정
  • 병렬로 여러 개의 파일 처리

Day 2 of 2


병렬 for 루프

Objective: 병렬 for 루프를 자세히 살펴보고, for 루프를 parfor 루프로 변환하는 기법을 적용합니다.

  • 병렬 for 루프 요구사항
  • for 루프 병렬화
  • 중간 결과 가져오기

오프로딩 실행

Objective: 계산을 또 다른 MATLAB 프로세스에 분담하여 그 동안에 MATLAB을 다른 작업에 사용할 수 있도록 합니다. 이는 클러스터 활용을 위한 준비 단계이기도 합니다.

  • 일괄 처리
  • 배치 작업 생성
  • 결과 가져오기
  • 작업 모니터 사용

클러스터 활용

Objective: 여러 대의 컴퓨터를 사용해 계산 속도를 높이고 보다 폭넓은 시뮬레이션을 실현합니다.

  • 로컬 및 원격 클러스터
  • 동적 라이선싱
  • 클러스터 검색 및 연결
  • 파일 액세스 관련 고려 사항

GPU 연산

Objective: 계산 속도를 높이기 위한 또 다른 옵션으로 MATLAB 코드를 컴퓨터의 그래픽 카드(GPU)에서 실행합니다.

  • GPU 아키텍처 및 처리 개요
  • GPU 처리에 적합한 응용 프로그램
  • GPU에서 MATLAB 함수 호출
  • GPU Coder™를 사용하여 CUDA® MEX 파일 생성
  • 기존 CUDA 코드 사용

수준: 중급

수강자 필수조건:

기간: 2 요일

언어: Deutsch, English, Français, 日本語, 한국어