다단계 병렬 알고리즘 성능 분석 방법
초록
본 논문은 병렬 알고리즘을 문제 분해 수준에 따라 다단계로 모델링하고, 이를 분해 행렬과 실행 행렬이라는 두 블록 행렬로 표현한다. 행렬의 행·열 수가 각각 의존도와 동시성 정도를 나타내며, 이를 통해 알고리즘의 내재적 병렬성, 오버헤드 원천, 스케일‑업·스피드‑업 한계를 정량적으로 분석한다. 또한 복잡도 정의와 일반화된 Amdahl 법칙을 도출해 다양한 granularity 수준에서 성능 예측이 가능하도록 한다.
상세 분석
논문은 병렬 알고리즘을 연산자 집합으로 기술하고, 이 연산자들이 문제 분해에 따라 어떻게 연결되는지를 의존성 그룹(Dependency Group)이라는 수학적 구조로 정의한다. 의존성 그룹은 엄격한 부분 순서 관계 π를 갖는 집합(E, π)으로, 두 연산자 A와 B 사이에 A ← B 라는 의존 관계가 존재하면 A는 B에 종속한다는 의미다. 이러한 관계를 행렬 형태로 정리한 것이 **분해 행렬(F)**이며, 행 수 r_D는 의존도 차수, 열 수 c_D는 동시성 차수를 나타낸다. 즉, c_D > 1이면 해당 문제는 본질적으로 병렬성을 가지고 있음을 의미한다.
다음 단계에서는 **실행 행렬(E)**을 도입한다. 실행 행렬은 실제 하드웨어 자원(M_P)의 연산자 집합 C_op(M_P)와 연산자 I_j의 실행 시간 t_j를 매핑한다. 각 연산자는 특정 하위 문제 B_Ni에 대응하며, 실행 행렬의 행·열 구조는 연산자 간 실행 순서와 동시에 실행 가능한 연산자들을 명시한다. 이를 통해 복잡도 C(A_k,P)=k 라는 정의가 도출되는데, 여기서 k는 알고리즘 A_k,P에 포함된 연산자(또는 분해 행렬의 비어 있지 않은 원소)의 개수와 동일하다.
성능 지표로는 **스케일‑업(Scale‑up)**과 **스피드‑업(Speed‑up)**을 사용한다. 논문은 일반화된 Amdahl 법칙을 다음과 같이 제시한다.
\
댓글 및 학술 토론
Loading comments...
의견 남기기