개발 라이브러리 & 툴

[MPP] Introduction To Message Passing Interface(MPI)

하늘흐늘 2009. 9. 17. 22:35
반응형

Message Passing Interface(MPI)란?
 OpenMP와 함께 병렬처리 프로그래밍의 표준의 한축을 담당하고 있는 Message Passing Interface는 슈퍼컴퓨터에서 나온 개념 입니다. CPU가 공유메모리가 아닌 직접적인 통신을 할 때 사용하는 메시지 기반 API로 90년대 초반 벤더별 API가 개발되기 시작하여, 표준API 초안이 1994년 12월에 나왔습니다. OpenMP가 병렬 태스크 범위와 범위에 따른 처리 CPU 개수들을 지정하는데 비하여 MPI는 개별 CPU를 제어합니다. MPI API의 주요 목적은 공유메모리가 아닌 CPU간 직접 메시지 통신이지만 이 통신을 통하여 Master-Slave구조가 이루어져 Master CPU에서 보낸 메시지에 따라 Slave CPU들이 해당 처리를 하는 구조가 만들어 집니다.  OpenMP이든 MPI든 병렬처리의 주요 목적은 병렬처리를 통한 연산 처리 성능 향상에 극대화에 있습니다.

Visual Studio에서 사용법

 HPC Pack 2008 SDK

를 인스톨 후에 사용하시면 됩니다.

MS MPI

는 Argonne National Laboratory의 MPICH2 (MPI 2.1표준 호환) 기반으로 만들어지는 라이브러리입니다. 그외 상용으로

Intel's MPI 라이브러리

가 있습니다. Visual Studio 2008에서의 사용방법은

이 페이지

를 참조하시면 됩니다.


MPI에 대한 참조 자료

Message Passing Interface (MPI) 소개

,

MPI 두번쨰 이야기

한빛미디어에 김대곤님이 쓰신 글로 API에 대한 간단한 설명과 예제를 가지고 있습니다. 개념잡기는 조금 힘들겠지만 API가 이런 것이라는 느낌이 들도록 만들어진 Hello World이상의 좋은 예제들이 있습니다.

Wikipedia's Message Passing Interface

위키피디어 다운 날카로운 요약은 아니지만 전체적인 흐름이나 API구성, 구현 상황 등 전반적인 지식을 파악하기에 좋습니다.

Imagination is more important than knowledge

바죠님의 블로그에 포스팅 된 글로 MPI에 대하여 개인적으로 정리하여 놓은 글같습니다. 군데 군데 찾아서 읽을 만합니다.



반응형