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...
| Autor: | |
|---|---|
| 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 |
| 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. |
|---|