MATLAB 및 Simulink 교육

Accelerating and Parallelizing MATLAB Code

일정 보기 및 등록

교육과정 세부 정보

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

1일차


성능 개선

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

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

MEX 파일 생성

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

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

병렬 연산

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

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

2일차


병렬 for 루프

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

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

오프로딩 실행

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

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

클러스터 활용

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

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

GPU 연산

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

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

수준: 중급

수강자 필수조건:

기간: 2 일

언어: English, 한국어

일정 보기 및 등록