Skip to main content
QUICK REVIEW

[논문 리뷰] Parallel Programming with MatlabMPI

Jeremy Kepner|arXiv (Cornell University)|2001. 07. 20.
Parallel Computing and Optimization Techniques인용 수 49
한 줄 요약

이 논문은 공유 메모리 및 분산 메모리 시스템에서 MATLAB을 사용한 병렬 프로그래밍을 가능하게 하는 가벼운, 순수 MATLAB 구현인 MatlabMPI를 제시한다. 이는 파일 I/O를 사용하여 MPI 표준을 구현한다. 대용량 메시지에 대해 C 기반 MPI와 거의 동일한 대역폭을 달성했으며, 이미지 필터링 응용 프로그램에서 64개 프로세서에서 64배 이상의 속도 향상을 입증하여, 최소한의 코드 오버헤드로 MATLAB 내에서 MPI 유사 병렬 처리의 실현 가능성을 입증한다.

ABSTRACT

MatlabMPI is a Matlab implementation of the Message Passing Interface (MPI) standard and allows any Matlab program to exploit multiple processors. MatlabMPI currently implements the basic six functions that are the core of the MPI point-to-point communications standard. The key technical innovation of MatlabMPI is that it implements the widely used MPI ``look and feel'' on top of standard Matlab file I/O, resulting in an extremely compact (~100 lines) and ``pure'' implementation which runs anywhere Matlab runs. The performance has been tested on both shared and distributed memory parallel computers. MatlabMPI can match the bandwidth of C based MPI at large message sizes. A test image filtering application using MatlabMPI achieved a speedup of ~70 on a parallel computer.

연구 동기 및 목표

  • 광범위하게 채택된 통신 모델을 사용하여 다중 프로세서 시스템에서 MATLAB 프로그램의 효율적 병렬 실행을 가능하게 하기 위해.
  • 이전 MATLAB 병렬화 솔루션의 광범위한 채택 부족을 해결하기 위해 사실상 표준인 MPI 인터페이스를 활용하기 위해.
  • 표준 파일 I/O 연산만을 사용하여 MATLAB 환경 내에서 포터블하고 최소 크기이며 완전히 호환 가능한 MPI 유사 인터페이스를 제공하기 위해.
  • 가벼운 순수 MATLAB 구현을 통해 MATLAB 프로그램이 간단한 병렬 작업에서 고성능과 강력한 스케일링을 달성할 수 있음을 입증하기 위해.

제안 방법

  • 표준 MATLAB 파일 I/O 연산만을 사용하여 MPI 점대점 통신 표준의 일부를 구현하기 위해.
  • 메시지 전달을 파일 기반으로 변환하여, 메시지를 공유된 디렉터리에 쓰고 읽는 방식으로 MPI 함수 호출(MPI_Send, MPI_Recv 등)을 매핑하기 위해.
  • 모든 노드가 접근 가능한 공유 디렉터리를 통신 수단으로 사용하여, 저수준 시스템 호출이나 외부 라이브러리가 필요 없도록 하기 위해.
  • 모든 MATLAB이 설치된 플랫폼에서 완전히 포터블하도록 설계하여, 표준 MATLAB 기능만에 의존하기 위해.
  • 대용량 메시지에 대해 지연 시간 오버헤드를 최소화하고 대역폭을 극대화하기 위해 메시지 처리를 최적화하기 위해.
  • 공유 메모리 SGI Origin2000 시스템에서의 성능 검증 및 C 기반 MPI와의 성능 비교를 수행하기 위해.

실험 결과

연구 질문

  • RQ1순수 MATLAB으로 구현된 MPI가 다양한 컴퓨팅 플랫폼에서 효율적이고 포터블한가?
  • RQ2파일 I/O 기반 MPI의 성능이 대용량 메시지 크기에 대해 실질적인 C 기반 MPI와 어떻게 비교되는가?
  • RQ3이 파일 기반 MPI 추상화를 사용하여 MATLAB 응용 프로그램이 간단한 병렬 작업에서 강력한 속도 향상을 달성할 수 있는가?
  • RQ4파일 I/O를 통신 수단으로 사용할 경우 병렬 MATLAB 프로그램의 지연 시간과 대역폭에 어떤 영향을 미치는가?
  • RQ5저수준 시스템 액세스나 컴파일러 확장 없이도 MPI 모델을 MATLAB에 효과적으로 적응시킬 수 있는가?

주요 결과

  • MatlabMPI는 대용량 메시지(예: 약 1MB)에 대해 C 기반 MPI와 비교해 거의 동일한 대역폭 성능을 달성하여, 파일 I/O가 대규모 환경에서 실용적인 통신 수단이 될 수 있음을 입증한다.
  • 2D 이미지 필터링 응용에서 64개 프로세서에서 64배 이상의 속도 향상을 기록했으며, 캐시 활용도 향상으로 인해 초선형 속도 향상이 관찰되었다.
  • MatlabMPI의 지연 시간은 메시지당 약 35ms로, C MPI보다 훨씬 높지만, 굵은 입자 병렬 응용에는 문제가 되지 않는 수준이다.
  • 시스템은 매우 작고 약 100줄의 코드로 구성되어 있으며, MATLAB이 설치된 모든 플랫폼에서 실행 가능하여 광범위한 포터빌리티를 확보한다.
  • 파일 I/O 사용은 큰 버퍼 지원, 메시지 기록, 멀티캐스팅, 일방통신과 같은 고급 기능을 추가로 구현하기 위해 최소한의 복잡성으로 가능하게 한다.
  • 이 접근 방식은 Python, IDL, Perl 등의 다른 스크립팅 언어로도 확장 가능하여 MATLAB을 초월한 광범위한 적용 가능성을 시사한다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.