This project aims to develop High-performance Electromagnetism codes for heterogeneous systems. One part of this project is to develop OpenMP and GPU support for the finite-difference time-domain code MEEP (https://github.com/NanoComp/meep). MEEP is a distributed FDTD code developed at MIT for solving maxwell's equations, with applications in antenna design, photonics, and electrical component design. MEEP is a highly used C++ code designed with MPI for massively parallel systems but lacks the capability to run on modern GPU systems. We aim to implement GPU support by using OpenMP offload but also improve the CPU hybrid MPI+OpenMP parallelization. We have performed initial scaling tests, profiling, and tracing showing potential for improvement.
The Second approach is to use DaCe which is a high-level programming library for portable high-performance code with its own transformable intermediate representation and code generation. We will evaluate the code generation of dace for AMD GPUs by implementing an FDTD algorithm to be run on Dardel GPU.