Design and development of support for GPU unified memory in OMPSS

Heterogeneous computing has become prevalent as part of High Performance Computing in the last decade, with asynchronous devices such as Graphics Processing Units constantly evolving. As HPC becomes more specialized and heterogeneous devices become more advanced and implement new features, a challen...

Descripción completa

Detalles Bibliográficos
Autor: Rodríguez Soto, Aimar|||0000-0001-6719-8072
Tipo de recurso: tesis de maestría
Fecha de publicación:2017
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/112437
Acceso en línea:https://hdl.handle.net/2117/112437
Access Level:acceso abierto
Palabra clave:Parallel programming (Computer science)
Càlcul intensiu (Informàtica)
GPGPU
OmpSs
Models de programació
Computació d'altes prestacions
CUDA
Nanos
Programming Models
Programació en paral·lel (Informàtica)
High performance computing
Àrees temàtiques de la UPC::Informàtica
Descripción
Sumario:Heterogeneous computing has become prevalent as part of High Performance Computing in the last decade, with asynchronous devices such as Graphics Processing Units constantly evolving. As HPC becomes more specialized and heterogeneous devices become more advanced and implement new features, a challenge is presented to traditional programming models. Programming models and tools needs to adapt in order to keep a competitive performance. Due to this, a new version of the OmpSs programming model is being developed, taking into account the nuances of newer technologies and architectures. In this context, a need to develop support for heterogeneous devices for the new version of the model arises. This project presents the development and evaluation of support for CUDA enabled devices on the Nanos6 runtime being developed for the OmpSs-2 programming model. The design choices are analyzed in the context of modern GPU programming and architectures, and the performance and execution of a series of benchmarks is analyzed to understand the performance characteristics of the runtime.