User-defined execution relaxations for enhanced programmability in high-performance parallel computing

This thesis proposes the development and implementation of a new programming model basedon execution relaxations, and focused on High-Performance Parallel Computing. Specifically,the main goals of the thesis are:1. Advocate a development methodology in which users define the basic computing units(ta...

Descripción completa

Detalles Bibliográficos
Autor: Rey Villaverde, Andrés Antón
Tipo de recurso: tesis doctoral
Fecha de publicación:2020
País:España
Institución:Universidad Complutense de Madrid (UCM)
Repositorio:Docta Complutense
Idioma:español
OAI Identifier:oai:docta.ucm.es:20.500.14352/11223
Acceso en línea:https://hdl.handle.net/20.500.14352/11223
Access Level:acceso abierto
Palabra clave:004.42.032.24(043.2)
Parallel programming (Computer science)
Programación en paralelo (Informática)
Programación de ordenadores (Informática)
1203.23 Lenguajes de Programación
id ES_87b26c20a85c28173546a030899101f3
oai_identifier_str oai:docta.ucm.es:20.500.14352/11223
network_acronym_str ES
network_name_str España
repository_id_str
spelling User-defined execution relaxations for enhanced programmability in high-performance parallel computingRelajaciones de ejecución definidas por el usuario para la mejora de la programabilidad en computación paralela de altas prestacionesRey Villaverde, Andrés Antón004.42.032.24(043.2)Parallel programming (Computer science)Programación en paralelo (Informática)Programación de ordenadores (Informática)1203.23 Lenguajes de ProgramaciónThis thesis proposes the development and implementation of a new programming model basedon execution relaxations, and focused on High-Performance Parallel Computing. Specifically,the main goals of the thesis are:1. Advocate a development methodology in which users define the basic computing units(tasks), together with a set of relaxations in, possibly, multiple dimensions. These relaxationswill be translated, at execution time, into expanded (and complex) scheduling opportunitiesdepending on the underlying architectural features, yielding improvements in termsof desired output metrics (e.g., performance or energy consumption).2. Abstract away users from the complexity of the underlying heterogeneous hardware, delegatingthe proper exploitation of expanded scheduling choices to a system software component(typically referred as a runtime). This piece of software, armed with knowledge fromstatic architectural characteristics and dynamic status of the hardware at execution time,will exploit those combinations considered optimal among those relaxations proposed bythe user for each task ready for execution.3. Extend this abstraction in order to describe both computing systems, by means of executor/ allocator hierarchies that describe the heterogeneous computing architecture, and applications,in terms of sets of interdependent tasks. In addition, the relations between executorsand tasks are categorized into a new task-executor taxonomy, which motivates ambiguityfreeHPC programming frontends based on the STSE, Single Task - Single Executor classification,distinguished from fully-automated runtime backends.4. Propose a new programming model (STEEL) based on previous ideas, that gathers featuresconsidered to be basic for future task-based programming models, namely: performance,composability, expressivity and hard-to-misuse interfaces.5. Specify an API to support the STEEL programming model, and a runtime implementationleveraging techniques and programming paradigms supported by modern C++, illustratingits flexibility, ease of use and performance impact by means of simple use cases and examples.Hence, the proposed methodology stands for a clear and strict separation of concerns betweenthe involved actors in a parallel executions: user / codes and underlying hardware. This kind ofabstractions allows a delegation of the expert knowledge from the user toward the system software(runtime) in a systematic way, and facilitates the integration of mechanisms to automate optimizations,adapting performance to the specificities of the heterogeneous parallel architecture in whichthe code is instantiated and executed.From this perspective, the thesis designs, implements and validates mechanisms to perform aso-called complexity formalization, classifying many actions that are currently done by the userand building a framework in which these complexities can be delegated to the runtime system. Thedelegation of these decisions is already a step forward to next generation of programming modelsseeking performance, expressivity, programmability and portability...Universidad Complutense de MadridIgual Peña, Francisco DanielPrieto Matías, ManuelUniversidad Complutense de Madrid20202020-10-2820202020-10-28doctoral thesishttp://purl.org/coar/resource_type/c_db06info:eu-repo/semantics/doctoralThesisapplication/pdfhttps://hdl.handle.net/20.500.14352/11223reponame:Docta Complutenseinstname:Universidad Complutense de Madrid (UCM)Españolspaopen accesshttp://purl.org/coar/access_right/c_abf2info:eu-repo/semantics/openAccessoai:docta.ucm.es:20.500.14352/112232026-06-02T12:44:21Z
dc.title.none.fl_str_mv User-defined execution relaxations for enhanced programmability in high-performance parallel computing
Relajaciones de ejecución definidas por el usuario para la mejora de la programabilidad en computación paralela de altas prestaciones
title User-defined execution relaxations for enhanced programmability in high-performance parallel computing
spellingShingle User-defined execution relaxations for enhanced programmability in high-performance parallel computing
Rey Villaverde, Andrés Antón
004.42.032.24(043.2)
Parallel programming (Computer science)
Programación en paralelo (Informática)
Programación de ordenadores (Informática)
1203.23 Lenguajes de Programación
title_short User-defined execution relaxations for enhanced programmability in high-performance parallel computing
title_full User-defined execution relaxations for enhanced programmability in high-performance parallel computing
title_fullStr User-defined execution relaxations for enhanced programmability in high-performance parallel computing
title_full_unstemmed User-defined execution relaxations for enhanced programmability in high-performance parallel computing
title_sort User-defined execution relaxations for enhanced programmability in high-performance parallel computing
dc.creator.none.fl_str_mv Rey Villaverde, Andrés Antón
author Rey Villaverde, Andrés Antón
author_facet Rey Villaverde, Andrés Antón
author_role author
dc.contributor.none.fl_str_mv Igual Peña, Francisco Daniel
Prieto Matías, Manuel
Universidad Complutense de Madrid
dc.subject.none.fl_str_mv 004.42.032.24(043.2)
Parallel programming (Computer science)
Programación en paralelo (Informática)
Programación de ordenadores (Informática)
1203.23 Lenguajes de Programación
topic 004.42.032.24(043.2)
Parallel programming (Computer science)
Programación en paralelo (Informática)
Programación de ordenadores (Informática)
1203.23 Lenguajes de Programación
description This thesis proposes the development and implementation of a new programming model basedon execution relaxations, and focused on High-Performance Parallel Computing. Specifically,the main goals of the thesis are:1. Advocate a development methodology in which users define the basic computing units(tasks), together with a set of relaxations in, possibly, multiple dimensions. These relaxationswill be translated, at execution time, into expanded (and complex) scheduling opportunitiesdepending on the underlying architectural features, yielding improvements in termsof desired output metrics (e.g., performance or energy consumption).2. Abstract away users from the complexity of the underlying heterogeneous hardware, delegatingthe proper exploitation of expanded scheduling choices to a system software component(typically referred as a runtime). This piece of software, armed with knowledge fromstatic architectural characteristics and dynamic status of the hardware at execution time,will exploit those combinations considered optimal among those relaxations proposed bythe user for each task ready for execution.3. Extend this abstraction in order to describe both computing systems, by means of executor/ allocator hierarchies that describe the heterogeneous computing architecture, and applications,in terms of sets of interdependent tasks. In addition, the relations between executorsand tasks are categorized into a new task-executor taxonomy, which motivates ambiguityfreeHPC programming frontends based on the STSE, Single Task - Single Executor classification,distinguished from fully-automated runtime backends.4. Propose a new programming model (STEEL) based on previous ideas, that gathers featuresconsidered to be basic for future task-based programming models, namely: performance,composability, expressivity and hard-to-misuse interfaces.5. Specify an API to support the STEEL programming model, and a runtime implementationleveraging techniques and programming paradigms supported by modern C++, illustratingits flexibility, ease of use and performance impact by means of simple use cases and examples.Hence, the proposed methodology stands for a clear and strict separation of concerns betweenthe involved actors in a parallel executions: user / codes and underlying hardware. This kind ofabstractions allows a delegation of the expert knowledge from the user toward the system software(runtime) in a systematic way, and facilitates the integration of mechanisms to automate optimizations,adapting performance to the specificities of the heterogeneous parallel architecture in whichthe code is instantiated and executed.From this perspective, the thesis designs, implements and validates mechanisms to perform aso-called complexity formalization, classifying many actions that are currently done by the userand building a framework in which these complexities can be delegated to the runtime system. Thedelegation of these decisions is already a step forward to next generation of programming modelsseeking performance, expressivity, programmability and portability...
publishDate 2020
dc.date.none.fl_str_mv 2020
2020-10-28
2020
2020-10-28
dc.type.none.fl_str_mv doctoral thesis
http://purl.org/coar/resource_type/c_db06
dc.type.openaire.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
dc.identifier.none.fl_str_mv https://hdl.handle.net/20.500.14352/11223
url https://hdl.handle.net/20.500.14352/11223
dc.language.none.fl_str_mv Español
spa
language_invalid_str_mv Español
language spa
dc.rights.none.fl_str_mv open access
http://purl.org/coar/access_right/c_abf2
dc.rights.openaire.fl_str_mv info:eu-repo/semantics/openAccess
rights_invalid_str_mv open access
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidad Complutense de Madrid
publisher.none.fl_str_mv Universidad Complutense de Madrid
dc.source.none.fl_str_mv reponame:Docta Complutense
instname:Universidad Complutense de Madrid (UCM)
instname_str Universidad Complutense de Madrid (UCM)
reponame_str Docta Complutense
collection Docta Complutense
repository.name.fl_str_mv
repository.mail.fl_str_mv
_version_ 1869412480866844672
score 15,301603