{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,7]],"date-time":"2026-03-07T02:25:24Z","timestamp":1772850324592,"version":"3.50.1"},"reference-count":50,"publisher":"Institute of Electrical and Electronics Engineers (IEEE)","issue":"1","license":[{"start":{"date-parts":[[2019,1,1]],"date-time":"2019-01-01T00:00:00Z","timestamp":1546300800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/ieeexplore.ieee.org\/Xplorehelp\/downloads\/license-information\/IEEE.html"},{"start":{"date-parts":[[2019,1,1]],"date-time":"2019-01-01T00:00:00Z","timestamp":1546300800000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-029"},{"start":{"date-parts":[[2019,1,1]],"date-time":"2019-01-01T00:00:00Z","timestamp":1546300800000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-037"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["IEEE Trans. Parallel Distrib. Syst."],"published-print":{"date-parts":[[2019,1,1]]},"DOI":"10.1109\/tpds.2018.2855182","type":"journal-article","created":{"date-parts":[[2018,7,11]],"date-time":"2018-07-11T18:40:13Z","timestamp":1531334413000},"page":"174-189","source":"Crossref","is-referenced-by-count":15,"title":["PHAST - A Portable High-Level Modern C++ Programming Library for GPUs and Multi-Cores"],"prefix":"10.1109","volume":"30","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-4998-0092","authenticated-orcid":false,"given":"Biagio","family":"Peccerillo","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7975-3632","authenticated-orcid":false,"given":"Sandro","family":"Bartolini","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"263","reference":[{"key":"ref39","first-page":"1","article-title":"Faster and timing-attack resistant AES-GCM","author":"k\u00e4sper","year":"2009","journal-title":"Proc Int Workshop Cryptogr Hardware Embedded Syst"},{"key":"ref38","article-title":"Parallel bitsliced AES through PHAST: A single-source high-performance library for multi-cores and GPUs","author":"peccerillo","year":"2017"},{"key":"ref33","first-page":"41","article-title":"Tangram: A high-level\n language for performance portable code synthesis","author":"chang","year":"2015","journal-title":"Informal Proc Eighth Workshop on Programmability Issues for Heterogeneous Multicores"},{"key":"ref32","doi-asserted-by":"publisher","DOI":"10.1145\/2304576.2304623"},{"key":"ref31","doi-asserted-by":"publisher","DOI":"10.1145\/2464996.2465008"},{"key":"ref30","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.1631"},{"key":"ref37","first-page":"19","article-title":"Memory bandwidth and machine balance in current high performance\n computers","author":"mccalpin","year":"1995","journal-title":"IEEE Comput Soc Tech Committee Newsletter Comput Archit"},{"key":"ref36","article-title":"PHAST website.","author":"peccerillo","year":"0"},{"key":"ref35","doi-asserted-by":"publisher","DOI":"10.1016\/j.future.2017.08.050"},{"key":"ref34","author":"kale","year":"2013","journal-title":"Parallel Science and Engineering Applications The Charm++ Approach"},{"key":"ref28","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC.2015.16"},{"key":"ref27","doi-asserted-by":"publisher","DOI":"10.1109\/ICPP.2011.45"},{"key":"ref29","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-23400-2_52"},{"key":"ref2","author":"hennessy","year":"2011","journal-title":"Computer Architecture A Quantitative Approach"},{"key":"ref1","first-page":"202","article-title":"The free lunch is over: A fundamental turn toward concurrency in\n software","volume":"30","author":"sutter","year":"2005","journal-title":"Dr Dobb's J"},{"key":"ref20","article-title":"EasyCL - Easy to run kernels using OpenCL","author":"perkins","year":"2016"},{"key":"ref22","doi-asserted-by":"publisher","DOI":"10.1145\/1863482.1863487"},{"key":"ref21","article-title":"ArrayFire - A high performance\n software library for parallel computing with an easy-to-use API","author":"yalamanchili","year":"2015"},{"key":"ref24","doi-asserted-by":"publisher","DOI":"10.1109\/XSW.2013.7"},{"key":"ref23","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2011.269"},{"key":"ref26","article-title":"SyCL parallel STL.","year":"0"},{"key":"ref25","article-title":"Boost.Compute","author":"lutz","year":"2016"},{"key":"ref50","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2016.57"},{"key":"ref10","first-page":"238","article-title":"High performance computing via a GPU","author":"chen","year":"2009","journal-title":"Proc 1st Int Conf Inf Sci Eng"},{"key":"ref11","author":"hunt","year":"2000","journal-title":"The Pragmatic Programmer"},{"key":"ref40","doi-asserted-by":"crossref","first-page":"125","DOI":"10.1007\/978-3-662-49301-4_8","article-title":"Bitsliced high-performance AES-ECB on GPUs","author":"lim","year":"2016","journal-title":"The New Codebreakers - Essays Dedicated to David Kahn on the Occasion of His 85th Birthday"},{"key":"ref12","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1976.233837"},{"key":"ref13","author":"halstead","year":"1977","journal-title":"Elements of Software Science"},{"key":"ref14","article-title":"The OpenCL specification, version 2.2","year":"2016"},{"key":"ref15","article-title":"OpenACC programming and best practices guide","year":"2015"},{"key":"ref16","article-title":"OpenMP application program interface","year":"2013"},{"key":"ref17","author":"gregory","year":"2012","journal-title":"C++ Amp Accelerated Massive Parallelismwith Microsoft Visual C++"},{"key":"ref18","article-title":"SYCL provisional specification, version 2.2","year":"2016"},{"key":"ref19","doi-asserted-by":"publisher","DOI":"10.1109\/LLVM-HPC.2014.9"},{"key":"ref4","author":"nichols","year":"1996","journal-title":"Pthreads Programming - A POSIX Standard for Better Multiprocessing"},{"key":"ref3","doi-asserted-by":"publisher","DOI":"10.1109\/HIPS.1997.582951"},{"key":"ref6","doi-asserted-by":"publisher","DOI":"10.1109\/99.660313"},{"key":"ref5","article-title":"Multithreading with C and Win32.","year":"0"},{"key":"ref8","doi-asserted-by":"publisher","DOI":"10.1145\/1103900.1103933"},{"key":"ref7","article-title":"MPI: A message-passing interface standard","year":"1994"},{"key":"ref49","doi-asserted-by":"publisher","DOI":"10.1145\/2751205.2751209"},{"key":"ref9","article-title":"CUDA C programming guide","year":"2015"},{"key":"ref46","article-title":"CMetrics.","author":"castillo","year":"0"},{"key":"ref45","article-title":"Adding experimental PTX support to ComputeCpp for NVIDIA hardware.","author":"burns","year":"0"},{"key":"ref48","doi-asserted-by":"publisher","DOI":"10.1109\/ASAP.2015.7245713"},{"key":"ref47","author":"sutter","year":"2004","journal-title":"C++ Coding Standards 101 Rules Guidelines and Best Practices (C++ in Depth Series)"},{"key":"ref42","article-title":"Autovectorization in Intel OpenCL SDK 1.5","year":"2011"},{"key":"ref41","article-title":"ComputeCpp - Accelerate complex C++ applications on heterogeneous compute\n systems using open standards.","year":"0"},{"key":"ref44","first-page":"263","author":"kofler","year":"2015","journal-title":"Automatic Data Layout Optimizations for GPUs"},{"key":"ref43","first-page":"208","author":"tseng","year":"2014","journal-title":"Automatic Data Layout Transformation for Heterogeneous Many-Core Systems"}],"container-title":["IEEE Transactions on Parallel and Distributed Systems"],"original-title":[],"link":[{"URL":"http:\/\/xplorestaging.ieee.org\/ielx7\/71\/8572813\/08410014.pdf?arnumber=8410014","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,7,13]],"date-time":"2022-07-13T20:43:50Z","timestamp":1657745030000},"score":1,"resource":{"primary":{"URL":"https:\/\/ieeexplore.ieee.org\/document\/8410014\/"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,1,1]]},"references-count":50,"journal-issue":{"issue":"1"},"URL":"https:\/\/doi.org\/10.1109\/tpds.2018.2855182","relation":{},"ISSN":["1045-9219","1558-2183","2161-9883"],"issn-type":[{"value":"1045-9219","type":"print"},{"value":"1558-2183","type":"electronic"},{"value":"2161-9883","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,1,1]]}}}