P38 - Loki v0.1.1: A Source-To-Source Translation Tool for Numerical Weather Prediction Codes and More
DescriptionAll known or presumed candidates for exascale supercomputers will feature novel computing hardware or heterogeneous architectures, with GPUs currently being a cornerstone of this development. Using these machines efficiently with today's numerical weather prediction (NWP) codes requires adapting large code bases to new programming paradigms and applying architecture specific optimizations. Encoding all these optimizations within a single code base is infeasible. Source-to-source translation offers the possibility to use existing code as-is and apply the necessary transformations and hardware-specific optimizations. To that end, we present Loki, a Python tool purpose built for ECMWF’s Integrated Forecasting System (IFS) that offers automatic source-to-source translation capabilities based on compiler technology to target a broad range of programming paradigms. Following the recent open-source release of version 0.1.1, Loki is available on GitHub and ready for testing by the weather and climate community and beyond. It offers an API to encode custom transformations, allowing for expert-guided code translation. It supports multiple Fortran front ends, and can output Fortran, C, Python and now also CUDA Fortran. In this poster, we highlight Loki’s key features, and present a performance comparison between auto-translated code and manually optimized variants.
TimeTuesday, June 2710:09 - 10:10 CEST