Analysis of threading libraries for high performance computing

With the appearance of multi-many core machines, applications and runtime systems evolved in order to exploit the new on-node concurrency that brought new software paradigms. POSIX threads (Pthreads) was widely-adopted for that purpose and it remains as the most used threading solution in current ha...

Descripción completa

Detalles Bibliográficos
Autores: Castello, Adrián, Mayo, Rafael, Sangmin, Seo, Pavan, Balaji, Quintana Ortí, Enrique Salvador, Peña, Antonio|||0000-0002-3575-4617
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/187368
Acceso en línea:https://hdl.handle.net/2117/187368
https://dx.doi.org/10.1109/TC.2020.2970706
Access Level:acceso abierto
Palabra clave:Software engineering
Computers
OpenMP (Application program interface)
Threads (Computer programs)
Lightweight Threads
OpenMP
GLT
POSIX Threads
Programming Models
Enginyeria de programari
Ordinadors
Àrees temàtiques de la UPC::Informàtica
Descripción
Sumario:With the appearance of multi-many core machines, applications and runtime systems evolved in order to exploit the new on-node concurrency that brought new software paradigms. POSIX threads (Pthreads) was widely-adopted for that purpose and it remains as the most used threading solution in current hardware. Lightweight thread (LWT) libraries emerged offering lighter mechanisms to tackle the massive concurrency that current hardware is offering. In this paper, we analyze in detail the most representative threading libraries including Pthread- and LWT-based solutions. In addition, to examine the suitability of LWTs for different use cases, we develop a set of microbenchmarks consisting of commonly found OpenMP patterns in current parallel codes, and we compare the results using threading libraries and OpenMP implementations. Moreover, we study the semantics offered by threading libraries in order to expose the similarities among different LWT application programming interfaces and their advantages over Pthreads. This study reveals that LWT libraries outperform solutions based on operating system threads in cases where tasks and nested parallelism are required.