Towards accessible software engineering for heterogeneous hardware
Federico Ciccozzi · 2024
Scientists without specific software programming skills are increasingly required to express their problems in terms of software to exploit the computational power of heterogeneous parallel hardware. Producing software for this hardware is very cumbersome for the experienced programmer; for the novice, it is just impracticable. We aim to grant scientists across disciplines access to heterogeneous hardware via a model-driven holistic approach. Via proper software modelling, we suppress the need to write resource-specific software functions and complex offloading and communication code; we will do this by devising a comprehensive modelling language that implicitly underpins multiple execution semantics (sequential, data-/task-parallel). Current code generators neglect model semantics while compilers expect in input too detailed software descriptions; we will devise an innovative semantics-aware model compiler with automatic parallelization. Overall, we aim at giving researchers and practitioners better tools to focus more on the problem to solve than learning how to master complex techniques and languages to describe it in terms of software. Moreover, the learning curve and technological hindrances for beginners approaching hybrid software will be pushed down dramatically.