Heterogeneous programming using OpenMP and CUDA/HIP for hybrid CPU-GPU scientific applications

Hybrid computer systems combine compute units (CUs) of different nature like CPUs, GPUs and FPGAs. Simultaneously exploiting the computing power of these CUs requires a careful decomposition of the applications into balanced parallel tasks according to both the performance of each CU type and the co...

Full description

Bibliographic Details
Authors: González Tallada, Marc|||0000-0002-3780-1106, Morancho Llena, Enrique|||0000-0003-2403-8145
Format: article
Publication Date:2023
Country:España
Institution:Universitat Politècnica de Catalunya (UPC)
Repository:UPCommons. Portal del coneixement obert de la UPC
Language:English
OAI Identifier:oai:upcommons.upc.edu:2117/395515
Online Access:https://hdl.handle.net/2117/395515
https://dx.doi.org/10.1177/10943420231188079
Access Level:Open access
Keyword:High performance computing
Graphics processing units
Application program interfaces (Computer software)
Heterogeneous programming
Hybrid CPU-GPU
OpenMP
CUDA
HIP
Càlcul intensiu (Informàtica)
Unitats de processament gràfic
Interfícies de programació d'aplicacions (Programari)
Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors
id ES_a6eb027c71a762a5d9b2a3a3eca9e5ea
oai_identifier_str oai:upcommons.upc.edu:2117/395515
network_acronym_str ES
network_name_str España
repository_id_str
spelling Heterogeneous programming using OpenMP and CUDA/HIP for hybrid CPU-GPU scientific applicationsGonzález Tallada, Marc|||0000-0002-3780-1106Morancho Llena, Enrique|||0000-0003-2403-8145High performance computingGraphics processing unitsApplication program interfaces (Computer software)Heterogeneous programmingHybrid CPU-GPUOpenMPCUDAHIPCàlcul intensiu (Informàtica)Unitats de processament gràficInterfícies de programació d'aplicacions (Programari)Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadorsHybrid computer systems combine compute units (CUs) of different nature like CPUs, GPUs and FPGAs. Simultaneously exploiting the computing power of these CUs requires a careful decomposition of the applications into balanced parallel tasks according to both the performance of each CU type and the communication costs among them. This paper describes the design and implementation of runtime support for OpenMP hybrid GPU-CPU applications, when mixed with GPU-oriented programming models (e.g. CUDA/HIP). The paper describes the case for a hybrid multi-level parallelization of the NPB-MZ benchmark suite. The implementation exploits both coarse-grain and fine-grain parallelism, mapped to compute units of different nature (GPUs and CPUs). The paper describes the implementation of runtime support to bridge OpenMP and HIP, introducing the abstractions of Computing Unit and Data Placement. We compare hybrid and non-hybrid executions under state-of-the-art schedulers for OpenMP: static and dynamic task schedulings. Then, we improve the set of schedulers with two additional variants: a memorizing-dynamic task scheduling and a profile-based static task scheduling. On a computing node composed of one AMD EPYC 7742 @ 2.250 GHz (64 cores and 2 threads/core, totalling 128 threads per node) and 2 × GPU AMD Radeon Instinct MI50 with 32 GB, hybrid executions present speedups from 1.10× up to 3.5× with respect to a non-hybrid GPU implementation, depending on the number of activated CUs.This work was supported by the Spanish Ministry of Science and Technology (PID2019-107255GB).Peer ReviewedSAGE publishing20232023-01-0120232023-10-30journal articlehttp://purl.org/coar/resource_type/c_6501AMhttp://purl.org/coar/version/c_ab4af688f83e57aainfo:eu-repo/semantics/articleapplication/pdfhttps://hdl.handle.net/2117/395515https://dx.doi.org/10.1177/10943420231188079reponame:UPCommons. Portal del coneixement obert de la UPCinstname:Universitat Politècnica de Catalunya (UPC)InglésengAgencia Estatal de Investigación http://doi.org/10.13039/501100011033 Plan Estatal de Investigación Científica y Técnica y de Innovación 2017-2020 PID2019-107255GB-C22 UPC-COMPUTACION DE ALTAS PRESTACIONES VIIIopen accesshttp://purl.org/coar/access_right/c_abf2info:eu-repo/semantics/openAccessoai:upcommons.upc.edu:2117/3955152026-05-27T15:37:01Z
dc.title.none.fl_str_mv Heterogeneous programming using OpenMP and CUDA/HIP for hybrid CPU-GPU scientific applications
title Heterogeneous programming using OpenMP and CUDA/HIP for hybrid CPU-GPU scientific applications
spellingShingle Heterogeneous programming using OpenMP and CUDA/HIP for hybrid CPU-GPU scientific applications
González Tallada, Marc|||0000-0002-3780-1106
High performance computing
Graphics processing units
Application program interfaces (Computer software)
Heterogeneous programming
Hybrid CPU-GPU
OpenMP
CUDA
HIP
Càlcul intensiu (Informàtica)
Unitats de processament gràfic
Interfícies de programació d'aplicacions (Programari)
Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors
title_short Heterogeneous programming using OpenMP and CUDA/HIP for hybrid CPU-GPU scientific applications
title_full Heterogeneous programming using OpenMP and CUDA/HIP for hybrid CPU-GPU scientific applications
title_fullStr Heterogeneous programming using OpenMP and CUDA/HIP for hybrid CPU-GPU scientific applications
title_full_unstemmed Heterogeneous programming using OpenMP and CUDA/HIP for hybrid CPU-GPU scientific applications
title_sort Heterogeneous programming using OpenMP and CUDA/HIP for hybrid CPU-GPU scientific applications
dc.creator.none.fl_str_mv González Tallada, Marc|||0000-0002-3780-1106
Morancho Llena, Enrique|||0000-0003-2403-8145
author González Tallada, Marc|||0000-0002-3780-1106
author_facet González Tallada, Marc|||0000-0002-3780-1106
Morancho Llena, Enrique|||0000-0003-2403-8145
author_role author
author2 Morancho Llena, Enrique|||0000-0003-2403-8145
author2_role author
dc.subject.none.fl_str_mv High performance computing
Graphics processing units
Application program interfaces (Computer software)
Heterogeneous programming
Hybrid CPU-GPU
OpenMP
CUDA
HIP
Càlcul intensiu (Informàtica)
Unitats de processament gràfic
Interfícies de programació d'aplicacions (Programari)
Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors
topic High performance computing
Graphics processing units
Application program interfaces (Computer software)
Heterogeneous programming
Hybrid CPU-GPU
OpenMP
CUDA
HIP
Càlcul intensiu (Informàtica)
Unitats de processament gràfic
Interfícies de programació d'aplicacions (Programari)
Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors
description Hybrid computer systems combine compute units (CUs) of different nature like CPUs, GPUs and FPGAs. Simultaneously exploiting the computing power of these CUs requires a careful decomposition of the applications into balanced parallel tasks according to both the performance of each CU type and the communication costs among them. This paper describes the design and implementation of runtime support for OpenMP hybrid GPU-CPU applications, when mixed with GPU-oriented programming models (e.g. CUDA/HIP). The paper describes the case for a hybrid multi-level parallelization of the NPB-MZ benchmark suite. The implementation exploits both coarse-grain and fine-grain parallelism, mapped to compute units of different nature (GPUs and CPUs). The paper describes the implementation of runtime support to bridge OpenMP and HIP, introducing the abstractions of Computing Unit and Data Placement. We compare hybrid and non-hybrid executions under state-of-the-art schedulers for OpenMP: static and dynamic task schedulings. Then, we improve the set of schedulers with two additional variants: a memorizing-dynamic task scheduling and a profile-based static task scheduling. On a computing node composed of one AMD EPYC 7742 @ 2.250 GHz (64 cores and 2 threads/core, totalling 128 threads per node) and 2 × GPU AMD Radeon Instinct MI50 with 32 GB, hybrid executions present speedups from 1.10× up to 3.5× with respect to a non-hybrid GPU implementation, depending on the number of activated CUs.
publishDate 2023
dc.date.none.fl_str_mv 2023
2023-01-01
2023
2023-10-30
dc.type.none.fl_str_mv journal article
http://purl.org/coar/resource_type/c_6501
AM
http://purl.org/coar/version/c_ab4af688f83e57aa
dc.type.openaire.fl_str_mv info:eu-repo/semantics/article
format article
dc.identifier.none.fl_str_mv https://hdl.handle.net/2117/395515
https://dx.doi.org/10.1177/10943420231188079
url https://hdl.handle.net/2117/395515
https://dx.doi.org/10.1177/10943420231188079
dc.language.none.fl_str_mv Inglés
eng
language_invalid_str_mv Inglés
language eng
dc.relation.none.fl_str_mv Agencia Estatal de Investigación http://doi.org/10.13039/501100011033 Plan Estatal de Investigación Científica y Técnica y de Innovación 2017-2020 PID2019-107255GB-C22 UPC-COMPUTACION DE ALTAS PRESTACIONES VIII
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 SAGE publishing
publisher.none.fl_str_mv SAGE publishing
dc.source.none.fl_str_mv reponame:UPCommons. Portal del coneixement obert de la UPC
instname:Universitat Politècnica de Catalunya (UPC)
instname_str Universitat Politècnica de Catalunya (UPC)
reponame_str UPCommons. Portal del coneixement obert de la UPC
collection UPCommons. Portal del coneixement obert de la UPC
repository.name.fl_str_mv
repository.mail.fl_str_mv
_version_ 1869415736495046656
score 15,300719