Skip to main content
QUICK REVIEW

[논문 리뷰] A Class of Parallel Tiled Linear Algebra Algorithms for Multicore Architectures

Alfredo Buttari, Julien Langou|ArXiv.org|2007. 09. 09.
Parallel Computing and Optimization Techniques참고 문헌 7인용 수 32
한 줄 요약

이 논문은 다중코어 아키텍처를 대상으로 하여 세분화된 작업 병렬 처리와 비동기 실행을 통해 높은 성능을 달성하는 타일링된, 데이터 기반의 선형 대수 알고리즘 클래스를 제시한다. 코レス키, LU, QR 분해를 정사각형 블록 위에서 작동하는 작은, 동적으로 스케줄링되는 작업들로 분해함으로써, 순차적 블로킹을 숨기고, 벤더 최적화 BLAS 기반 구현 및 전통적인 포크-조인 모델 대비 최대 50% 향상된 성능을 달성한다.

ABSTRACT

As multicore systems continue to gain ground in the High Performance Computing world, linear algebra algorithms have to be reformulated or new algorithms have to be developed in order to take advantage of the architectural features on these new processors. Fine grain parallelism becomes a major requirement and introduces the necessity of loose synchronization in the parallel execution of an operation. This paper presents an algorithm for the Cholesky, LU and QR factorization where the operations can be represented as a sequence of small tasks that operate on square blocks of data. These tasks can be dynamically scheduled for execution based on the dependencies among them and on the availability of computational resources. This may result in an out of order execution of the tasks which will completely hide the presence of intrinsically sequential tasks in the factorization. Performance comparisons are presented with the LAPACK algorithms where parallelism can only be exploited at the level of the BLAS operations and vendor implementations.

연구 동기 및 목표

  • 다중코어 아키텍처에서 전통적인 LAPACK 및 ScaLAPACK 라이브러리의 확장성 한계를 해결하기 위해, 병렬성이 BLAS 수준의 연산에 국한되는 문제를 해결한다.
  • 기존 블록 알고리즘에서 발생하는 거시적 병렬성과 동기화 오버헤드로 인한 성능 저하 문제를 해결한다.
  • 세분화된 병렬성과 비동기 실행을 활용하여 다중코어 시스템에서 데이터 국소성 향상과 메모리 지연 숨기기를 개선한다.
  • 타일링 알고리즘과 동적 작업 스케줄링이 표준 LAPACK 실행 및 Intel MKL과 같은 최적화된 벤더 라이브러리보다 뛰어난 성능을 낼 수 있음을 입증한다.

제안 방법

  • 밀도 있는 선형 대수 분해(코レス키, LU, QR)를 정사각형 타일 단위로 작동하는 작은 독립 작업의 시퀀스로 분해한다.
  • 의존성을 명시적으로 표현하여 동적 스케줄링을 안내하는 작업의 방향성 비순환 그래프(DAG)로 계산을 모델링한다.
  • 데이터 가용성과 자원 가용성을 기반으로 런타임 시스템이 작업을 비동기적으로 스케줄링하여 순서를 뒤바꾸는 실행을 가능하게 한다.
  • 과도한 오버헤드를 최소화하기 위해 데이터 재사용, 로드 밸런싱, BLAS 효율성 간의 균형을 고려해 타일 크기와 내부 블로킹 크기를 선택한다.
  • 하드웨어 특성과 워크로드 분포에 맞게 런타임에서 적응 가능한 작업 기반 프로그래밍 모델을 사용하여 알고리즘을 구현한다.
  • PLASMA 기반 런타임 시스템을 사용하여 성능을 평가하고, 타일링 알고리즘을 LAPACK 블록 알고리즘 및 벤더 최적화 BLAS 라이브러리와 비교한다.

실험 결과

연구 질문

  • RQ1세분화된 병렬성과 동적 작업 스케줄링을 갖춘 타일링 알고리즘은 다중코어 시스템에서 전통적인 BLAS 기반 포크-조인 병렬 처리보다 뛰어난 성능을 낼 수 있는가?
  • RQ2비동기 실행과 순서를 뒤바꾸는 작업 스케줄링은 분해 알고리즘에서 본질적으로 순차적인 연산의 지연을 어느 정도 숨길 수 있는가?
  • RQ3타일 크기와 내부 블로킹 크기의 선택은 타일링된 선형 대수 커널의 성능과 수치적 안정성에 어떤 영향을 미치는가?
  • RQ4특히 작은 문제 크기에서, 타일링 알고리즘이 Intel MKL과 같은 벤더 최적화 BLAS 라이브러리보다 더 높은 성능을 낼 수 있는가?
  • RQ5다양한 문제 크기와 코어 수에서 타일링 알고리즘의 확장성 특성은 어떠한가?

주요 결과

  • 비동기 실행을 통한 타일링 알고리즘은 다중 스레드 BLAS를 사용한 LAPACK 블록 알고리즘 대비 약 50% 높은 성능을 달성했으며, 동일한 연산에 대해 벤더 최적화 구현보다도 뛰어난 성능을 보였다.
  • 코レス키 분해의 경우, 타일링 접근 방식은 효율적인 행 교환을 하지 못해 성능이 떨어지는 LAPACK 왼쪽 봉우리(variant)보다 뚜렷하게 뛰어난 성능을 보였다.
  • LU 분해에서 타일링 접근 방식은 LAPACK 및 MKL보다 빠르게 渐近 성능에 도달했으며, 병렬화 오버헤드가 줄어들어 작은 문제 크기에서 상당한 스피드업을 제공했다.
  • LU 분해에서 타일링 알고리즘과 Intel MKL-9.1 간의 성능 격차는 비효율적인 쌍별 피벗팅과 최적화되지 않은 내부 블로킹 크기로 인해 증가한 계산 오버헤드 때문이었다.
  • 타일링 알고리즘의 플롭 수는 1 + s/(2b) 배로 증가하지만, 이 비용은 작은 내부 블로킹 크기 s를 통해 최소화할 수 있으며, 이로 인해 높은 효율성이 유지된다.
  • 약화된 확장성 결과에서는 코어 수가 증가함에 따라 타일링 알고리즘이 높은 성능을 유지했으며, 효과적인 로드 분배와 자원 활용도를 보여주었다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.