병렬 처리, 멀티코어, 플린 분류

출제 빈도: ★★★★★ | 기본 필수


답안.

Ⅰ. 개요

병렬 처리(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

구분SMPNUMA
메모리 접근균일(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번)