The Gaia AVU-GSR solver: a CPU + GPU parallel code toward Exascale systems

Abstract

The solver module of the Astrometric Verification Unit - Global Sphere Reconstruction (AVU-GSR) pipeline aims to find the astrometric parameters of 108 stars in the Milky Way, besides the attitude and instrumental settings of the Gaia satellite and the parametrized post Newtonian parameter γ with a resolution of 10-100 micro-arcseconds. To perform this task, the code solves a system of linear equations with the iterative Least Squares (LSQR) algorithm, where the coefficient matrix is large (10-50 TB) and sparse and the iterations stop when convergence is reached in the least squares sense. The two matrix-by-vector products performed at each LSQR step were GPU-ported, firstly with OpenACC and then with CUDA, resulting in a 1.5x and 14x speedup, respectively, over an original code version entirely parallelized on the CPU with MPI + OpenMP. The CUDA code was further optimized and then ported with programming frameworks portable across different GPU architectures, obtaining a further 2x acceleration factor. One critical section of the code consists in the computation of covariances, whose total number is N unk × (N unk - 1)/2 and occupy 1 EB, being N unk5 × 108 the total number of unknowns. This "Big Data" issue cannot be faced with standard approaches: we defined an I/O-based pipeline made of two concurrently launched jobs, where one job, i.e., the LSQR, writes the files and the second job reads them, iteratively computes the covariances and deletes them. The pipeline does not present significant bottlenecks until a number of covariances elements equal to 8 × 106. The code currently runs in production on Leonardo CINECA infrastructure.

0

Turn this paper into a full lesson

ArcXiv compiles a staged curriculum from this paper: 8-12 lessons across beginner → advanced, synthesised section guides, visuals, flashcards, a quiz, exercises, and on-demand deep dives per section. Grounded in the abstract, never invented.

Discussion (0)

Sign in to join the discussion.

Loading comments…