{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,5]],"date-time":"2026-01-05T15:27:37Z","timestamp":1767626857019,"version":"3.28.0"},"reference-count":45,"publisher":"IEEE","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2011,4]]},"DOI":"10.1109\/cgo.2011.5764690","type":"proceedings-article","created":{"date-parts":[[2011,5,9]],"date-time":"2011-05-09T16:40:43Z","timestamp":1304959243000},"page":"224-235","source":"Crossref","is-referenced-by-count":26,"title":["Intel's Array Building Blocks: A retargetable, dynamic compiler and embedded language"],"prefix":"10.1109","author":[{"given":"Chris J.","family":"Newburn","sequence":"first","affiliation":[]},{"given":"Byoungro","family":"So","sequence":"additional","affiliation":[]},{"given":"Zhenying","family":"Liu","sequence":"additional","affiliation":[]},{"given":"Michael","family":"McCool","sequence":"additional","affiliation":[]},{"given":"Anwar","family":"Ghuloum","sequence":"additional","affiliation":[]},{"given":"Stefanus Du","family":"Toit","sequence":"additional","affiliation":[]},{"given":"Zhi Gang","family":"Wang","sequence":"additional","affiliation":[]},{"given":"Zhao Hui","family":"Du","sequence":"additional","affiliation":[]},{"given":"Yongjian","family":"Chen","sequence":"additional","affiliation":[]},{"given":"Gansha","family":"Wu","sequence":"additional","affiliation":[]},{"given":"Peng","family":"Guo","sequence":"additional","affiliation":[]},{"given":"Zhanglin","family":"Liu","sequence":"additional","affiliation":[]},{"given":"Dan","family":"Zhang","sequence":"additional","affiliation":[]}],"member":"263","reference":[{"doi-asserted-by":"publisher","key":"ref39","DOI":"10.1111\/j.1467-8659.2007.01012.x"},{"key":"ref38","article-title":"Auto-Vectorize Once, Run Everywhere","author":"nuzman","year":"2011","journal-title":"Proceedings of the International Symposium on Code Generation and Optimization"},{"year":"2004","author":"mccool","article-title":"Metaprogramming GPUs with Sh","key":"ref33"},{"doi-asserted-by":"publisher","key":"ref32","DOI":"10.1145\/1015706.1015801"},{"key":"ref31","first-page":"57","article-title":"Shader metaprogramming","author":"mccool","year":"2002","journal-title":"HWWS '02 Proceedings of the ACM SIGGRAPH\/EUROGRAPHICS conference on Graphics hardware"},{"year":"2004","author":"mattson","article-title":"Patterns for Parallel Programming","key":"ref30"},{"doi-asserted-by":"publisher","key":"ref37","DOI":"10.1145\/1365490.1365500"},{"year":"2008","author":"munshi","journal-title":"OpenCL Specification Version 1 0","key":"ref36"},{"key":"ref35","article-title":"Structured Parallel Programming with Deterministic Patterns","author":"mccool","year":"2010","journal-title":"HotPar 2010 (2nd USENIX Workshop on Hot Topics in Parallelism)"},{"key":"ref34","first-page":"9","article-title":"Data-Parallel Programming on the Cell BE and the GPU Using the RapidMind Development Platform","author":"mccool","year":"2006","journal-title":"GSPx Multicore Applications Conference"},{"key":"ref10","first-page":"18","article-title":"Design patterns as language constructs","volume":"11","author":"bosch","year":"1998","journal-title":"Journal of Object-Oriented Programming"},{"key":"ref40","first-page":"230","article-title":"Design patterns for parallel programming","author":"siu","year":"1996","journal-title":"Proceedings of the 1996 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA'96)"},{"doi-asserted-by":"publisher","key":"ref11","DOI":"10.1109\/ICPP.2002.1040881"},{"key":"ref12","first-page":"1193","article-title":"OdinMP\/CCp - a portable implementation of OpenMP for C. Concurrency - Practice and Experience","volume":"12","author":"brunschen","year":"2000"},{"doi-asserted-by":"publisher","key":"ref13","DOI":"10.1109\/CGO.2007.13"},{"key":"ref14","article-title":"Compiling an Embedded Data Parallel Language","author":"catanzaro","year":"2010","journal-title":"Technical Report UCB\/EECS-2010&#x2013;5"},{"key":"ref15","article-title":"SEJITS: Getting Productivity and Performance With Selective Embedded JIT Specialization","author":"catanzaro","year":"2010","journal-title":"Tech Rep UCB\/EECS-2011&#x2013;20"},{"doi-asserted-by":"publisher","key":"ref16","DOI":"10.1007\/3-540-44681-8_76"},{"doi-asserted-by":"publisher","key":"ref17","DOI":"10.1145\/169683.174152"},{"year":"0","journal-title":"Clyther Python language extension for OpenCL","key":"ref18"},{"year":"1989","author":"cole","article-title":"Algorithmic Skeletons: Structured Management of Parallel Computation","key":"ref19"},{"doi-asserted-by":"publisher","key":"ref28","DOI":"10.1016\/S0167-8191(02)00190-4"},{"year":"0","journal-title":"APL A Programming Language","key":"ref4"},{"doi-asserted-by":"publisher","key":"ref27","DOI":"10.1145\/231379.231407"},{"year":"2002","author":"allen","article-title":"Optimizing Compilers for Modern Architectures.","key":"ref3"},{"year":"2006","author":"asanovic","journal-title":"The Landscape of Parallel Computing Research A View from Berkeley","key":"ref6"},{"key":"ref29","article-title":"A pattern language for parallel application programs","author":"massingill","year":"1999","journal-title":"Technical Report CISE TR 99&#x2013;022"},{"year":"2010","journal-title":"Intel&#x00AE; Array Building Blocks Documentation","key":"ref5"},{"doi-asserted-by":"publisher","key":"ref8","DOI":"10.1145\/155332.155343"},{"year":"1990","author":"blelloch","article-title":"Vector models for data-parallel computing","key":"ref7"},{"doi-asserted-by":"publisher","key":"ref2","DOI":"10.1016\/j.cl.2006.07.004"},{"doi-asserted-by":"publisher","key":"ref9","DOI":"10.1145\/227234.227246"},{"year":"2004","author":"abrahams","article-title":"C++ Template Metaprogramming","key":"ref1"},{"doi-asserted-by":"publisher","key":"ref20","DOI":"10.1016\/j.parco.2003.12.002"},{"key":"ref45","first-page":"187","article-title":"Scalarization on Short Vector Machines","author":"zhao","year":"2005","journal-title":"Proceedings of the IEEE International Symposium on Performance Analysis of Systems and Software"},{"year":"2010","author":"du toit","article-title":"A Data-parallel Virtual Machine","key":"ref22"},{"year":"2000","author":"czarnecki","article-title":"Generative Programming: Methods, Tools, and Applications","key":"ref21"},{"doi-asserted-by":"publisher","key":"ref42","DOI":"10.1145\/280277.280278"},{"doi-asserted-by":"publisher","key":"ref24","DOI":"10.1145\/1362702.1362707"},{"key":"ref41","article-title":"HPC Technology - Scale Up and Scale Out","author":"skaugen","year":"2010","journal-title":"Keynote International Supercomputing Conference"},{"year":"1994","author":"gamma","article-title":"Design Patterns: Elements of Reusable Object-Oriented Software","key":"ref23"},{"key":"ref44","article-title":"C++ templates as partial evaluation","author":"veldhuizen","year":"1999","journal-title":"Proc ACM SIGPLAN Workshop Partial Evaluation and Semantics-Based Program Manipulation"},{"doi-asserted-by":"publisher","key":"ref26","DOI":"10.1145\/7902.7903"},{"doi-asserted-by":"publisher","key":"ref43","DOI":"10.1145\/781498.781532"},{"year":"2003","author":"herrington","article-title":"Code Generation in Action","key":"ref25"}],"event":{"name":"2011 9th Annual IEEE\/ACM International Symposium on Code Generation and Optimization (CGO)","start":{"date-parts":[[2011,4,2]]},"location":"Chamonix, France","end":{"date-parts":[[2011,4,6]]}},"container-title":["International Symposium on Code Generation and Optimization (CGO 2011)"],"original-title":[],"link":[{"URL":"http:\/\/xplorestaging.ieee.org\/ielx5\/5755493\/5764641\/05764690.pdf?arnumber=5764690","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2017,3,21]],"date-time":"2017-03-21T05:17:15Z","timestamp":1490073435000},"score":1,"resource":{"primary":{"URL":"http:\/\/ieeexplore.ieee.org\/document\/5764690\/"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2011,4]]},"references-count":45,"URL":"https:\/\/doi.org\/10.1109\/cgo.2011.5764690","relation":{},"subject":[],"published":{"date-parts":[[2011,4]]}}}