HDOT — An approach towards productive programming of hybrid applications

bulk synchronous parallel (BSP) communication model can hinder performance increases. This is due to the complexity to handle load imbalances, to reduce serialisation imposed by blocking communication patterns, to overlap communication with computation and, finally, to deal with increasing memory ov...

Descripción completa

Detalles Bibliográficos
Autores: Ciesko, Jan, Martínez Ferrer, Pedro José|||0000-0002-6097-6676, Peñacoba Veigas, Raúl, Teruel García, Xavier, Beltran Querol, Vicenç
Tipo de recurso: artículo
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/331394
Acceso en línea:https://hdl.handle.net/2117/331394
https://dx.doi.org/10.1016/j.jpdc.2019.11.003
Access Level:acceso abierto
Palabra clave:High performance computing
Distributed operating systems (Computers)
Parallel programming (Computer science)
Parallel programming
Hybrid programming
MPI
OpenMP
OmpSs-2
Programació en paral·lel (Informàtica)
OpenMP (Interfície de programació d'aplicacions)
Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors::Arquitectures paral·leles
Descripción
Sumario:bulk synchronous parallel (BSP) communication model can hinder performance increases. This is due to the complexity to handle load imbalances, to reduce serialisation imposed by blocking communication patterns, to overlap communication with computation and, finally, to deal with increasing memory overheads. The MPI specification provides advanced features such as non-blocking calls or shared memory to mitigate some of these factors. However, applying these features efficiently usually requires significant changes on the application structure. Task parallel programming models are being developed as a means of mitigating the abovementioned issues but without requiring extensive changes on the application code. In this work, we present a methodology to develop hybrid applications based on tasks called hierarchical domain over-decomposition with tasking (HDOT). This methodology overcomes most of the issues found on MPI-only and traditional hybrid MPI+OpenMP applications. However, by emphasising the reuse of data partition schemes from process-level and applying them to task-level, it enables a natural coexistence between MPI and shared-memory programming models. The proposed methodology shows promising results in terms of programmability and performance measured on a set of applications.