Towards supporting composability of directive-based programming models for heterogeneous computing

Current trends in High Performance Computing suggest a significant shift towards heterogeneous architectures, utilising GPUs and other accelerators for their combination of computation capacity and power efficiency. Therefore, programming heterogeneous applications becomes increasingly relevant. How...

Descripción completa

Detalles Bibliográficos
Autor: Korakitis, Orestis
Tipo de recurso: tesis de maestría
Fecha de publicación:2020
País:España
Institución:Universitat Politècnica de Catalunya (UPC)
Repositorio:UPCommons. Portal del coneixement obert de la UPC
Idioma:inglés
OAI Identifier:oai:upcommons.upc.edu:2117/335903
Acceso en línea:https://hdl.handle.net/2117/335903
Access Level:acceso abierto
Palabra clave:Parallel programming (Computer science)
High performance computing
programming
models
composability
interoperability
HPC
heterogeneous
runtime
systems
task
parallelism
GPU
OpenACC
OmpSs-2
programmability
task-parallelism
data-parallelism
Programació en paral·lel (Informàtica)
Càlcul intensiu (Informàtica)
Àrees temàtiques de la UPC::Informàtica
Descripción
Sumario:Current trends in High Performance Computing suggest a significant shift towards heterogeneous architectures, utilising GPUs and other accelerators for their combination of computation capacity and power efficiency. Therefore, programming heterogeneous applications becomes increasingly relevant. However, the programming models for accelerators may present challenges that render the development process difficult and require extra effort from developers to handle tha parallelisation issues. OpenACC is a directive-based programming model aiming to facilitate the development of heterogeneous applications, abstracting the accelerator specific details from the programmer. OmpSs-2 is a directive-based, task parallel programming model, designed to ease the development of parallel programs. It is also extendable, in order to support heterogeneity. This work explores the composability of the two programming models, proposes and implements a new feature in the OmpSs-2 model, supporting hybrid OmpSs-2 + OpenACC programs. The two models act complementary to each other, with OmpSs-2 providing task-parallelism and OpenACC handling data-parallelism. Both being directive-based, they present the potential to provide a consistent, flexible and productive parallel programming framework when combined. The resulting new feature has been part of the latest OmpSs-2 release.