MPICH
1. 개요
MPICH는 아곤 국립 연구소와 미시시피 주립 대학교가 공동 개발한 MPI(Message Passing Interface)의 구현체이다. MPICH는 MPI-1.1 표준을 구현한 MPICH-1에서 시작하여, MPI-2 및 MPI-3, MPI-4 표준을 지원하는 MPICH2 및 이후 버전으로 발전했다. Nemesis, ssm, shm, sock, sctp 등의 다양한 채널을 제공하며, IBM MPI, 인텔 MPI, 크레이 MPI, 마이크로소프트 MPI, Myricom MPI, OSU MVAPICH/MVAPICH2 등 여러 MPI 구현의 기반으로 사용된다.
| 이름 | MPICH |
|---|---|
| 설명 | 무료 오픈 소스 소프트웨어 |
| 최신 버전 | 4.2.1 |
| 최신 버전 발표일 | 2024년 4월 17일 |
| 프로그래밍 언어 | C89 |
| 운영체제 | Linux, macOS, 기타 |
| 라이선스 | MPICH 라이선스 (퍼미시브) |
| 웹사이트 | mpich.org |
| 표준 | 메시지 전달 인터페이스 |
2. 역사
MPICH는 아곤 국립 연구소와 미시시피 주립 대학교가 공개 도메인 소프트웨어로 공동 개발한 MPI 구현체이다. 이름의 'CH'는 MPICH 창립자 중 한 명인 윌리엄 그로프가 개발한 이식 가능한 병렬 프로그래밍 라이브러리 "카멜레온"에서 유래했다.
MPICH는 블루 진용 IBM MPI, 인텔 MPI, 크레이 MPI, 마이크로소프트 MPI, Myricom MPI, OSU MVAPICH/MVAPICH2 등 다양한 MPI 구현의 기반이 되고 있다.
2.1. 초기 개발 (MPICH-1)
아곤 국립 연구소와 미시시피 주립 대학교는 MPICH-1을 공개 도메인 소프트웨어로 공동 개발했다. 이름의 'CH' 부분은 MPICH 창립자 중 한 명인 윌리엄 그로프가 개발한 이식 가능한 병렬 프로그래밍 라이브러리인 "카멜레온"에서 파생되었다. MPICH의 초기 구현("MPICH1"이라고도 함)은 MPI-1.1 표준을 구현했다.
2.2. MPICH2 및 이후 버전
MPICH의 초기 구현("MPICH1"이라고도 함)은 MPI-1.1 표준을 구현했다. 2001년부터 MPICH1을 대체하고 MPI-2 표준을 지원하는 새로운 코드 베이스 작업이 시작되었다. 2012년 11월까지 이 프로젝트는 "MPICH2"로 불렸으며, 2012년 11월 이후에는 "MPICH"로 이름이 변경되었다. MPICH v3.0은 MPI-3.0 표준을, MPICH v4.x는 MPI-4.x 표준을 구현한다.
MPICH는 가장 널리 사용되는 MPI 구현 중 하나이며, 블루 진용 IBM MPI, 인텔 MPI, 크레이 MPI, 마이크로소프트 MPI, Myricom MPI, OSU MVAPICH/MVAPICH2 등 다양한 MPI 구현의 기반이 되고 있다.
3. MPICH 채널
MPICH는 ch3 인프라를 기반으로 다양한 채널을 제공한다. 주요 채널로는 네메시스(Nemesis), ssm, shm, sock, sctp 등이 있다. 네메시스는 범용 채널이며, ssm은 소켓과 공유 메모리, shm은 공유 메모리, sock은 tcp/ip 소켓, sctp는 SCTP 소켓을 이용하는 실험적인 채널이다.
3.1. 주요 채널
MPICH는 다음과 같은 주요 채널을 가지고 있다.
* ch3 인프라 기반 채널
* Nemesis - 다양한 용도로 사용할 수 있는 범용 채널이다. 노드 간 모듈(elan, GM, IB (인피니밴드), MX (myrinet express), NewMadeleine, tcp)과 대용량 메시지 전송을 위한 공유 메모리의 여러 노드 내 모듈(LMT 인터페이스)이 있다.
* ssm - 소켓과 공유 메모리
* shm - 공유 메모리
* sock - tcp/ip 소켓
* sctp - SCTP 소켓 상의 실험 채널
4. MPICH 파생 프로그램
MPICH는 다양한 병렬 컴퓨팅 환경을 지원하기 위해 여러 파생 프로그램들을 가지고 있다. 여기에는 파라텍의 ParaStation MPI와 브리티시컬럼비아 대학교의 MPICH2/SCTP 및 코루틴을 지원하는 Fine-Grain MPI(FG-MPI) 등이 있다.
4.1. 주요 파생 프로그램
다음은 MPICH의 주요 파생 프로그램들이다.
| 회사 | 제품 |
|---|---|
| IBM | 블루진 시리즈용 MPI (선택적으로 x86 및 POWER 클러스터용) |
| 크레이 | 모든 크레이 플랫폼용 MPI |
| SiCortex | MPI SiCortex |
| 마이크로소프트 | MS-MPI |
| 인텔 | 인텔 MPI |
| 큐로직 | MPICH2-PSM |
| 마이리컴 | MPICH2-MX |
| 오하이오 주립 대학교 | MVAPICH 및 MVAPICH2 |
| 파라텍 | ParaStation MPI |
| 브리티시컬럼비아 대학교 | MPICH2/SCTP 및 코루틴 지원을 추가하는 Fine-Grain MPI (FG-MPI) |