Preparing Applications for Aurora: OpenACC to OpenMP Migration Tool

Harald Servat and Giacomo Rossi, Intel
OpenACC to OpenMP Migration Tool

OpenACC to OpenMP Migration Tool

In this session, we will present an OpenACC to OpenMP migration tool that can be used to prepare applications for ALCF’s upcoming Aurora supercomputer. OpenACC and OpenMP are two language programming standards for parallel computing that take advantage of hardware accelerators. Both languages rely on compiler directives and additional functions to accelerate the applications. Despite their similarities, there are fundamental differences between the two, not only related to the semantics but also on the hardware supported.

The migraton tool scans the application source-code (either in C or Fortran) for OpenACC-related constructs and suggests OpenMP constructs that are semantically equivalent whenever possible.

About the Speakers

Harald Servat (harald.servat (at) is an HPC Software Engineer at Intel Corporation working on code modernization topics for next-generation HPC systems. Before that, he was the maintainer of the instrumentation package for the instrumentation library of the BSC performance tools. Harald received his Ph.D. for creating a tool that provides instantaneous metrics by combining coarse-grain instrumentation with fine-grain sampling. The tool helped pointing out the nature of the performance bottlenecks and their location in the application code.

Giacomo Rossi (giacomo.rossi (at) is an Application Engineer from Rome, Italy, with an MS in Space Engineering and a PhD in Aeronautic and Space Technology. After a PostDoc at Sapienza University of Rome, Giacomo joined Intel in 2018. His background is mainly related to CFD, with his Master Thesis, PhD and PostDoc focusing on developing numerical codes and flow field analysis of high temperature, high speed, unsteady and reactive multi-phase flows, mainly related to internal and external gas-dynamics of Solid Rocket Motors. Once at Intel, Giacomo began to work on Quantum Espresso, introducing OpenMP tasks in FFTXlib first and porting the code to Intel GPUs via OpenMP later. He also works with CERFACS and has developed a library for OpenMP data management on the device from Fortran. Although originally from Rome, he is currently based in Bologna, as he serves as the Application Engineer assigned by Intel to CINECA, the Italian Supercomputing Center. He has worked with CINECA on OpenFOAM and adding external library support, and currently, assists with Intel software and hardware, suggesting optimization on their flagship codes and helping them to provide support to the EUROfusion community.