Skip to main content
QUICK REVIEW

[논문 리뷰] Multi-block/multi-core SSOR preconditioner for the QCD quark solver for K computer

Taisuke Boku, Ken-Ichi Ishikawa|arXiv (Cornell University)|2012. 10. 28.
Quantum Chromodynamics and Particle Interactions참고 문헌 1인용 수 11
한 줄 요약

이 논문은 K 컴퓨터의 SPARC64 VIIIfx CPU에서 단일 정밀도 SIMD 인스트럭션을 사용하여 Lüscher의 SAP 전치조건자로 봉쇄된 이중 BiCGStab 솔버를 최적화한 다중 블록/다중 코어 SSOR 전치조건자에 대해 제시한다. 16에서 4096 노드까지 이상적인 약화 스케일링을 달성하였으며, 핵심 커널의 지속 성능이 50% 이상을 기록하였다. 단일 정밀도 BiCGStab 솔버는 모든 테스트된 격자 크기에서 약 26%의 효율성을 달성하였다.

ABSTRACT

We study the algorithmic optimization and performance tuning of the Lattice QCD clover-fermion solver for the K computer. We implement the Lüscher's SAP preconditioner with sub-blocking in which the lattice block in a node is further divided to several sub-blocks to extract enough parallelism for the 8-core CPU SPARC64$^{\mathrm{TM}}$ VIIIfx of the K computer. To achieve a better convergence property we use the symmetric successive over-relaxation (SSOR) iteration with {\it locally-lexicographical} ordering for the sub-blocks in obtaining the block inverse. The SAP preconditioner is included in the single precision BiCGStab solver of the nested BiCGStab solver. The single precision part of the computational kernel are solely written with the SIMD oriented intrinsics to achieve the best performance of the \SPARC on the K computer. We benchmark the single precision BiCGStab solver on the three lattice sizes: $12^3 imes 24$, $24^3 imes 48$ and $48^3 imes 96$, with fixing the local lattice size in a node at $6^3 imes 12$. We observe an ideal weak-scaling performance from 16 nodes to 4096 nodes. The performance of a computational kernel exceeds 50% efficiency, and the single precision BiCGstab has $\sim26% susutained efficiency.

연구 동기 및 목표

  • K 컴퓨터의 다중 코어, SIMD 아키텍처를 가진 SPARC64 VIIIfx CPU를 대상으로 O(a)-개선된 윌슨 쿼크 솔버의 최적화 및 튜닝을 수행한다.
  • 하나의 블록 내에서 하위 블록화와 함께 대칭적 연속 초과완화(SSOR)를 적용하여 SAP 전치조건자의 수렴성과 병렬성을 향상시킨다.
  • 낮은 수준의 SIMD 인스트럭션 함수를 사용하여 내부 BiCGStab 솔버에서 단일 정밀도 산술 연산의 고성능을 달성한다.
  • 최대 4096 노드에서 12³×24에서 48³×96까지의 큰 격자 크기에서 약화 스케일링 행동과 성능 효율성을 평가한다.

제안 방법

  • 각 노드의 로컬 격자(6³×12)를 더 작은 하위 블록(3⁴)으로 나누어 다중 코어 병렬성을 향상시키는 하위 블록화를 적용한 Lüscher의 SAP 전치조건자를 구현한다.
  • 수렴성을 향상시키기 위해 로컬 렉시코그래픽 순서를 사용한 대칭적 연속 초과완화(SSOR)를 적용하여 SAP 전치조건자의 블록 역행렬을 계산한다.
  • SPARC64 VIIIfx 아키텍처에서 성능을 극대화하기 위해 SIMD 최적화 인스트럭션을 사용하여 단일 정밀도 계산 커널을 작성한다.
  • SAP 전치조건자를 이중 BiCGStab 솔버에 통합하며, 내부 솔버에서는 단일 정밀도 산술을 사용하지만 최종 해의 정밀도는 이중 정밀도를 유지한다.
  • 노드당 로컬 격자 크기를 6³×12로 고정하고, 세 가지 격자 크기(12³×24, 24³×48, 48³×96)에서 벤치마크를 수행한다.
  • K 컴퓨터의 Tofu 네트워크와 후지츠 컴파일러 프로파일러를 사용하여 성능, SIMD 활용도, 약화 스케일링 효율성을 측정한다.

실험 결과

연구 질문

  • RQ1SSOR 전치조건자와 하위 블록화는 K 컴퓨터의 8코어 SPARC64 VIIIfx CPU에서 QCD 쿼크 솔버의 병렬성과 수렴성에 어떻게 기여하는가?
  • RQ2K 컴퓨터에서 BiCGStab 솔버에 단일 정밀도 SIMD 최적화 커널을 적용할 경우 성능 향상은 어느 정도 기대할 수 있는가?
  • RQ3고정된 로컬 격자 크기에서 16에서 4096 노드까지의 스케일에서 솔버가 이상적인 약화 스케일링 행동을 보이는가?
  • RQ4A_EE 커널의 성능 효율성이 D_EE 커널보다 낮은 이유는 무엇이며, 그 원인은 무엇인가?
  • RQ5과도한 부동소수점 연산(예: SU(3) 재구성, 스핀 프로젝션을 위한 FMAD)이 측정된 성능에 미치는 영향은 무엇이며, 이를 어떻게 보정해야 하는가?

주요 결과

  • 단일 정밀도 BiCGStab 솔버는 모든 테스트된 격자 크기에서 약 26%의 지속 성능 효율성을 달성하여 K 컴퓨터의 계산 자원을 효과적으로 활용하고 있음을 시사한다.
  • D_EE 커널은 인스트럭션 함수 사용 시 90%의 SIMD 활용도를 기록하며 50% 이상의 효율성을 달성하여 하드웨어 활용도가 매우 높음을 보여준다.
  • A_EE 커널은 스레드 간 로드 불균형과 D_EE 대비 루프 본문의 낮은 계산 밀도로 인해 오직 35%의 효율성에 그친다.
  • 약화 스케일링 성능은 16에서 4096 노드까지 이상적이며, 스케일 전반에 걸쳐 커널 성능과 효율성이 안정되어 있다.
  • D_EE의 이론적 최고 성능과 관측된 성능 간 격차는 본질적으로 부피 및 표면 노드를 구분하는 조건부 분기로 인한 것으로 분석되며, 향후 최적화 잠재력이 있음을 시사한다.
  • 과도한 연산(예: SU(3) 재구성, FMAD)을 제외한 후, 실질적인 성능은 측정된 값의 약 80%로 추정되며, 추가 튜닝 여지가 있음을 시사한다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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