{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,8,2]],"date-time":"2024-08-02T15:15:15Z","timestamp":1722611715291},"reference-count":16,"publisher":"Springer Science and Business Media LLC","issue":"2","license":[{"start":{"date-parts":[[2023,8,2]],"date-time":"2023-08-02T00:00:00Z","timestamp":1690934400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2023,8,2]],"date-time":"2023-08-02T00:00:00Z","timestamp":1690934400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"name":"Major Science and Technology Special Projects in Henan Province","award":["221100210600","221100210600"],"award-info":[{"award-number":["221100210600","221100210600"]}]},{"name":"Science and Technology Tackling Plan of Henan Province","award":["222102320220","222102320220"],"award-info":[{"award-number":["222102320220","222102320220"]}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["J Supercomput"],"published-print":{"date-parts":[[2024,1]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>OpenMP supports the use of target offloading compile guidance instructions to invoke heterogeneous-platform accelerators to compute core code segments; however, unreasonable use of target offloading instructions can make the data transfer process time-consuming. The problem of unused array transfer and unused data segment transfer arises when the amount of data transferred from the host side to the device side exceeds the amount of data required for the core computation on the device side. For the transmission of unused arrays, the use of the transmitted arrays is guided by adding a filter to eliminate the transmission of redundant data; for the transmission of unused data segments, the use of arrays is quickly determined on the basis of the filter, and valid data are transmitted by optimizing Clang\u2019s code generation strategy after obtaining the lengths of the data segments in core computation. Experiments are performed using the Polybench benchmark; the optimized speedup for unused array transfer reaches 7%, and the optimized speedup for unused data segment transfer reaches 10%. The experimental results show that data transfer optimization for target offloading characteristics can help improve program performance.<\/jats:p>","DOI":"10.1007\/s11227-023-05422-w","type":"journal-article","created":{"date-parts":[[2023,8,2]],"date-time":"2023-08-02T04:01:21Z","timestamp":1690948881000},"page":"2381-2402","update-policy":"http:\/\/dx.doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":2,"title":["OpenMP offloading data transfer optimization for DCUs"],"prefix":"10.1007","volume":"80","author":[{"given":"Hengliang","family":"Guo","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Long","family":"Zhang","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yi","family":"Zhang","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jianan","family":"Li","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Xiaoyue","family":"Xu","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Lu","family":"Liu","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Kuangsheng","family":"Cai","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Dan","family":"Wu","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Shuxin","family":"Yang","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Lingbo","family":"Kong","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Xu","family":"Gao","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2023,8,2]]},"reference":[{"key":"5422_CR1","unstructured":"CUDA C programming guide, [Online]. https:\/\/docs.nvidia.com\/cuda\/cuda-c-programming-guide\/index.html (2019)"},{"key":"5422_CR2","unstructured":"OpenCL 2.2 API specification, [Online]. https:\/\/www.khronos.org\/registry\/OpenCL\/specs\/2.2\/html\/OpenCL\/_API.html (2019)"},{"key":"5422_CR3","doi-asserted-by":"crossref","unstructured":"Olivier SL (2020) Evaluating the efficiency of OpenMP tasking for unbalanced computation on diverse CPU architectures. In: Milfeld K, de Supinski BR, Koesterke L, Klinkenberg J (eds) OpenMP: portable multi-level parallelism on modern systems. Springer, Cham, pp 18\u201333","DOI":"10.1007\/978-3-030-58144-2_2"},{"key":"5422_CR4","doi-asserted-by":"publisher","first-page":"102546","DOI":"10.1016\/j.parco.2019.102546","volume":"89","author":"Jose Monsalve Diaz","year":"2019","unstructured":"Diaz Jose Monsalve, Friedline Kyle, Pophale Swaroop, Hernandez Oscar, Bernholdt David E, Chandrasekaran Sunita (2019) Analysis of OpenMP 4.5 offloading in implementations: correctness and overhead. Parallel Comput 89:102546","journal-title":"Parallel Comput"},{"key":"5422_CR5","doi-asserted-by":"crossref","unstructured":"Budiardja RD, Cardall CY (2019) Targeting GPUs with OpenMP directives on summit: a simple and effective fortran experience. Parallel Comput 88(C)","DOI":"10.1016\/j.parco.2019.102544"},{"key":"5422_CR6","doi-asserted-by":"crossref","unstructured":"Cramer T, Dietrich R, Terboven C, M\u00fcller MS, Nagel WE (2015) Performance analysis for target devices with the OpenMP tools interface. In: Proceedings of the 2015 IEEE International Parallel and Distributed Processing Symposium Workshop, IPDPSW \u201915. IEEE Computer Society, USA, pp 215\u2013224","DOI":"10.1109\/IPDPSW.2015.27"},{"key":"5422_CR7","doi-asserted-by":"crossref","unstructured":"Yan K, Wang A, Yi X, Yan Y (2019) Extending OpenMP map clause to bridge storage and device memory. In: 2019 IEEE\/ACM Workshop on Memory Centric High Performance Computing (MCHPC), pp 79\u201385","DOI":"10.1109\/MCHPC49590.2019.00018"},{"key":"5422_CR8","doi-asserted-by":"crossref","unstructured":"Mishra A, Li L, Kong M, Finkel H, Chapman B (2017) Benchmarking and evaluating unified memory for OpenMP GPU offloading. In: Proceedings of the Fourth Workshop on the LLVM Compiler Infrastructure in HPC, LLVM-HPC\u201917. Association for Computing Machinery, New York","DOI":"10.1145\/3148173.3148184"},{"key":"5422_CR9","doi-asserted-by":"crossref","unstructured":"Patel A, Tian S, Doerfert J, Chapman B (2021) A virtual GPU as developer-friendly OpenMP offload target. In: 50th International Conference on Parallel Processing Workshop, ICPP Workshops\u201921. Association for Computing Machinery, New York","DOI":"10.1145\/3458744.3473356"},{"key":"5422_CR10","doi-asserted-by":"crossref","unstructured":"Tian S, Chesterfield J, Doerfert J, Chapman B (2021) Experience report: writing a portable GPU runtime with OpenMP 5.1. In: McIntosh-Smith S, de\u00a0Supinski BR, Klinkenberg J (eds) OpenMP: enabling massive node-level parallelism. Springer, Cham, pp 159\u2013169","DOI":"10.1007\/978-3-030-85262-7_11"},{"key":"5422_CR11","unstructured":"OpenMP application programing interface, version 4.5, [Online]. http:\/\/openmp.org (2015)"},{"key":"5422_CR12","doi-asserted-by":"publisher","first-page":"14:1","DOI":"10.1147\/JRD.2019.2962428","volume":"64","author":"Ettore Tiotto","year":"2020","unstructured":"Tiotto Ettore, Mahjour Bardia, Tsang Whitney, Xue Xing, Islam Tarique Mesbaul, Chen Wang (2020) OpenMP 4.5 compiler optimization for GPU offloading. IBM J Res Dev 64:14:1-14:11","journal-title":"IBM J Res Dev"},{"key":"5422_CR13","doi-asserted-by":"crossref","unstructured":"Kruse M (2021) Loop Transformations using Clang\u2019s abstract syntax tree. In: 50th International Conference on Parallel Processing Workshop, ICPP Workshops\u201921. Association for Computing Machinery, New York","DOI":"10.1145\/3458744.3473359"},{"key":"5422_CR14","unstructured":"Hu W (2021) Research on polyhedral compilation optimization technique for DCU. Zhengzhou University"},{"key":"5422_CR15","doi-asserted-by":"crossref","unstructured":"Antao SF, Bataev A, Jacob AC, Bercea G-T, Eichenberger AE, Rokos G, Martineau M, Jin T, Ozen G, Sura Z, Chen T, Sung H, Bertolli C, O\u2019Brien K (2016) Offloading support for OpenMP in Clang and LLVM. In: 2016 Third Workshop on the LLVM Compiler Infrastructure in HPC (LLVM-HPC), pp 1\u201311","DOI":"10.1109\/LLVM-HPC.2016.006"},{"key":"5422_CR16","doi-asserted-by":"crossref","unstructured":"Yu L, Protze J, Hernandez O, Sarkar V (2021) ARBALEST: dynamic detection of data mapping issues in heterogeneous OpenMP applications. In: 2021 IEEE International Parallel and Distributed Processing Symposium (IPDPS), pp 464\u2013474","DOI":"10.1109\/IPDPS49936.2021.00055"}],"container-title":["The Journal of Supercomputing"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s11227-023-05422-w.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s11227-023-05422-w\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s11227-023-05422-w.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,1,15]],"date-time":"2024-01-15T09:33:20Z","timestamp":1705311200000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s11227-023-05422-w"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,8,2]]},"references-count":16,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2024,1]]}},"alternative-id":["5422"],"URL":"https:\/\/doi.org\/10.1007\/s11227-023-05422-w","relation":{},"ISSN":["0920-8542","1573-0484"],"issn-type":[{"value":"0920-8542","type":"print"},{"value":"1573-0484","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,8,2]]},"assertion":[{"value":"21 May 2023","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"2 August 2023","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declarations"}},{"value":"The authors declare that they have no conflict of interest.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Conflict of interest"}},{"value":"Not applicable.","order":3,"name":"Ethics","group":{"name":"EthicsHeading","label":"Ethical approval"}}]}}