Running large-scale simulations is a crucial aspect of modern scientific research, yet it often requires a vast amount of computational resources. As we approach the era of exascale computing, which will be marked by the introduction of highly performing supercomputers, researchers have been trying to develop new architectures and codes to meet the huge computational requirements of our times. An important property to consider when developing codes for the exascale computing era is performance portability, which prevents the repeated, non-trivial refactoring of a code for different architectures.
* This article was originally published here