Porting and Accelerating LSQR-based Applications with OpenACC
The Gaia mission is an extraordinarily large project launched by the European Space Agency (ESA) in 2013 to create the most precise 3D map of the Milky Way, describing the position, motion, and properties of nearly two billion objects. The Gaia Astrometric Verification Unit–Global Sphere Reconstruction (AVU–GSR) Parallel Solver derives the positions and proper motions of primary stars in the Milky Way observed with the Gaia satellite.
To map the positions and motion of the stars with the required accuracy, the researchers have to manipulate the data at the scale of 10-100 TB. Initially optimized and parallelized on CPUs with MPI and OpenMP, the solver still took the research team 7 days to compute the key parameters.
2021 was a turning point for the solver when it was brought to the CINECA Open Hackathon to test the feasibility of porting this code to a GPU environment. By properly replacing OpenMP directives with OpenACC, the team optimized the code to run 1.5 times faster on GPUs.
“During this hackathon, we had the opportunity not only to get familiar with GPU programming and port the existing application to GPUs, but also to share the knowledge with other researchers and draw inspiration from a variety of domains and techniques,” shares Dr. Valentina Cesare from the Osservatorio Astrofisico di Catania, research for the Gaia Mission, part of the Centro Nazionale di Ricerca in HPC, Big Data, and Quantum Computing.
Watch Dr. Cesare as she traces the success of porting the Gaia mission’s code to GPUs, achieving a 14X speed up, compared to fully parallelized CPU implementation.