{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,18]],"date-time":"2026-03-18T07:51:24Z","timestamp":1773820284708,"version":"3.50.1"},"publisher-location":"Cham","reference-count":25,"publisher":"Springer International Publishing","isbn-type":[{"value":"9783030977580","type":"print"},{"value":"9783030977597","type":"electronic"}],"license":[{"start":{"date-parts":[[2022,1,1]],"date-time":"2022-01-01T00:00:00Z","timestamp":1640995200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2022,1,1]],"date-time":"2022-01-01T00:00:00Z","timestamp":1640995200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2022]]},"DOI":"10.1007\/978-3-030-97759-7_5","type":"book-chapter","created":{"date-parts":[[2022,5,14]],"date-time":"2022-05-14T11:04:01Z","timestamp":1652526241000},"page":"92-111","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":3,"title":["Challenges Porting a C++ Template-Metaprogramming Abstraction Layer to Directive-Based Offloading"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-1761-2591","authenticated-orcid":false,"given":"Jeffrey","family":"Kelling","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3396-6154","authenticated-orcid":false,"given":"Sergei","family":"Bastrakov","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3844-3697","authenticated-orcid":false,"given":"Alexander","family":"Debus","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4861-5584","authenticated-orcid":false,"given":"Thomas","family":"Kluge","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2914-1483","authenticated-orcid":false,"given":"Matt","family":"Leinhauser","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7990-9564","authenticated-orcid":false,"given":"Richard","family":"Pausch","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8965-1149","authenticated-orcid":false,"given":"Klaus","family":"Steiniger","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7839-4386","authenticated-orcid":false,"given":"Jan","family":"Stephan","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1642-0459","authenticated-orcid":false,"given":"Ren\u00e9","family":"Widera","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9841-4057","authenticated-orcid":false,"given":"Jeff","family":"Young","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8258-3881","authenticated-orcid":false,"given":"Michael","family":"Bussmann","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3560-9428","authenticated-orcid":false,"given":"Sunita","family":"Chandrasekaran","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9935-4428","authenticated-orcid":false,"given":"Guido","family":"Juckeland","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2022,5,15]]},"reference":[{"key":"5_CR1","unstructured":"alpaka. https:\/\/github.com\/alpaka-group\/alpaka"},{"key":"5_CR2","unstructured":"Alpaka SYCL backend development. https:\/\/github.com\/alpaka-group\/alpaka\/pull\/789"},{"key":"5_CR3","unstructured":"C++ AMP. https:\/\/docs.microsoft.com\/en-us\/cpp\/parallel\/amp\/cpp-amp-cpp-accelerated-massive-parallelism?view=msvc-160"},{"key":"5_CR4","unstructured":"CUDA. https:\/\/developer.nvidia.com\/cuda-toolkit-archive"},{"key":"5_CR5","unstructured":"Cupla. https:\/\/github.com\/alpaka-group\/cupla"},{"key":"5_CR6","unstructured":"MallocMC. https:\/\/github.com\/alpaka-group\/mallocMC"},{"key":"5_CR7","unstructured":"OpenACC 3.0 API specification. https:\/\/www.openacc.org\/sites\/default\/files\/inline-images\/Specification\/OpenACC.3.0.pdf"},{"key":"5_CR8","unstructured":"OpenACC website. https:\/\/www.openacc.org"},{"key":"5_CR9","unstructured":"OpenCL. https:\/\/www.khronos.org\/registry\/OpenCL"},{"key":"5_CR10","unstructured":"OpenMP 5.0 API specification. https:\/\/www.openmp.org\/spec-html\/5.0\/openmp.html"},{"key":"5_CR11","unstructured":"OpenMP 5.1 API specification \u2013 atomic. https:\/\/www.openmp.org\/spec-html\/5.1\/openmpsu105.html"},{"key":"5_CR12","unstructured":"OpenMP website. https:\/\/www.openmp.org\/"},{"key":"5_CR13","unstructured":"RAJA. https:\/\/github.com\/LLNL\/RAJA"},{"key":"5_CR14","unstructured":"ReadonOpenCompute for of LLVM-project. https:\/\/github.com\/RadeonOpenCompute\/llvm-project\/tree\/roc-4.3.x"},{"key":"5_CR15","unstructured":"SYCL. https:\/\/www.khronos.org\/registry\/SYCL"},{"key":"5_CR16","unstructured":"Thrust. https:\/\/thrust.github.io"},{"key":"5_CR17","unstructured":"Top500 entry: Fugaku, A64FX. https:\/\/www.top500.org\/system\/179807"},{"key":"5_CR18","doi-asserted-by":"crossref","unstructured":"Bussmann, M., et al.: Radiative signatures of the relativistic Kelvin-Helmholtz instability. In: Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, pp. 5:1\u20135:12. SC 2013, ACM, New York, NY, USA (2013). http:\/\/doi.acm.org\/10.1145\/2503210.2504564","DOI":"10.1145\/2503210.2504564"},{"key":"5_CR19","doi-asserted-by":"publisher","unstructured":"Demidov, D., Ahnert, K., Rupp, K., Gottschling, P.: Programming CUDA and OpenCL: a case study using modern C++ libraries. SIAM J. Sci. Comput. 35(5), 1\u201312 (2013). https:\/\/doi.org\/10.1137\/120903683. https:\/\/dblp.org\/rec\/journals\/siamsc\/DemidovARG13.bib","DOI":"10.1137\/120903683"},{"key":"5_CR20","unstructured":"Dionne, L.: std::tuple$$<$$$$>$$ should be trivially constructible, May 2019. https:\/\/cplusplus.github.io\/LWG\/issue3211"},{"key":"5_CR21","doi-asserted-by":"publisher","unstructured":"Edwards, H.C., Trott, C.R., Sunderland, D.: Kokkos: enabling manycore performance portability through polymorphic memory access patterns. J. Parallel Distrib. Comput. 74(12), 3202\u20133216 (2014). https:\/\/doi.org\/10.1016\/j.jpdc.2014.07.003,http:\/\/www.sciencedirect.com\/science\/article\/pii\/S0743731514001257. (domain-Specific Languages and High-Level Frameworks for High-Performance Computing)","DOI":"10.1016\/j.jpdc.2014.07.003,"},{"key":"5_CR22","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"470","DOI":"10.1007\/978-3-319-46079-6_33","volume-title":"High Performance Computing","author":"G Juckeland","year":"2016","unstructured":"Juckeland, G., et al.: From describing to prescribing parallelism: translating the SPEC ACCEL OpenACC Suite to OpenMP target directives. In: Taufer, M., Mohr, B., Kunkel, J.M. (eds.) ISC High Performance 2016. LNCS, vol. 9945, pp. 470\u2013488. Springer, Cham (2016). https:\/\/doi.org\/10.1007\/978-3-319-46079-6_33"},{"key":"5_CR23","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"496","DOI":"10.1007\/978-3-319-67630-2_36","volume-title":"High Performance Computing","author":"A Matthes","year":"2017","unstructured":"Matthes, A., Widera, R., Zenker, E., Worpitz, B., Huebl, A., Bussmann, M.: Tuning and optimization for a variety of many-core architectures without changing a single line of implementation code using the Alpaka library. In: Kunkel, J.M., Yokota, R., Taufer, M., Shalf, J. (eds.) ISC High Performance 2017. LNCS, vol. 10524, pp. 496\u2013514. Springer, Cham (2017). https:\/\/doi.org\/10.1007\/978-3-319-67630-2_36"},{"key":"5_CR24","unstructured":"Ozen, G., Lopez, G.: Accelerating Fortran DO CONCURRENT with GPUs and the NVIDIA HPC SDK. https:\/\/developer.nvidia.com\/blog\/accelerating-fortran-do-concurrent-with-gpus-and-the-nvidia-hpc-sdk\/"},{"key":"5_CR25","doi-asserted-by":"crossref","unstructured":"Zenker, E., et al.: Alpaka - an abstraction library for parallel kernel acceleration. IEEE Computer Society, May 2016. http:\/\/arxiv.org\/abs\/1602.08477","DOI":"10.1109\/IPDPSW.2016.50"}],"container-title":["Lecture Notes in Computer Science","Accelerator Programming Using Directives"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-97759-7_5","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,5,14]],"date-time":"2022-05-14T11:04:14Z","timestamp":1652526254000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-030-97759-7_5"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022]]},"ISBN":["9783030977580","9783030977597"],"references-count":25,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-97759-7_5","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022]]},"assertion":[{"value":"15 May 2022","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"WACCPD","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Workshop on Accelerator Programming Using Directives","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2021","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"14 November 2021","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"14 November 2021","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"8","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"waccpd2021","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/waccpd.org\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}