가변 거리 데이터 의존성 루프 병렬화
초록
본 논문은 반복문 내에서 거리값이 일정하지 않은 데이터 의존성을 가진 경우를 대상으로, 선형 디오판틴 방정식(LDE)의 파라메트릭 해를 이용해 반복 공간을 정밀히 분석하고, 의존 관계를 그래프의 연결 성분으로 분할함으로써 실행 가능한 병렬 구성을 제시한다.
상세 분석
논문은 먼저 데이터 의존성 거리(Dependence Distance)의 개념을 재정의한다. 기존 연구에서는 상수 거리(CD) 의존성을 전제로 반복 공간을 일정한 간격으로 나누어 병렬화를 수행했지만, 가변 거리(VD) 의존성에서는 의존 관계가 비정형적으로 나타나 기존 방법으로는 효율적인 파티셔닝이 불가능했다. 저자들은 이러한 문제를 해결하기 위해 두 변수 선형 디오판틴 방정식(ax + by = c)의 정규화 형태를 채택하고, a > 0, a ≤ |b| 조건 하에 파라메트릭 해 {α − mb, α + ma} (m∈ℤ) 를 이용해 모든 의존 반복 쌍을 정확히 기술한다.
핵심 아이디어는 각 해를 그래프의 정점으로 보고, 소스와 싱크 관계에 따라 연결 성분(Connected Component, CC)을 형성한다. CC 내부의 정점들은 순차적으로 실행되어야 하며, 서로 다른 CC는 동기화 없이 병렬 실행이 가능하다. 저자는 CC의 구조를 “시드(seed)”라는 대표 반복을 중심으로 전개한다. 시드는 특정 CC를 생성하는 시작점이며, 파라메트릭 해를 이용해 시드로부터 전체 CC를 동적으로 재구성할 수 있다. 이 접근법은 단일 LDE뿐 아니라 다중 LDE가 동시에 존재하는 경우에도 적용 가능하도록 확장되었다.
다중 LDE 상황에서는 각 LDE별로 구한 CC 집합을 교집합·합집합 연산을 통해 “공통 시드(common seed)”와 “고유 시드(unique seed)”로 구분한다. 공통 시드는 여러 LDE에 동시에 등장하는 반복을 의미하며, 이러한 시드들을 중심으로 CC를 재조합하면 전체 의존 그래프를 정확히 포착할 수 있다. 논문은 이를 수학적으로 증명하고, CC의 개수 |P|와 최대 길이 L_max에 대한 상한을 제시한다. 특히, |P|는 반복 공간 크기 R과 계수 |b|의 비율에 의해 결정되며, L_max은 R/(|b|^{P_max}) 형태의 로그적 관계를 가진다.
알고리즘 측면에서는 (1) 시드 추출, (2) 시드 기반 CC 생성, (3) 다중 LDE 통합을 통한 최종 파티셔닝, (4) 런타임 시 시드로부터 동적 스케줄링을 수행하는 네 단계 프로세스를 제시한다. 실험에서는 인위적으로 생성한 다중 LDE 루프를 대상으로, LDE 수가 증가할수록 병렬성 감소 경향을 관찰했으며, 이를 보완하기 위한 휴리스틱 기반 대체 파티셔닝을 제안해 비트리비얼한 성능 향상을 입증했다.
결과적으로, 본 연구는 가변 거리 데이터 의존성을 가진 루프에 대해 수학적 정밀성을 유지하면서도 실용적인 병렬 스케줄을 생성할 수 있는 체계적인 프레임워크를 제공한다. 이는 기존 컴파일러 최적화가 다루기 어려웠던 복합 의존 구조를 정형화하고, 자동 병렬화 도구에 적용 가능하도록 이론적·실험적 기반을 마련한 점에서 큰 의의를 가진다.
댓글 및 학술 토론
Loading comments...
의견 남기기