{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,1]],"date-time":"2026-02-01T06:56:01Z","timestamp":1769928961867,"version":"3.49.0"},"reference-count":30,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2020,10,14]],"date-time":"2020-10-14T00:00:00Z","timestamp":1602633600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"UNLV Foundation Board of Trustees Fellowship"},{"name":"National Science Foundation","award":["1640131"],"award-info":[{"award-number":["1640131"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Comput. Educ."],"published-print":{"date-parts":[[2020,12,31]]},"abstract":"<jats:p>Coprocessor architectures in High Performance Computing are prevalent in today\u2019s scientific computing clusters and require specialized knowledge for proper utilization. Various alternative paradigms for parallel and offload computation exist, but little is known about the human factors impacts of using the different paradigms. With computer science student participants from the University of Nevada, Las Vegas with no previous exposure to Graphics Processing Unit programming, our study compared NVIDIA CUDA C\/C++ as a control group and the Thrust library. The designers of Thrust claim their higher level of abstraction enhances programmer productivity. The trial was conducted on 91 participants and was administered through our computerized testing platform. Although the study was narrowly focused on the basic steps of an offloaded computation problem and was not intended to be a comprehensive evaluation of the superiority of one approach or the other, we found evidence that although Thrust was designed for ease of use, the abstractions tended to be confusing to students and in several cases diminished productivity. Specifically, abstractions in Thrust for (i) memory allocation through a C++ Standard Template Library-style vector library call, (ii) memory transfers between the host and Graphics Processing Unit coprocessor through an overloaded assignment operator, and (iii) execution of an offloaded routine through a generic transform library call instead of a CUDA kernel routine all performed either equal to or worse than CUDA.<\/jats:p>","DOI":"10.1145\/3418301","type":"journal-article","created":{"date-parts":[[2020,10,14]],"date-time":"2020-10-14T08:23:59Z","timestamp":1602663839000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":5,"title":["GPU Programming Productivity in Different Abstraction Paradigms"],"prefix":"10.1145","volume":"20","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-8601-0650","authenticated-orcid":false,"given":"Patrick","family":"Daleiden","sequence":"first","affiliation":[{"name":"University of Nevada, Maryland Pkwy, Las Vegas, NV"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andreas","family":"Stefik","sequence":"additional","affiliation":[{"name":"University of Nevada, Maryland Pkwy, Las Vegas, NV"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8182-9942","authenticated-orcid":false,"given":"Philip Merlin","family":"Uesbeck","sequence":"additional","affiliation":[{"name":"University of Nevada, Maryland Pkwy, Las Vegas, NV"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2020,10,14]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Retrieved","author":"Devices Advanced Micro","year":"2017"},{"key":"e_1_2_1_2_1","volume-title":"Joseph James Gebis, Parry Husbands, Kurt Keutzer, David A. Patterson, et\u00a0al.","author":"Asanovic Krste","year":"2006"},{"key":"e_1_2_1_3_1","volume-title":"Retrieved","author":"Architecture Review Board MP","year":"2017"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10766-016-0424-7"},{"key":"e_1_2_1_5_1","volume-title":"Workshops: Proceedings of the Compilation of the Co-Located Workshops on DSM\u201911","author":"Castor Fernando","year":"2011"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/VLHCC.2015.7357223"},{"key":"e_1_2_1_7_1","volume-title":"Retrieved","author":"Intel Corporation","year":"2017"},{"key":"e_1_2_1_8_1","volume-title":"Retrieved","author":"Intel Corporation","year":"2017"},{"key":"e_1_2_1_9_1","volume-title":"Retrieved","author":"Intel Corporation","year":"2017"},{"key":"e_1_2_1_10_1","volume-title":"Retrieved","author":"NVIDIA Corporation","year":"2017"},{"key":"e_1_2_1_11_1","volume-title":"Retrieved","author":"NVIDIA Corporation","year":"2017"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1136\/bmj.2.4682.739"},{"key":"e_1_2_1_13_1","volume-title":"Proceedings of the 2010 IEEE Symposium on Visual Languages and Human-Centric Computing. IEEE","author":"Fleming Scott D."},{"key":"e_1_2_1_14_1","volume-title":"Proceedings of the 30th International Conference on Software Engineering. 759--768","author":"Fleming Scott D."},{"key":"e_1_2_1_15_1","volume-title":"Retrieved","author":"Gaburov Evghenii","year":"2016"},{"key":"e_1_2_1_16_1","volume-title":"Retrieved","author":"Khronos Group","year":"2017"},{"key":"e_1_2_1_17_1","volume-title":"Retrieved","author":"Harris Mark","year":"2017"},{"key":"e_1_2_1_18_1","unstructured":"Jared Hoberock and Nathan Bell. 2015. Thrust--Parallel Algorithms Library. Available at Github.io  Jared Hoberock and Nathan Bell. 2015. Thrust--Parallel Algorithms Library. Available at Github.io"},{"key":"e_1_2_1_19_1","volume-title":"Proceedings of the 2005 ACM\/IEEE Conference on Supercomputing (SC\u201905)","author":"Hochstein Lorin"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/CLUSTR.2009.5289128"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1288580.1288598"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2632320.2632358"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1186\/1471-2288-1-2"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/CSEET.2011.5876128"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1989493.1989500"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1837853.1693462"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/2568225.2568255"},{"key":"e_1_2_1_29_1","volume-title":"CUDA for Engineers: An Introduction to High-Performance Parallel Computing","author":"Storti Duane"},{"key":"e_1_2_1_30_1","series-title":"Lecture Notes in Computer Science","volume-title":"CUDA-Lite: Reducing GPU programming complexity","author":"Ueng S.-Z."},{"key":"e_1_2_1_31_1","volume-title":"Productivity. Retrieved","author":"World Scientific Computing","year":"2017"}],"container-title":["ACM Transactions on Computing Education"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3418301","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3418301","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3418301","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T22:02:27Z","timestamp":1750197747000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3418301"}},"subtitle":["A Randomized Controlled Trial Comparing CUDA and Thrust"],"short-title":[],"issued":{"date-parts":[[2020,10,14]]},"references-count":30,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2020,12,31]]}},"alternative-id":["10.1145\/3418301"],"URL":"https:\/\/doi.org\/10.1145\/3418301","relation":{},"ISSN":["1946-6226"],"issn-type":[{"value":"1946-6226","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,10,14]]},"assertion":[{"value":"2020-02-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-07-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-10-14","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}