열 브로드캐스트 없이 2D SIMD 프로세서 배열에서 구현하는 효율적인 가우스 소거
본 논문은 n×m (m≥n) 행렬에 대해 n·m 개의 프로세서가 2차원 SIMD 격자로 배치된 환경에서, 행 브로드캐스트만을 이용해 O(n) 단계로 상삼각 형태로 변환하는 가우스 소거 알고리즘을 제안한다. 열 브로드캐스트를 배제함으로써 통신 복잡도를 크게 낮추고, 2·n‑1번의 반복으로 최적의 속도 향상을 달성한다. 또한 알고리즘의 정확성을 귀납법으로 증명하고, 시뮬레이션을 통해 수치적 정확성과 행렬식·해의 일치성을 검증한다.
저자: Mugurel Ionut Andreica
본 논문은 n·m (m≥n) 크기의 행렬에 대해, n·m개의 프로세서가 n행 m열 형태의 2차원 SIMD 격자로 배치된 시스템에서 가우스 소거를 수행하는 새로운 병렬 알고리즘을 제안한다. 기존의 병렬 가우스 소거 방법들은 행과 열 모두에 대한 브로드캐스트를 필요로 하여 통신 비용이 크게 증가하는 문제가 있었다. 저자들은 이러한 문제를 해결하고자, 오직 행 단위 브로드캐스트만을 이용하는 구조를 설계하였다.
알고리즘은 총 2·n‑1번의 반복을 수행한다. 각 반복에서 모든 프로세서의 tmp 레지스터에 저장된 값이 아래 행으로 순환 이동한다(마지막 행은 첫 번째 행으로). 이 순환 메커니즘은 행이 “슬라이드”하면서 목표 위치에 도달하도록 하며, 행 교환을 명시적으로 수행할 필요가 없게 만든다.
각 반복에서 i번째 행에 대해 두 가지 상태가 존재한다. state가 0이면 아직 해당 행이 최종 상삼각 행으로 확정되지 않은 상태이며, (i,i) 프로세서가 |tmp(i,i)|>0인지 검사한다. 양수이면 해당 행을 확정하고, state를 1로 전환한다. 이때 f 레지스터에 현재 tmp 값을 복사하고, tmp를 0으로 초기화한다. state가 1이면 이미 확정된 행으로, (i,i) 프로세서는 tmp(i,i)/f(i,i)를 계산해 tmp2(i,i)로 만든 뒤, 이를 같은 행의 모든 프로세서에 브로드캐스트한다. 각 프로세서는 자신의 tmp 값을 tmp2·f 만큼 감소시켜 해당 열을 소거한다. 결과적으로 tmp(i,i)는 0이 되고, 다음 행으로 전달되는 값은 이미 소거된 형태가 된다.
저자들은 귀납법을 이용해 i번째 행이 i번째 반복 이후에 j
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기