A Hardware/Software Stack for Heterogeneous Systems

Research output: Contribution to journalResearch articleContributedpeer-review



Plenty of novel emerging technologies are being proposed and evaluated today, mostly at the device and circuit levels. It is unclear what the impact of different new technologies at the system level will be. What is clear, however, is that new technologies will make their way into systems and will increase the already high complexity of heterogeneous parallel computing platforms, making it ever so difficult to program them. This paper discusses a programming stack for heterogeneous systems that combines and adapts well-understood principles from different areas, including capability-based operating systems, adaptive application runtimes, dataflow programming models, and model checking. We argue why we think that these principles built into the stack and the interfaces among the layers will also be applicable to future systems that integrate heterogeneous technologies. The programming stack is evaluated on a tiled heterogeneous multicore.


Original languageEnglish
Article number3
Pages (from-to)243-259
Number of pages17
JournalIEEE Transactions on Multi-Scale Computing Systems
Issue number3
Publication statusPublished - 2018

External IDs

Scopus 85033691216
dblp journals/tmscs/CastrillonLKVAA18
ORCID /0000-0002-5007-445X/work/141545501
ORCID /0000-0002-5321-9343/work/142236675
ORCID /0000-0003-3137-0648/work/142238850
ORCID /0000-0002-4049-221X/work/142247840
ORCID /0000-0001-8107-2775/work/142253386


Research priority areas of TU Dresden


  • Hardware, Model checking, Programming, Runtime, cfaed, cross layer design, emerging technologies, heterogeneous systems, post-CMOS, programming stack, Integrated circuit interconnections, Memory management, hardware/software abstractions, orchestration