구조적 대칭 희소 행렬‑벡터 곱의 멀티코어 최적화

구조적 대칭을 갖는 희소 행렬에 대한 행렬‑벡터 곱을 다중 스레드로 효율적으로 구현하는 방법을 제안한다. 압축 희소 행렬‑열 형식(CSRC)을 사용하면 전역 유한 요소 행렬에서 관찰되는 대칭 비영점 패턴을 활용할 수 있다. 기존 압축 저장 방식과 달리 CSRC 기반 곱 연산은 목적 벡터에 대한 스레드‑안전한 접근이 필요하다. 레이스 컨디션을 피하기 위해 두 가지 파티셔닝 전략을 구현하였다. 첫 번째 전략에서는 각 스레드가 자신의 기여값을 저장할…

저자: Vicente H. F. Batista, George O. Ainsworth Jr., Fern

우리는 구조적 대칭성을 갖는 희소 행렬에 대한 행렬‑벡터 곱 알고리즘을 다중 스레드 환경에서 효율적으로 구현하는 문제를 다룬다. 전역 유한 요소 행렬에서 흔히 관찰되는 대칭적인 비영점 패턴을 활용하기 위해, 압축 희소 행렬‑열 형식(CSRC)을 사용한다. 기존의 압축 저장 형식과 달리 CSRC를 이용한 희소 행렬‑벡터 곱은 목적 벡터에 대한 스레드‑안전한 접근을 요구한다. 레이스 컨디션을 방지하기 위해 두 가지 파티셔닝 전략을 구현하였다. 첫 번째 전략에서는 각 스레드가 자신의 기여값을 저장할 배열을 할당하고, 이후 누적 단계에서 이를 결합한다. 이 누적 단계는 네 가지 방법(직렬 누적, 트리형 누적, 원자적 연산 기반 누적, SIMD 기반 누적)으로 분석하였다. 두 번째 전략은 색칠 알고리즘을 적용하여 동시에 처리해도 충돌이 발생하지 않는 행들을 그룹화한다. 실험 결과, 작업 집합 크기가 증가하더라도 첫 번째 접근 방식이 대부분의 행렬에 대해 가장 큰 성능 향상을 제공함을 확인하였다. 이는 스레드 간 동기화 비용을 최소화하고, 구조적 대칭성을 활용한 CSRC의 장점을 극대화함으로써 얻어진 결과이다.

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기