{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T12:59:22Z","timestamp":1740142762965,"version":"3.37.3"},"reference-count":49,"publisher":"Oxford University Press (OUP)","issue":"6","license":[{"start":{"date-parts":[[2022,3,14]],"date-time":"2022-03-14T00:00:00Z","timestamp":1647216000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/academic.oup.com\/journals\/pages\/open_access\/funder_policies\/chorus\/standard_publication_model"}],"funder":[{"DOI":"10.13039\/501100012166","name":"National Key Research and Development Program of China","doi-asserted-by":"publisher","award":["2017YFB0202002"],"award-info":[{"award-number":["2017YFB0202002"]}],"id":[{"id":"10.13039\/501100012166","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"publisher","award":["61572394"],"award-info":[{"award-number":["61572394"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2023,6,19]]},"abstract":"<jats:title>Abstract<\/jats:title>\n               <jats:p>With the development of heterogeneous systems, the demand for high-level programming methods that ease heterogeneous programming and produce portable applications has become more urgent. This paper proposes DACL, the data associated computing language. DACL introduces data partition patterns to achieve architecture-independent parallelism expression. Meanwhile, DACL provides simplified language extensions, as well as programming features such as serialization of the computing process, parameterization of data attributes and modularity, thus reducing the difficulty of heterogeneous programming and improving programming productivity. The operational semantics show that DACL enables different levels of parallelism degree calculation and retains data access patterns, reserving optimization potential. To support cross-platform execution, the currently implemented source-to-source compilers employ OpenMP and OpenCL as the backend. We reconstructed multiple benchmarks selected from the Parboil and Rodinia benchmark suits with DACL and conducted a comparison test on CPU, GPU and MIC platforms. The code size of each rebuilt benchmark is roughly equivalent to that of the serial code, which is only 13%\u201364% of the benchmark OpenCL code. With the support of the compilation system, the reconstructed code can execute on different processors without modification, yielding a competitive or better performance to that of the manually written benchmark code.<\/jats:p>","DOI":"10.1093\/comjnl\/bxac017","type":"journal-article","created":{"date-parts":[[2022,2,3]],"date-time":"2022-02-03T20:10:55Z","timestamp":1643919055000},"page":"1400-1418","source":"Crossref","is-referenced-by-count":1,"title":["Simplified High Level Parallelism Expression on Heterogeneous Systems through Data Partition Pattern Description"],"prefix":"10.1093","volume":"66","author":[{"given":"Shusen","family":"Wu","sequence":"first","affiliation":[{"name":"School of Computer Science and Technology, Xi\u2019an Jiaotong University , Xi\u2019an, Shaanxi 710049 , P.R. China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Xiaoshe","family":"Dong","sequence":"additional","affiliation":[{"name":"School of Computer Science and Technology, Xi\u2019an Jiaotong University , Xi\u2019an, Shaanxi 710049 , P.R. China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Heng","family":"Chen","sequence":"additional","affiliation":[{"name":"School of Computer Science and Technology, Xi\u2019an Jiaotong University , Xi\u2019an, Shaanxi 710049 , P.R. China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Longxiang","family":"Wang","sequence":"additional","affiliation":[{"name":"School of Computer Science and Technology, Xi\u2019an Jiaotong University , Xi\u2019an, Shaanxi 710049 , P.R. China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Qiang","family":"Wang","sequence":"additional","affiliation":[{"name":"School of Computer Science and Technology, Xi\u2019an Jiaotong University , Xi\u2019an, Shaanxi 710049 , P.R. China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Zhengdong","family":"Zhu","sequence":"additional","affiliation":[{"name":"School of Computer Science and Technology, Xi\u2019an Jiaotong University , Xi\u2019an, Shaanxi 710049 , P.R. China"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"286","published-online":{"date-parts":[[2022,3,14]]},"reference":[{"author":"Nvidia corperation. cuda toolkit","key":"2023062010045965100_ref1"},{"author":"The khronos group. opencl introduction","key":"2023062010045965100_ref2"},{"key":"2023062010045965100_ref3","doi-asserted-by":"crossref","first-page":"382","DOI":"10.1007\/s42514-020-00039-4","article-title":"Parallel programming models for heterogeneous many-cores: a comprehensive survey","volume":"2","author":"Fang","year":"2020","journal-title":"CCF Trans. High Performance Comput."},{"author":"The openacc homepage","key":"2023062010045965100_ref4"},{"author":"The openmp homepage","key":"2023062010045965100_ref5"},{"key":"2023062010045965100_ref6","doi-asserted-by":"crossref","first-page":"3202","DOI":"10.1016\/j.jpdc.2014.07.003","article-title":"Kokkos: Enabling manycore performance portability through polymorphic memory access patterns","volume":"74","author":"Carter Edwards","year":"2014","journal-title":"J. Parallel Distrib. Comput."},{"key":"2023062010045965100_ref7","doi-asserted-by":"crossref","first-page":"51","DOI":"10.1016\/j.jpdc.2016.11.001","article-title":"High productivity multi-device exploitation with the heterogeneous programming library","volume":"101","author":"Vi\u00f1as","year":"2017","journal-title":"J. Parallel Distrib. Comput."},{"key":"2023062010045965100_ref8","doi-asserted-by":"crossref","DOI":"10.1145\/2584665","article-title":"Delite: a compiler architecture for performance-oriented embedded domain-specific languages","volume":"13","author":"Sujeeth","year":"2014","journal-title":"ACM Trans. Embed. Comput. Syst."},{"key":"2023062010045965100_ref9","doi-asserted-by":"crossref","first-page":"49","DOI":"10.1145\/2500365.2500595","volume-title":"Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming","author":"McDonell","year":"2013"},{"key":"2023062010045965100_ref10","doi-asserted-by":"crossref","first-page":"519","DOI":"10.1145\/2491956.2462176","volume-title":"Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation","author":"Ragan-Kelley","year":"2013"},{"key":"2023062010045965100_ref11","doi-asserted-by":"crossref","first-page":"205","DOI":"10.1145\/2784731.2784754","volume-title":"Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming","author":"Steuwer","year":"2015"},{"key":"2023062010045965100_ref12","first-page":"74","volume-title":"Proceedings of the 2017 International Symposium on Code Generation and Optimization","author":"Steuwer","year":"2017"},{"volume-title":"Proceedings of the Third ACM SIGPLAN Conference on History of Programming Languages","year":"2007","author":"Kennedy","key":"2023062010045965100_ref13"},{"key":"2023062010045965100_ref14","doi-asserted-by":"crossref","first-page":"291","DOI":"10.1177\/1094342007078442","article-title":"Parallel programmability and the chapel language","volume":"21","author":"Chamberlain","year":"2007","journal-title":"Int. J. High Perform. Comput. Appl."},{"key":"2023062010045965100_ref15","doi-asserted-by":"crossref","first-page":"679","DOI":"10.1109\/IPDPSW50202.2020.00121","volume-title":"2020 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)","author":"Ghangas","year":"2020"},{"volume-title":"Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis","year":"2012","author":"Bauer","key":"2023062010045965100_ref16"},{"key":"2023062010045965100_ref17","first-page":"495","volume-title":"Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages & Applications OOPSLA \u201813","author":"Treichler","year":"2013"},{"key":"2023062010045965100_ref18","doi-asserted-by":"crossref","first-page":"3007","DOI":"10.1109\/TPDS.2017.2703149","article-title":"Trends in data locality abstractions for hpc systems","volume":"28","author":"Unat","year":"2017","journal-title":"IEEE Trans. Parallel Distrib. Syst."},{"key":"2023062010045965100_ref19"},{"volume-title":"rodinia: A Benchmark Suite for Heterogeneous Computing","author":"University of virginia","key":"2023062010045965100_ref20"},{"key":"2023062010045965100_ref21","doi-asserted-by":"crossref","first-page":"2374","DOI":"10.1109\/TPDS.2013.195","article-title":"Mapping streaming applications onto gpu systems","volume":"25","author":"Huynh","year":"2014","journal-title":"IEEE Trans. Parallel Distrib. Syst."},{"key":"2023062010045965100_ref22","doi-asserted-by":"crossref","first-page":"827","DOI":"10.1109\/TPDS.2018.2872064","article-title":"Effective extensible programming: unleashing julia on gpus","volume":"30","author":"Besard","year":"2019","journal-title":"IEEE Trans. Parallel Distrib. Syst."},{"key":"2023062010045965100_ref23","doi-asserted-by":"crossref","first-page":"49","DOI":"10.1145\/2517349.2522715","volume-title":"Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles SOSP \u201813","author":"Rossbach","year":"2013"},{"key":"2023062010045965100_ref24","doi-asserted-by":"crossref","first-page":"315","DOI":"10.1109\/IPDPSW.2013.173","volume-title":"2013 IEEE International Symposium on Parallel Distributed Processing, Workshops and Phd Forum","author":"Holk","year":"2013"},{"key":"2023062010045965100_ref25","doi-asserted-by":"crossref","first-page":"139","DOI":"10.1145\/3173162.3173182","volume-title":"Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems ASPLOS \u201818","author":"Ginsbach","year":"2018"},{"key":"2023062010045965100_ref26","doi-asserted-by":"crossref","first-page":"138","DOI":"10.1109\/CSE.2018.00026","volume-title":"2018 IEEE International Conference on Computational Science and Engineering (CSE)","author":"Memeti","year":"2018"},{"key":"2023062010045965100_ref27","first-page":"33","volume-title":"Efficient mapping of irregular c++ applications to integrated gpus","author":"Barik","year":"2014"},{"key":"2023062010045965100_ref28","doi-asserted-by":"crossref","first-page":"522","DOI":"10.1016\/j.future.2020.02.016","article-title":"Enginecl: usability and performance in heterogeneous computing","volume":"107","author":"Nozal","year":"2020","journal-title":"Future Gener. Comput. Syst."},{"key":"2023062010045965100_ref29","doi-asserted-by":"crossref","first-page":"224","DOI":"10.1109\/PDP50117.2020.00042","volume-title":"2020 28th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP)","author":"More\u0144","year":"2020"},{"author":"The khronos group. sycl overview","key":"2023062010045965100_ref30"},{"author":"Intel corporation. oneapi programming model","key":"2023062010045965100_ref31"},{"key":"2023062010045965100_ref32","doi-asserted-by":"crossref","first-page":"1878","DOI":"10.1109\/TPDS.2020.2978045","article-title":"Optimizing streaming parallelism on heterogeneous many-core architectures","volume":"31","author":"Zhang","year":"2020","journal-title":"IEEE Trans. Parallel Distrib. Syst."},{"key":"2023062010045965100_ref33","doi-asserted-by":"crossref","DOI":"10.1002\/cpe.5728","article-title":"Heterogeneous computing with openmp and hydra","volume":"32","author":"Diener","year":"2020","journal-title":"Concurrency Comput Pract. Exp."},{"key":"2023062010045965100_ref34","doi-asserted-by":"crossref","first-page":"210","DOI":"10.1109\/TPDS.2015.2394802","article-title":"Hipacc: a domain-specific language and compiler for image processing","volume":"27","author":"Membarth","year":"2016","journal-title":"IEEE Trans. Parallel Distrib. Syst."},{"key":"2023062010045965100_ref35","doi-asserted-by":"crossref","first-page":"562","DOI":"10.1109\/HPCSim.2016.7568385","volume-title":"2016 International Conference on High Performance Computing Simulation (HPCS)","author":"Falch","year":"2016"},{"key":"2023062010045965100_ref36","doi-asserted-by":"crossref","first-page":"156","DOI":"10.1145\/2141702.2141720","volume-title":"Proceedings of the 2012 International Workshop on Programming Models and Applications for Multicores and Manycores PMAM \u201812","author":"Stromme","year":"2012"},{"key":"2023062010045965100_ref37","doi-asserted-by":"crossref","DOI":"10.1145\/3107953","article-title":"Programming heterogeneous systems from an image processing dsl","volume":"14","author":"Pu","year":"2017","journal-title":"ACM Trans. Archit. Code Optim"},{"key":"2023062010045965100_ref38","first-page":"296","volume-title":"Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation PLDI 2018","author":"Koeplinger","year":"2018"},{"key":"2023062010045965100_ref39","first-page":"47","volume-title":"Proceedings of the 16th ACM Symposium on Principles and Practice of Parallel Programming PPoPP \u201811","author":"Catanzaro","year":"2011"},{"key":"2023062010045965100_ref40","doi-asserted-by":"crossref","first-page":"194","DOI":"10.1145\/2854038.2854042","volume-title":"Proceedings of the 2016 International Symposium on Code Generation and Optimization CGO \u201816","author":"Brown","year":"2016"},{"key":"2023062010045965100_ref41","doi-asserted-by":"crossref","DOI":"10.1145\/3012011","article-title":"Designing a tunable nested data-parallel programming system","volume":"13","author":"Muralidharan","year":"2016","journal-title":"ACM Trans. Archit. Code Optim"},{"key":"2023062010045965100_ref42","first-page":"1176","volume-title":"Proceedings of the 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and PhD Forum IPDPSW \u201811","author":"Steuwer","year":"2011"},{"key":"2023062010045965100_ref43","first-page":"1","article-title":"Skepu 3: portable high-level programming of heterogeneous systems and hpc clusters","volume":"2021","author":"Ernstsson","year":"2021","journal-title":"International Journal of Parallel Programming"},{"volume-title":"The 49th Annual IEEE\/ACM International Symposium on Microarchitecture MICRO-49","year":"2016","author":"Chang","key":"2023062010045965100_ref44"},{"key":"2023062010045965100_ref45","first-page":"1","volume-title":"Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation PLDI \u201812","author":"Dubach","year":"2012"},{"key":"2023062010045965100_ref46","first-page":"63","volume-title":"Proceedings of the 47th Annual IEEE\/ACM International Symposium on Microarchitecture MICRO-47","author":"Lee","year":"2014"},{"key":"2023062010045965100_ref47","article-title":"Bones: an automatic skeleton-based c-to-cuda compiler for gpus","volume-title":"ACM Trans. Archit. Code Optim","author":"Nugteren","year":"2014"},{"key":"2023062010045965100_ref48","first-page":"556","volume-title":"Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation PLDI 2017","author":"Henriksen","year":"2017"},{"key":"2023062010045965100_ref49","first-page":"247","volume-title":"Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming PPoPP \u201814","author":"Rodrigues","year":"2014"}],"container-title":["The Computer Journal"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/academic.oup.com\/comjnl\/article-pdf\/66\/6\/1400\/50643658\/bxac017.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/academic.oup.com\/comjnl\/article-pdf\/66\/6\/1400\/50643658\/bxac017.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,6,20]],"date-time":"2023-06-20T10:07:34Z","timestamp":1687255654000},"score":1,"resource":{"primary":{"URL":"https:\/\/academic.oup.com\/comjnl\/article\/66\/6\/1400\/6548383"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,3,14]]},"references-count":49,"journal-issue":{"issue":"6","published-online":{"date-parts":[[2022,3,14]]},"published-print":{"date-parts":[[2023,6,19]]}},"URL":"https:\/\/doi.org\/10.1093\/comjnl\/bxac017","relation":{},"ISSN":["0010-4620","1460-2067"],"issn-type":[{"type":"print","value":"0010-4620"},{"type":"electronic","value":"1460-2067"}],"subject":[],"published-other":{"date-parts":[[2023,6]]},"published":{"date-parts":[[2022,3,14]]}}}