Enhance – Changing Programming Paradigms to Increase Accelerator Utilization
André Brinkmann, Johannes Gutenberg-Universität Mainz
This email address is being protected from spambots. You need JavaScript enabled to view it.
(slides)
Heterogeneous systems contain multiple compute components like multi-core processors or graphics processing units (GPUs). These allow a high level of parallelism and thus can lead to improved performance for a wide range of applications. Combining diverse architectures within a single system allows for selecting the optimal hardware architecture for a given task, running tasks in parallel on different combinations of architectures, or even sharing the architectures among several tasks.
Employing such hardware architectures raises several challenges to be approached within the BMBF-funded ENHANCE project. Proprietary programming languages for specific accelerators are one of the major obstacles for many developers. ENHANCE addresses this by automated source code analysis and source-2-source translation towards targeted hardware architectures. Furthermore, performing scheduling decisions for available tasks poses an additional challenge. ENHANCE defines a programming model and a scheduling environment that allows sharing of available resources among all running tasks by extending the current Linux scheduler to support time-sharing on accelerators.
Both the automatic parallelization and the scheduling rely on a novel integrated performance model. The ENHANCE framework will be evaluated by employing it to applications of the industrial partners, which cover a wide range of scientific and engineering fields including bio-informatics, automotive computing, pollutant dispersion, and thermodynamics.