Metacca: Metaprogramming for Accelerators
Metacca is a research project funded by the German Federal Ministry of Education and Research (BMBF) through a directive for funding for “basic research for HPC software in high-performance computing”. The goal of Metacca is to extend the AnyDSL framework into a homogeneous programming environment for heterogeneous single- and multi-node systems. To this effect, the existing programming language and compiler will be extended by an expressive type system and language features enabling efficient programming of accelerators. Significant aspects of this extension concern the modeling of memory on heterogeneous devices, distribution of data to multiple compute nodes and improving the precision and power of the partial evaluation approach.
Within the project further support for distribution and synchronization for data-parallel programs will be built on top of these language enhancements as a library making use of AnyDSL’s partial evaluation features. Performance models and static analysis tools will be integrated into the AnyDSL tool chain to support development of applications and tuning of parameters. A runtime environment with built-in performance profiling will take care of resource management and system configuration. The resulting framework is evaluated using applications from bioinformatics and ray tracing. The target platforms are single heterogeneous nodes and clusters with several accelerators.
Project website: https://metacca.github.io