{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,10]],"date-time":"2026-03-10T08:10:16Z","timestamp":1773130216971,"version":"3.50.1"},"reference-count":36,"publisher":"Springer Science and Business Media LLC","issue":"5","license":[{"start":{"date-parts":[[2020,10,29]],"date-time":"2020-10-29T00:00:00Z","timestamp":1603929600000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2020,10,29]],"date-time":"2020-10-29T00:00:00Z","timestamp":1603929600000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"funder":[{"name":"National Key Research and Development Program of China","award":["2017YFB0202901"],"award-info":[{"award-number":["2017YFB0202901"]}]},{"name":"Key Research and Development Program for Guangdong Province","award":["2019B010136001"],"award-info":[{"award-number":["2019B010136001"]}]},{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"crossref","award":["61672186"],"award-info":[{"award-number":["61672186"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"crossref"}]},{"name":"Shenzhen Technology Research and Development Fund","award":["JCYJ20190806143418198"],"award-info":[{"award-number":["JCYJ20190806143418198"]}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["J Supercomput"],"published-print":{"date-parts":[[2021,5]]},"DOI":"10.1007\/s11227-020-03452-2","type":"journal-article","created":{"date-parts":[[2020,10,29]],"date-time":"2020-10-29T21:02:35Z","timestamp":1604005355000},"page":"4957-4987","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":3,"title":["Automatic translation of data parallel programs for heterogeneous parallelism through OpenMP offloading"],"prefix":"10.1007","volume":"77","author":[{"given":"Farui","family":"Wang","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4783-876X","authenticated-orcid":false,"given":"Weizhe","family":"Zhang","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Haonan","family":"Guo","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Meng","family":"Hao","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Gangzhao","family":"Lu","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Zheng","family":"Wang","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2020,10,29]]},"reference":[{"key":"3452_CR1","doi-asserted-by":"crossref","unstructured":"Al-Saber N, Kulkarni M (2015) Semcache++: semantics-aware caching for efficient multi-gpu offloading. In: Proceedings of the 29th ACM on International Conference on Supercomputing. ACM, pp 79\u201388","DOI":"10.1145\/2751205.2751210"},{"key":"3452_CR2","doi-asserted-by":"crossref","unstructured":"Baskaran MM, Ramanujam J, Sadayappan P (2010) Automatic c-to-cuda code generation for affine programs. In: International Conference on Compiler Construction. Springer, pp 244\u2013263","DOI":"10.1007\/978-3-642-11970-5_14"},{"key":"3452_CR3","doi-asserted-by":"crossref","unstructured":"Castro D, Romano P, Ilic A, Khan AM (2019) Hetm: transactional memory for heterogeneous systems. In: 2019 28th International Conference on Parallel Architectures and Compilation Techniques (PACT). IEEE, pp 232\u2013244","DOI":"10.1109\/PACT.2019.00026"},{"key":"3452_CR4","doi-asserted-by":"crossref","unstructured":"Che S, Boyer M, Meng J, Tarjan D, Sheaffer JW, Lee SH, Skadron K (2009) Rodinia: a benchmark suite for heterogeneous computing. In: 2009 IEEE International Symposium on Workload Characterization (IISWC). IEEE, pp 44\u201354","DOI":"10.1109\/IISWC.2009.5306797"},{"key":"3452_CR5","unstructured":"Corporation N (2019) Cuda toolkit documentation v10.2.89. https:\/\/docs.nvidia.com\/cuda. Accessed 10 Dec 2019"},{"key":"3452_CR6","doi-asserted-by":"crossref","unstructured":"Huang Y, Li D (2017) Performance modeling for optimal data placement on GPU with heterogeneous memory systems. In: 2017 IEEE International Conference on Cluster Computing (CLUSTER). IEEE, pp 166\u2013177","DOI":"10.1109\/CLUSTER.2017.42"},{"key":"3452_CR7","doi-asserted-by":"crossref","unstructured":"Jablin TB, Jablin JA, Prabhu P, Liu F, August DI (2012) Dynamically managed data for CPU\u2013GPU architectures. In: Proceedings of the Tenth International Symposium on Code Generation and Optimization. ACM, pp 165\u2013174","DOI":"10.1145\/2259016.2259038"},{"key":"3452_CR8","doi-asserted-by":"crossref","unstructured":"Jablin TB, Prabhu P, Jablin JA, Johnson NP, Beard SR, August DI (2011) Automatic CPU\u2013GPU communication management and optimization. In: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, pp 142\u2013151","DOI":"10.1145\/1993498.1993516"},{"key":"3452_CR9","doi-asserted-by":"crossref","unstructured":"Kim Y, Kim H (2019) Translating cuda to opencl for hardware generation using neural machine translation. In: 2019 IEEE\/ACM International Symposium on Code Generation and Optimization (CGO). IEEE, pp 285\u2013286","DOI":"10.1109\/CGO.2019.8661172"},{"key":"3452_CR10","doi-asserted-by":"crossref","unstructured":"Lattner C, Adve V (2004) Llvm: a compilation framework for lifelong program analysis and transformation. In: International Symposium on Code Generation and Optimization, 2004. CGO 2004. IEEE, pp 75\u201386","DOI":"10.1109\/CGO.2004.1281665"},{"key":"3452_CR11","doi-asserted-by":"crossref","unstructured":"Lee S, Eigenmann R (2010) Openmpc: extended openmp programming and tuning for gpus. In: Proceedings of the 2010 ACM\/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE Computer Society, pp 1\u201311","DOI":"10.1109\/SC.2010.36"},{"key":"3452_CR12","doi-asserted-by":"crossref","unstructured":"Li L, Chapman B (2019) Compiler assisted hybrid implicit and explicit gpu memory management under unified address space. In: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis. ACM, p\u00a051","DOI":"10.1145\/3295500.3356141"},{"key":"3452_CR13","unstructured":"LLVM AT (2020) Clang: a C language family frontend for llvm. http:\/\/clang.llvm.org. Accessed 14 Sep 2020"},{"key":"3452_CR14","unstructured":"LLVM AT (2020) The LLVM compiler infrastructure. http:\/\/llvm.org. Accessed 14 Sep 2020"},{"issue":"2","key":"3452_CR15","first-page":"13","volume":"14","author":"G Mendon\u00e7a","year":"2017","unstructured":"Mendon\u00e7a G, Guimar\u00e3es B, Alves P, Pereira M, Ara\u00fajo G, Pereira FMQ (2017) DAWNCC: automatic annotation for data parallelism and offloading. ACM Trans Archit Code Optim (TACO) 14(2):13","journal-title":"ACM Trans Archit Code Optim (TACO)"},{"key":"3452_CR16","unstructured":"Mendon\u00e7a G, Guimar\u00e3es B, Pereira FMQ (2018) Benchmarks used to evaluate DAWNCC. http:\/\/cuda.dcc.ufmg.br\/dawn\/benchmarks.zip. Accessed 21 Dec 2018"},{"key":"3452_CR17","doi-asserted-by":"crossref","unstructured":"Mendon\u00e7a GSD, Guimaraes BCF, Alves PRO, Pereira FMQ, Pereira MM, Ara\u00fajo G (2016) Automatic insertion of copy annotation in data-parallel programs. In: 2016 28th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD). IEEE, pp 34\u201341","DOI":"10.1109\/SBAC-PAD.2016.13"},{"issue":"4","key":"3452_CR18","first-page":"35","volume":"11","author":"C Nugteren","year":"2015","unstructured":"Nugteren C, Corporaal H (2015) Bones: an automatic skeleton-based c-to-cuda compiler for gpus. ACM Trans Arch Code Optim (TACO) 11(4):35","journal-title":"ACM Trans Arch Code Optim (TACO)"},{"key":"3452_CR19","unstructured":"O\u2019Boyle MF, Wang Z, Grewe D (2013) Portable mapping of data parallel programs to opencl for heterogeneous systems. In: Proceedings of the 2013 IEEE\/ACM International Symposium on Code Generation and Optimization (CGO). IEEE Computer Society, pp 1\u201310"},{"key":"3452_CR20","unstructured":"OpenMP ARB (2019) Openmp application program interface version 3.1. https:\/\/www.openmp.org\/wp-content\/uploads\/OpenMP3.1.pdf. Accessed 07 Nov 2019"},{"key":"3452_CR21","unstructured":"OpenMP ARB (2019) Openmp application program interface version 4.0. https:\/\/www.openmp.org\/wp-content\/uploads\/OpenMP4.0.0.pdf. Accessed 07 Nov 2019"},{"key":"3452_CR22","unstructured":"OpenMP ARB (2019) Openmp application program interface version 4.5. https:\/\/www.openmp.org\/wp-content\/uploads\/openmp-4.5.pdf. Accessed 07 Nov 2019"},{"key":"3452_CR23","unstructured":"OpenMP ARB (2019) Openmp application program interface version 5.0. https:\/\/www.openmp.org\/wp-content\/uploads\/OpenMP-API-Specification-5.0.pdf. Accessed 07 Nov 2019"},{"key":"3452_CR24","doi-asserted-by":"crossref","unstructured":"Pai S, Govindarajan R, Thazhuthaveetil MJ (2012) Fast and efficient automatic memory management for gpus using compiler-assisted runtime coherence scheme. In: Proceedings of the 21st International Conference on Parallel Architectures and Compilation Techniques. ACM, pp 33\u201342","DOI":"10.1145\/2370816.2370824"},{"key":"3452_CR25","unstructured":"Pouchet LN et\u00a0al (2018) Polybench\/c the polyhedral benchmark suite. https:\/\/web.cse.ohio-state.edu\/~pouchet.2\/software\/polybench. Accessed 21 Dec 2018"},{"issue":"2","key":"3452_CR26","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3319423","volume":"16","author":"H Riebler","year":"2019","unstructured":"Riebler H, Vaz G, Kenter T, Plessl C (2019) Transparent acceleration for heterogeneous platforms with compilation to opencl. ACM Trans Arch Code Optim (TACO) 16(2):1\u201326","journal-title":"ACM Trans Arch Code Optim (TACO)"},{"key":"3452_CR27","unstructured":"Saraswat V, Bloom B, Peshansky I, Tardieu O, Grove D (2019) The x10 parallel programming language. http:\/\/x10-lang.org. Accessed 10 Dec 2019"},{"key":"3452_CR28","doi-asserted-by":"crossref","unstructured":"Sathre P, Gardner M, Feng WC (2019) On the portability of CPU-accelerated applications via automated source-to-source translation. In: Proceedings of the International Conference on High Performance Computing in Asia-Pacific Region, pp 1\u20138","DOI":"10.1145\/3293320.3293338"},{"key":"3452_CR29","doi-asserted-by":"publisher","first-page":"126","DOI":"10.1016\/j.jpdc.2019.04.004","volume":"130","author":"R Sousa","year":"2019","unstructured":"Sousa R, Pereira M, Pereira FMQ, Araujo G (2019) Data-flow analysis and optimization for data coherence in heterogeneous architectures. J Parallel Distrib Comput 130:126\u2013139","journal-title":"J Parallel Distrib Comput"},{"issue":"4","key":"3452_CR30","first-page":"54","volume":"9","author":"S Verdoolaege","year":"2013","unstructured":"Verdoolaege S, Carlos Juega J, Cohen A, Ignacio Gomez J, Tenllado C, Catthoor F (2013) Polyhedral parallel code generation for cuda. ACM Trans Arch Code Optim (TACO) 9(4):54","journal-title":"ACM Trans Arch Code Optim (TACO)"},{"key":"3452_CR31","unstructured":"Wang K, Che S, Skadron K (2019) Rodinia: a benchmark suit for heterogeneous computing. http:\/\/lava.cs.virginia.edu\/Rodinia\/download_links.htm. Accessed 23 June 2019"},{"key":"3452_CR32","doi-asserted-by":"crossref","unstructured":"Wang X, Huang K, Knoll A, Qian X (2019) A hybrid framework for fast and accurate gpu performance estimation through source-level analysis and trace-based simulation. In: 2019 IEEE International Symposium on High Performance Computer Architecture (HPCA). IEEE, pp 506\u2013518","DOI":"10.1109\/HPCA.2019.00062"},{"issue":"7","key":"3452_CR33","doi-asserted-by":"publisher","first-page":"3810","DOI":"10.1007\/s11227-019-02749-1","volume":"75","author":"S Wu","year":"2019","unstructured":"Wu S, Dong X, Zhang X, Zhu Z (2019) Not: a high-level no-threading parallel programming method for heterogeneous systems. J Supercomput 75(7):3810\u20133841","journal-title":"J Supercomput"},{"key":"3452_CR34","doi-asserted-by":"crossref","unstructured":"Xiao J, Andelfinger P, Cai W, Richmond P, Knoll A, Eckhoff D (2020) Openablext: an automatic code generation framework for agent-based simulations on CPU\u2013GPU\u2013FPGA heterogeneous platforms. Concurrency and Computation: Practice and Experience p. e5807","DOI":"10.1002\/cpe.5807"},{"issue":"2","key":"3452_CR35","doi-asserted-by":"publisher","first-page":"495","DOI":"10.1109\/TC.2015.2417526","volume":"65","author":"W Zhang","year":"2015","unstructured":"Zhang W, Cheng AM, Subhlok J (2015) Dwarfcode: a performance prediction tool for parallel applications. IEEE Trans Comput 65(2):495\u2013507","journal-title":"IEEE Trans Comput"},{"issue":"2","key":"3452_CR36","doi-asserted-by":"publisher","first-page":"1179","DOI":"10.1007\/s10586-016-0707-1","volume":"20","author":"W Zhang","year":"2017","unstructured":"Zhang W, Hao M, Snir M (2017) Predicting hpc parallel program performance based on llvm compiler. Cluster Comput 20(2):1179\u20131192","journal-title":"Cluster Comput"}],"container-title":["The Journal of Supercomputing"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s11227-020-03452-2.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s11227-020-03452-2\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s11227-020-03452-2.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,3,26]],"date-time":"2021-03-26T17:23:47Z","timestamp":1616779427000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s11227-020-03452-2"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,10,29]]},"references-count":36,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2021,5]]}},"alternative-id":["3452"],"URL":"https:\/\/doi.org\/10.1007\/s11227-020-03452-2","relation":{},"ISSN":["0920-8542","1573-0484"],"issn-type":[{"value":"0920-8542","type":"print"},{"value":"1573-0484","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,10,29]]},"assertion":[{"value":"11 October 2020","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"29 October 2020","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}