Abstract
Cloud warehouses are increasingly adopting CPU–GPU collaborative systems to leverage diverse types and levels of parallelism in applications. These environments are shared among multiple clients to achieve maximum resource utilization with energyf efficiency and scalability. While OpenCL simplifies resource provisioning in such heterogeneous systems, ensuring the effective distribution of tasks remains challenging as CPU–GPU available architectures and workload characteristics can vary significantly. This study addresses the challenge of efficiently provisioning resources in OpenCL-based CPU–GPU cloud environments. To tackle this challenge, we introduce MultiProvision, a Design Space Exploration tool for multi-tenant resource provisioning in CPU–GPU environments. MultiProvision facilitates the identification of the most suitable provisioning strategy for a given workload and architecture scenario in a transparent manner. Through comprehensive evaluations encompassing various architecture combinations and workloads, we demonstrate that the choice of the most efficient provisioning strategy depends on the target architecture, workload characteristics, and optimization objectives, such as makespan or energy. We show that the appropriate strategy can achieve remarkable gains of up to 13.15\(\times \) in makespan and 4.52\(\times \) in energy compared to a GPU-only execution.
Similar content being viewed by others
Availability of data and materials
The data that support the findings of this study are available from the corresponding authors upon reasonable request.
Notes
The repository is available on GitHub under the following link: https://github.com/MultiProvision/MultiProvision.
References
Campa S, Danelutto M, Goli M, González-Vélez H, Popescu AM, Torquati M (2014) Parallel patterns for heterogeneous CPU/GPU architectures: structured parallelism from cluster to cloud. Future Gener Comput Syst 37:354–366
Ravi VT, Becchi M, Jiang W, Agrawal G, Chakradhar S (2013) Scheduling concurrent applications on a cluster of CPU–GPU nodes. Future Gener Comput Syst 29(8):2262–2271
Khronos® OpenCL Working Group (2021) The OpenCL\(^{{\rm TM}}\) C Specification
Weinman J (2011) Cloud computing is np-complete. In: Proceedings of the technical symposium ITU Telecom World, pp 75–81
Dávila Guzmán MA, Nozal R et al (2019) Cooperative CPU, GPU, and FPGA heterogeneous execution with EngineCL. J Supercomput 75(3):1732–1746
Sun E, Schaa D, Bagley R, Rubin N, Kaeli D (2012) Enabling task-level scheduling on heterogeneous platforms. In: GPGPU-5. ACM Press, pp 84–93
Grewe D, O’Boyle MFP (2011) A static task partitioning approach for heterogeneous systems using OpenCL. In: Knoop J (ed) Compiler construction, lecture notes in computer science, vol 6601. Springer, Berlin, pp 286–305
Wen Y, Wang Z, O’Boyle MFP (2014) Smart multi-task scheduling for OpenCL programs on CPU/GPU heterogeneous platforms. In: HiPC. IEEE, pp 1–10
Riebler H, Vaz G, Kenter T, Plessl C (2019) Transparent acceleration for heterogeneous platforms with compilation to OpenCL. ACM Trans Archit Code Optim 16(2):1–26
Moreń K, Göhringer D (2020) Coopcl: cooperative execution of opencl programs on heterogeneous CPU–GPU platforms. In: 2020 28th Euromicro international conference on parallel, distributed and network-based processing (PDP). IEEE, pp 224–231
Ahmed U, Lin JC-W, Srivastava G, Aleem M (2021) A load balance multi-scheduling model for opencl kernel tasks in an integrated cluster. Soft Comput 25(1):407–420
Knorst T, Jordan MG, Lorenzen AF, Rutzig MB, Beck ACS (2021) Etcg: energy-aware CPU thread throttling for CPU–GPU collaborative environments. In: SBCCI. IEEE, pp 1–6
Kim J, Kim H, Lee JH, Lee J (2011) Achieving a single compute device image in OpenCL for multiple GPUs. In: PPoPP, p 11
Taylor B, Marco VS, Wang Z (2017) Adaptive optimization for OpenCL programs on embedded heterogeneous systems. In: Proceedings of the 18th ACM SIGPLAN/SIGBED. ACM, pp 11–20
Massari G, Caffarri C, Bellasi P, Fornaciari W (2014) Extending a run-time resource management framework to support OpenCL and heterogeneous systems. In: PARMA-DITAM’14. ACM Press, pp 21–26
vikancha MSFT, Azure VM sizes—GPU—Azure Virtual Machines (online). https://docs.microsoft.com/en-us/azure/virtual-machines/sizes-gpu
Amazon EC2 Features—Amazon Web Services (online). https://aws.amazon.com/ec2/features/
Vicenzi JC, Knorst T, Jordan MG, Korol G, Beck ACS, Rutzig MB (2021) Tripp: transparent resource provisioning for multi-tenant CPU–GPU based cloud environments. In: 2021 XI Brazilian symposium on computing systems engineering (SBESC). IEEE, pp 1–8
NVIDIA (2012) Tesla K20 GPU Active Accelerator Board Specification, 3rd ed. NVIDIA Corporation, US. https://www.nvidia.com/content/PDF/kepler/tesla-k20-active-bd-06499-001-v03.pdf
NVIDIA (2015) Tesla K80 GPU Active Accelerator Board Specification, 5th ed. NVIDIA Corporation, US. https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Center/tesla-product-literature/Tesla-K80-BoardSpec-07317-001-v05.pdf
NVIDIA (2021) NVIDIA GEFORCE GTX\(^{{\rm TM}}\) 1660 Ti 6GB. NVIDIA Corporation. https://www.nvidia.com/pt-br/geforce/gaming-laptops/gtx-1660-ti/
NVIDIA (2018) NVIDIA GEFORCE GTX 1080 Ti 11GB. NVIDIA Corporation. https://www.nvidia.com/pt-br/geforce/products/10series/geforce-gtx-1080-ti/
NVIDIA (2022) NVIDIA GEFORCE GTX 4070 Ti 12GB. NVIDIA Corporation. https://www.nvidia.com/pt-br/geforce/graphics-cards/40-series/rtx-4070-4070ti/
Grauer-Gray S, Xu L, Searles R, Ayalasomayajula S, Cavazos J (2012) Auto-tuning a high-level language targeted to GPU codes. In: InPar. IEEE, pp 1–10 (online). http://ieeexplore.ieee.org/document/6339595/
Stallman RM, Developer Community G (2009) Using the Gnu compiler collection: a Gnu manual for Gcc version 4.3.3. CreateSpace, Scotts Valley
Acknowledgements
This study was financed in part by the Coordenaşão de Aperfeiçoamento de Pessoal de Nível Superior - Brasil (CAPES) - Finance Code 001, São Paulo Research Foundation (FAPESP) Grant #2021/06825-8, FAPERGS, and CNPq.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
The authors have no conflicts of interest to declare that are relevant to the content of this article.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Jordan, M.G., Vicenzi, J.C., Knorst, T. et al. Multiprovision: a Design Space Exploration tool for multi-tenant resource provisioning in CPU–GPU environments. Des Autom Embed Syst 27, 241–273 (2023). https://doi.org/10.1007/s10617-023-09279-3
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-023-09279-3