대규모 병렬 처리
IT 위키
더 많은 작업
- Massively Parallel Processing; MPP
- 각자 메모리와 운영체제를 가진 많은 프로세서(노드)가 고속 연결망으로 이어져 하나의 작업을 나누어 동시에 처리하는 컴퓨터 구조
대규모 병렬 처리는 노드끼리 메모리를 공유하지 않는 비공유(shared-nothing) 방식이다. 노드마다 자기 CPU·메모리·디스크를 갖고, 다른 노드의 데이터가 필요하면 연결망으로 메시지를 주고받는다. 메모리를 나눠 쓰지 않으므로 노드를 늘려도 메모리 버스 경쟁이 생기지 않아 수백~수천 노드까지 확장할 수 있다. 대신 데이터를 어떻게 나눠 둘지(분산 키)와 노드 사이 통신량이 성능을 좌우한다.
슈퍼컴퓨터와 대용량 데이터 웨어하우스가 이 구조를 쓴다. 아마존 Redshift, Teradata, Greenplum 같은 분석용 데이터베이스는 테이블을 여러 노드에 나눠 저장하고, 한 질의를 노드마다 동시에 처리한 뒤 결과를 모은다.
| 구분 | SMP (대칭형 다중 처리) | NUMA | MPP (대규모 병렬 처리) |
|---|---|---|---|
| 메모리 | 모든 프로세서가 하나의 주기억장치를 공유 | 공유하지만 노드마다 가까운 메모리와 먼 메모리가 있다 | 노드마다 따로 갖고 공유하지 않는다 |
| 운영체제 | 하나 | 하나 | 노드마다 |
| 통신 | 공유 메모리 | 공유 메모리(노드 간 연결) | 메시지 전달 |
| 확장성 | 버스 경쟁으로 수십 개 정도 | 수백 개 | 수천 개 이상 |