MPI
IT 위키
더 많은 작업
- Message Passing Interface; 메시지 전달 인터페이스
- 여러 노드에 흩어진 프로세스들이 메시지를 주고받으며 하나의 계산을 나누어 처리하도록 정해 둔 표준
- 1994년에 첫 표준이 나왔다. 특정 제품이 아니라 명세이고, 구현으로는 Open MPI, MPICH 등이 있다.
- 메모리를 공유하지 않는 클러스터에서 쓴다. 각 프로세스는 자기 메모리만 가지고,
필요한 데이터는 명시적으로 주고받는다.
- C, C++, 포트란에서 호출한다. 고계산용(HPC) 클러스터를 구성하는 기본 요소다.
- 앞선 표준으로 PVM(Parallel Virtual Machine)이 있었고, MPI 가 사실상 이를 대체했다.
| 용어 | 뜻 |
|---|---|
| 랭크(rank) | 통신 그룹 안에서 각 프로세스에 붙는 번호. 0번부터 |
| 커뮤니케이터 | 서로 통신하는 프로세스들의 묶음. 기본값은 MPI_COMM_WORLD |
| 점대점 통신 | MPI_Send / MPI_Recv 로 두 프로세스가 직접 주고받는다 |
| 집합 통신 | MPI_Bcast(뿌리기), MPI_Reduce(모아 줄이기), MPI_Gather, MPI_Scatter |
- 컴파일러 (C/포트란)
- MPI 또는 PVM — 노드 사이의 메시지 전달
- 작업 스케줄러
- 고속 인터커넥트
LVS(Linux Virtual Server)는 부하 분산 클러스터를 만드는 도구이지 계산을 나누는 도구가 아니다. 고계산용 클러스터의 구성 요소를 묻는 문제에서 갈리는 지점이다.