Heterogeneous architectures have become commonplace in
modern HPC systems. Eight of the world’s top ten supercomputers
have accelerators, and the up-and-coming MareNostrum
5 will feature accelerated partitions. However, programming
these heterogeneous systems is difficult, as users have to insert
data transfer operations, kernel launches and synchronizations
manually from the host system to its accelerators. This is even
more challenging in distributed heterogeneous systems, as programmers
have to coordinate the previous activities with internode
communications between hosts. This work presents the
Task-Aware Ascend Computing Language (TACL), which interoperates
with the OmpSs-2 programming model and greatly
simplifies kernel execution, data transfers and synchronizations
between host and accelerators by naturally leveraging the dataflow
execution model of OmpSs-2