Role-shifting threads: Increasing OpenMP malleability to address load imbalance at MPI and OpenMP

This paper presents the evolution of the free agent threads for OpenMP to the new role-shifting threads model and their integration with the Dynamic Load Balancing (DLB) library. We demonstrate how free agent threads can improve resource utilization in OpenMP applications with load imbalance in thei...

Descripción completa

Detalles Bibliográficos
Autores: Criado Ledesma, Joel, López Herrero, Víctor, Vinyals Ylla Català, Joan, Ramirez Miranda, Guillem, Teruel García, Xavier, Garcia Gasulla, Marta|||0000-0003-3682-9905
Tipo de recurso: artículo
Fecha de publicación:2023
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/396655
Acceso en línea:https://hdl.handle.net/2117/396655
Access Level:acceso abierto
Palabra clave:OpenMP (Application program interface)
Exascale computing
Dynamic load balancing
Free agents
OpenMP
Tasking
Malleability
Supercomputadors
Àrees temàtiques de la UPC::Informàtica::Enginyeria del software
Descripción
Sumario:This paper presents the evolution of the free agent threads for OpenMP to the new role-shifting threads model and their integration with the Dynamic Load Balancing (DLB) library. We demonstrate how free agent threads can improve resource utilization in OpenMP applications with load imbalance in their nested parallel regions. We also demonstrate how DLB efficiently manages the malleability exposed by the role-shifting threads to address load imbalance issues. We use three real-world scientific applications, one of them to demonstrate that free agents alone can improve the OpenMP model without external tools, and two other MPI+OpenMP applications, one of them with a coupling case, to illustrate the potential of the free agent threads’ malleability with an external resource manager to increase the efficiency of the system. In addition, we demonstrate that the new implementation is more usable than the former one, letting the runtime system automatically make decisions that were made by the programmer previously. All software is released open-source.