병렬 처리, 멀티코어, 플린 분류
출제 빈도: ★★★★★ | 기본 필수
답안.
Ⅰ. 개요
병렬 처리(Parallel Processing)란 다수의 처리 장치가 동시에 연산을 수행하여 성능을 높이는 기법으로, 플린(Flynn)의 분류에 따라 SISD, SIMD, MISD, MIMD로 구분된다. 멀티코어 프로세서는 단일 칩 내에 다수의 CPU 코어를 집적하여 전력 효율과 성능을 동시에 추구한다.
Ⅱ. 플린 분류
단일 데이터 다중 데이터
단일 명령 SISD SIMD
(전통 CPU) (GPU, 벡터 프로세서)
다중 명령 MISD MIMD
(이론적/폴트톨) (멀티코어, 클러스터)
| 분류 | 설명 | 예시 |
|---|---|---|
| SISD | 단일 명령, 단일 데이터 | 전통 단일 코어 CPU |
| SIMD | 단일 명령, 다중 데이터 | GPU CUDA 코어, AVX-512 |
| MISD | 다중 명령, 단일 데이터 | 결함 허용 시스템 (이론적) |
| MIMD | 다중 명령, 다중 데이터 | 멀티코어 CPU, 클러스터 |
Ⅲ. SMP vs NUMA
| 구분 | SMP | NUMA |
|---|---|---|
| 메모리 접근 | 균일(UMA) | 비균일 |
| 확장성 | 8~16코어 한계 | 수백 코어 가능 |
| 지연 | 일정 | 로컬 노드 빠름, 원격 느림 |
| 적용 | 소규모 서버 | 대규모 서버, HPC |
NUMA에서는 메모리 친화성(Affinity) 설정이 성능에 결정적이다. 리눅스의 numactl로 프로세스를 로컬 노드에 바인딩하면 원격 접근 지연(~2배)을 회피할 수 있다.
Ⅳ. 멀티코어 설계 전략
폴락의 법칙(Pollack's Rule)에 의하면 성능은 트랜지스터 수의 제곱근에 비례하므로, 단일 코어를 2배 키우는 것보다 2개 코어를 두는 것이 면적 대비 효율적이다. 이종 코어(빅.LITTLE / P-core·E-core) 구조는 고성능과 저전력을 동시에 달성한다.
Ⅴ. 전망
칩렛(Chiplet) 기반 이종 집적으로 CPU·GPU·NPU를 하나의 패키지에 결합하는 추세이며, UCIe(Universal Chiplet Interconnect Express) 표준이 칩렛 간 인터커넥트를 통일하고 있다.
관련: 암달의 법칙(07번) · 폴락의 법칙(08번) · 칩렛(36번) · GPU(34번)