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