{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,27]],"date-time":"2026-03-27T06:03:21Z","timestamp":1774591401604,"version":"3.50.1"},"publisher-location":"Cham","reference-count":19,"publisher":"Springer International Publishing","isbn-type":[{"value":"9783319460789","type":"print"},{"value":"9783319460796","type":"electronic"}],"license":[{"start":{"date-parts":[[2016,1,1]],"date-time":"2016-01-01T00:00:00Z","timestamp":1451606400000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2016]]},"DOI":"10.1007\/978-3-319-46079-6_2","type":"book-chapter","created":{"date-parts":[[2016,10,5]],"date-time":"2016-10-05T12:01:40Z","timestamp":1475668900000},"page":"18-31","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":18,"title":["Closing the Performance Gap with Modern C++"],"prefix":"10.1007","author":[{"given":"Thomas","family":"Heller","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Hartmut","family":"Kaiser","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Patrick","family":"Diehl","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Dietmar","family":"Fey","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Marc Alexander","family":"Schweitzer","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2016,10,6]]},"reference":[{"key":"2_CR1","unstructured":"Bolt C++ Template Library. \n                      http:\/\/developer.amd.com\/tools-and-sdks\/opencl-zone\/bolt-c-template-library\/"},{"key":"2_CR2","unstructured":"C++ Single-source Heterogeneous Programming for OpenCL. \n                      https:\/\/www.khronos.org\/sycl"},{"key":"2_CR3","unstructured":"HCC: an open source C++ compiler for heterogeneous devices. \n                      https:\/\/github.com\/RadeonOpenCompute\/hcc"},{"key":"2_CR4","unstructured":"OpenACC (Directives for Accelerators). \n                      http:\/\/www.openacc.org\/"},{"key":"2_CR5","unstructured":"OpenMP: a proposed Industry standard API for shared memory programming, October 1997. \n                      http:\/\/www.openmp.org\/mp-documents\/paper\/paper.ps"},{"key":"2_CR6","unstructured":"CUDA (2013). \n                      http:\/\/www.nvidia.com\/object\/cuda_home_new.html"},{"key":"2_CR7","unstructured":"N4406: parallel algorithms need executors. Technical report (2015). \n                      http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2015\/n4406.pdf"},{"key":"2_CR8","doi-asserted-by":"crossref","unstructured":"Broquedis, F., Clet-Ortega, J., Moreaud, S., Furmento, N., Goglin, B., Mercier, G., Thibault, S., Namyst, R.: hwloc: a generic framework for managing hardware affinities in HPC applications. In: PDP 2010 - The 18th Euromicro International Conference on Parallel, Distributed and Network-Based Computing. IEEE, Pisa, Italy. \n                      https:\/\/hal.inria.fr\/inria-00429889","DOI":"10.1109\/PDP.2010.67"},{"key":"2_CR9","unstructured":"Deakin, T., McIntosh-Smith, S.: GPU-STREAM: benchmarking the achievable memory bandwidth of graphics processing units. In: IEEE\/ACM SuperComputing (2015)"},{"issue":"12","key":"2_CR10","doi-asserted-by":"publisher","first-page":"3202","DOI":"10.1016\/j.jpdc.2014.07.003","volume":"74","author":"HC Edwards","year":"2014","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). Domain-Specific Languages and High-Level Frameworks for High-Performance Computing","journal-title":"J. Parallel Distrib. Comput."},{"key":"2_CR11","unstructured":"Hoberock, J., Bell, N.: Thrust: a parallel template library, vol. 42, p. 43 (2010). \n                      http:\/\/thrust.googlecode.com"},{"key":"2_CR12","doi-asserted-by":"crossref","unstructured":"Hornung, R., Keasler, J., et al.: The Raja portability layer: overview andstatus. Lawrence Livermore National Laboratory, Livermore, USA (2014)","DOI":"10.2172\/1169830"},{"key":"2_CR13","unstructured":"Kaiser, H., Adelstein-Lelbach, B., Heller, T., Berg, A., Biddiscombe, J., Bikineev, A., Mercer, G., Schfer, A., Habraken, J., Serio, A., Anderson, M., Stumpf, M., Bourgeois, D., Grubel, P., Brandt, S.R., Copik, M., Amatya, V., Huck, K., Viklund, L., Khatami, Z., Bacharwar, D., Yang, S., Schnetter, E., Bcorde5, Brodowicz, M., Bibek, atrantan, Troska, L., Byerly, Z., Upadhyay, S.: hpx: HPX V0.9.99: a general purpose C++ runtime system for parallel and distributed applications of any scale, July 2016. \n                      http:\/\/dx.doi.org\/10.5281\/zenodo.58027"},{"key":"2_CR14","doi-asserted-by":"crossref","unstructured":"Kaiser, H., Heller, T., Bourgeois, D., Fey, D.: Higher-level parallelization for local and distributed asynchronous task-based programming. In: Proceedings of the First International Workshop on Extreme Scale Programming Models and Middleware, pp. 29\u201337. ACM (2015)","DOI":"10.1145\/2832241.2832244"},{"key":"2_CR15","unstructured":"McCalpin, J.D.: Stream: sustainable memory bandwidth in high performance computers. Technical report, University of Virginia, Charlottesville, Virginia (1991\u20132007), a continually updated Technical report. \n                      http:\/\/www.cs.virginia.edu\/stream\/"},{"key":"2_CR16","first-page":"19","volume":"59","author":"JD McCalpin","year":"1995","unstructured":"McCalpin, J.D.: Memory bandwidth and machine balance in current high performance computers. IEEE Comput. Soc. Tech. Committee Comput. Archit. (TCCA) Newsl. 59, 19\u201325 (1995)","journal-title":"IEEE Comput. Soc. Tech. Committee Comput. Archit. (TCCA) Newsl."},{"key":"2_CR17","unstructured":"The C++ Standards Committee: ISO International Standard ISO\/IEC 14882: 2014, Programming Language C++. Technical report, Geneva, Switzerland: International Organization for Standardization (ISO) (2014). \n                      http:\/\/www.open-std.org\/jtc1\/sc22\/wg21"},{"key":"2_CR18","unstructured":"The C++ Standards Committee: N4578: Working Draft, Technical Specification for C++ Extensions for Parallelism Version 2. Technical report (2016). \n                      http:\/\/open-std.org\/JTC1\/SC22\/WG21\/docs\/papers\/2016\/n4578.pdf"},{"key":"2_CR19","unstructured":"The C++ Standards Committee: N4594: Working Draft, Standard for Programming Language C ++. Technical report (2016). \n                      http:\/\/open-std.org\/JTC1\/SC22\/WG21\/docs\/papers\/2016\/n4594.pdf"}],"container-title":["Lecture Notes in Computer Science","High Performance Computing"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-319-46079-6_2","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,5,20]],"date-time":"2019-05-20T01:13:06Z","timestamp":1558314786000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-319-46079-6_2"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016]]},"ISBN":["9783319460789","9783319460796"],"references-count":19,"URL":"https:\/\/doi.org\/10.1007\/978-3-319-46079-6_2","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2016]]},"assertion":[{"value":"6 October 2016","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"ISC High Performance","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on High Performance Computing","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Frankfurt","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Germany","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2016","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"19 June 2016","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"23 June 2016","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"31","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"supercomputing2016","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}