  The Gaia Astrometric Verification Unit-Global Sphere Reconstruction (AVU-GSR)
Parallel Solver aims to find the astrometric parameters for $\sim$10$^8$ stars
in the Milky Way, the attitude and the instrumental specifications of the Gaia
satellite, and the global parameter $\gamma$ of the post Newtonian formalism.
The code iteratively solves a system of linear equations, $\mathbf{A} \times
\vec{x} = \vec{b}$, where the coefficient matrix $\mathbf{A}$ is large
($\sim$$10^{11} \times 10^8$ elements) and sparse. To solve this system of
equations, the code exploits a hybrid implementation of the iterative PC-LSQR
algorithm, where the computation related to different horizontal portions of
the coefficient matrix is assigned to separate MPI processes. In the original
code, each matrix portion is further parallelized over the OpenMP threads. To
further improve the code performance, we ported the application to the GPU,
replacing the OpenMP parallelization language with OpenACC. In this port,
$\sim$95% of the data is copied from the host to the device at the beginning of
the entire cycle of iterations, making the code $compute$ $bound$ rather than
$data$$-$$transfer$ $bound$. The OpenACC code presents a speedup of $\sim$1.5
over the OpenMP version but further optimizations are in progress to obtain
higher gains. The code runs on multiple GPUs and it was tested on the CINECA
supercomputer Marconi100, in anticipation of a port to the pre-exascale system
Leonardo, that will be installed at CINECA in 2022.
