{"id":"https://openalex.org/W183251975","doi":null,"title":"Compilation techniques for embedded data parallel languages","display_name":"Compilation techniques for embedded data parallel languages","publication_year":2011,"publication_date":"2011-01-01","ids":{"openalex":"https://openalex.org/W183251975","mag":"183251975"},"language":"en","primary_location":{"id":"mag:183251975","doi":null,"is_oa":false,"landing_page_url":"https://escholarship.org/content/qt6c02679n/qt6c02679n.pdf?t=mtfsd5","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null},"volume":null,"type":"article","is_traditional":true,"indexed_in":[],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5047285420","display_name":"Kurt Keutzer","orcid":"https://orcid.org/0000-0003-3868-8501","observed_orcids":["https://orcid.org/0000-0003-3868-8501"]},"institutions":[{"id":"https://openalex.org/I95457486","display_name":"University of California, Berkeley","ror":"https://ror.org/01an7q238","country_code":"US","type":"education","lineage":["https://openalex.org/I95457486"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Kurt Keutzer","raw_affiliation_strings":["University of California, Berkeley"],"raw_orcid":"https://orcid.org/0000-0003-3868-8501","affiliations":[{"raw_affiliation_string":"University of California, Berkeley","institution_ids":["https://openalex.org/I95457486"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5066242985","display_name":"Bryan Catanzaro","orcid":"https://orcid.org/0000-0003-0034-7728","observed_orcids":["https://orcid.org/0000-0003-0034-7728"]},"institutions":[{"id":"https://openalex.org/I95457486","display_name":"University of California, Berkeley","ror":"https://ror.org/01an7q238","country_code":"US","type":"education","lineage":["https://openalex.org/I95457486"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Bryan Catanzaro","raw_affiliation_strings":["University of California, Berkeley"],"raw_orcid":"https://orcid.org/0000-0003-0034-7728","affiliations":[{"raw_affiliation_string":"University of California, Berkeley","institution_ids":["https://openalex.org/I95457486"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I95457486"],"apc_list":null,"apc_paid":null,"fwci":1.101,"has_fulltext":false,"cited_by_count":4,"citation_normalized_percentile":{"value":0.81126494,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":88,"max":93},"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9926999807357788,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9926999807357788,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.003599999938160181,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10904","display_name":"Embedded Systems Design Techniques","score":0.0017000000225380063,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/copperheads","display_name":"Copperheads","score":0.7670000195503235},{"id":"https://openalex.org/keywords/data-parallel-languages","display_name":"data-parallel languages","score":0.621999979019165},{"id":"https://openalex.org/keywords/embedded-languages","display_name":"embedded languages","score":0.5109999775886536},{"id":"https://openalex.org/keywords/python","display_name":"Python","score":0.7879999876022339},{"id":"https://openalex.org/keywords/compiler-optimization","display_name":"compiler optimization","score":0.6010000109672546},{"id":"https://openalex.org/keywords/program-analysis","display_name":"program analysis","score":0.3190000057220459},{"id":"https://openalex.org/keywords/vectorization","display_name":"vectorization","score":0.9300000071525574},{"id":"https://openalex.org/keywords/hierarchical-memory","display_name":"hierarchical memory","score":0.5839999914169312},{"id":"https://openalex.org/keywords/cuda","display_name":"CUDA","score":0.3179999887943268},{"id":"https://openalex.org/keywords/graphics-processors","display_name":"graphics processors","score":0.5659999847412109},{"id":"https://openalex.org/keywords/developer-productivity","display_name":"developer productivity","score":0.49799999594688416},{"id":"https://openalex.org/keywords/domain-specific-languages","display_name":"domain-specific languages","score":0.4560000002384186}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8517832159996033},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.701871931552887},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6689733862876892},{"id":"https://openalex.org/C61483411","wikidata":"https://www.wikidata.org/wiki/Q3124522","display_name":"Data parallelism","level":3,"score":0.6378766894340515},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.6327633857727051},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.5950902700424194},{"id":"https://openalex.org/C3543717","wikidata":"https://www.wikidata.org/wiki/Q6007302","display_name":"Implicit parallelism","level":4,"score":0.5450806617736816},{"id":"https://openalex.org/C42992933","wikidata":"https://www.wikidata.org/wiki/Q691169","display_name":"Task parallelism","level":3,"score":0.5208971500396729},{"id":"https://openalex.org/C137364921","wikidata":"https://www.wikidata.org/wiki/Q27929394","display_name":"Parallel programming model","level":3,"score":0.4858565032482147},{"id":"https://openalex.org/C135257023","wikidata":"https://www.wikidata.org/wiki/Q691358","display_name":"Domain-specific language","level":2,"score":0.4648764133453369},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.415531724691391},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.4111030101776123},{"id":"https://openalex.org/C2781172179","wikidata":"https://www.wikidata.org/wiki/Q853109","display_name":"Parallelism (grammar)","level":2,"score":0.21793705224990845}],"mesh":[],"locations_count":1,"locations":[{"id":"mag:183251975","doi":null,"is_oa":false,"landing_page_url":"https://escholarship.org/content/qt6c02679n/qt6c02679n.pdf?t=mtfsd5","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":["https://openalex.org/W2765359913","https://openalex.org/W7008759146","https://openalex.org/W2138163628","https://openalex.org/W98678269","https://openalex.org/W2088394577","https://openalex.org/W2107063784","https://openalex.org/W2157089785","https://openalex.org/W4251638441","https://openalex.org/W2293267824","https://openalex.org/W7101073979"],"abstract_inverted_index":{"Contemporary":[0],"parallel":[1,36,96,109,113,179,194,202,211,218,226,263,272,334,351,361,372,386,425,472],"microprocessors":[2,114],"exploit":[3],"Chip":[4],"Multiprocessing":[5],"along":[6],"with":[7,55,248,406,417],"Single":[8],"Instruction,":[9],"Multiple":[10],"Data":[11],"parallelism":[12,27,58,356],"to":[13,67,80,88,111,181,269,289,332,374,391,403,470],"deliver":[14],"high":[15],"performance":[16,456],"on":[17,166,192,228,338,376,427,434],"applications":[18],"that":[19,186,286,300,322,399],"expose":[20],"substantial":[21],"fine-grained":[22],"data":[23,26,35,57,74,95,108,178,201,217,225,257,262,271,333,350,371,385],"parallelism.":[24],"Although":[25],"is":[28,45,53,115,187,336,432],"widely":[29,241],"available":[30],"in":[31,38,205,236,389],"many":[32],"computations,":[33],"implementing":[34],"algorithms":[37],"low-level":[39,318,450],"efficiency":[40],"languages":[41,138,172],"such":[42,76,98,123],"as":[43,77,91,99,124,173,175,381,383],"C++":[44],"often":[46],"a":[47,92,149,183,199,237,275,344,370],"difficult":[48],"task,":[49],"since":[50],"the":[51,63,86,118,130,145,156,160,167,176,240,280,295,305,326,354,396,412,421,446,455],"programmer":[52,82,87,209],"burdened":[54],"mapping":[56,347,368],"from":[59],"an":[60,465],"application":[61],"onto":[62,274,353],"hardware":[64],"structures":[65],"designed":[66,72],"execute":[68],"it.":[69],"Languages":[70],"specifically":[71],"for":[73,254,312,424],"parallelism,":[75],"NESL,":[78],"aim":[79],"improve":[81],"productivity":[83,121,168],"by":[84,359],"allowing":[85],"express":[89],"computation":[90,227],"composition":[93,214],"of":[94,120,132,147,159,169,215,230,239,298,325,348,414,441,454,457],"primitives,":[97],"map,":[100],"reduce":[101],"and":[102,126,190,223,246,259,267,283,303,309,341,445,467],"scan.":[103],"However,":[104],"efficiently":[105,290,404],"compiling":[106,313],"nested":[107,177,224,349],"computations":[110,212,264],"contemporary":[112,193,339],"challenging.":[116],"\r\nAdditionally,":[117],"rise":[119],"languages,":[122],"Ruby":[125],"Python,":[127],"has":[128],"facilitated":[129],"construction":[131],"domain-specific":[133,170],"embedded":[134,137,171,204],"languages.":[135],"These":[136],"employ":[139],"familiar":[140,216],"syntactic":[141],"constructs,":[142],"which":[143],"eases":[144],"task":[146],"learning":[148],"new":[150],"programming":[151,184,244,426],"environment,":[152],"while":[153],"also":[154],"retaining":[155],"full":[157],"capabilities":[158],"host":[161],"language.":[162],"This":[163],"work":[164],"capitalizes":[165],"well":[174,382,459],"abstraction":[180],"create":[182],"environment":[185],"both":[188,221],"productive":[189,468],"efficient":[191,317,449,466],"microprocessors.":[195,473],"We":[196,278,293,320,363,394],"describe":[197],"Copperhead,":[198],"high-level":[200],"language":[203,245],"Python.":[206],"The":[207],"Copperhead":[208,232,288,301,314,401,430,463],"writes":[210],"via":[213],"primitives":[219],"supporting":[220],"flat":[222],"arrays":[229],"data.":[231],"programs":[233,402],"are":[234],"expressed":[235],"subset":[238,297],"used":[242],"Python":[243,250,299,408],"interoperate":[247,405],"standard":[249,407],"modules,":[251],"including":[252],"libraries":[253],"numeric":[255],"computation,":[256],"visualization,":[258],"analysis.":[260],"\r\nCompiling":[261],"requires":[265],"analyses":[266],"transformations":[268,310],"schedule":[270],"operations":[273,352],"target":[276],"platform.":[277],"discuss":[279],"language,":[281],"compiler,":[282],"runtime":[284,397],"features":[285],"enable":[287],"do":[291],"so.":[292],"define":[294],"restricted":[296],"supports":[302],"introduce":[304],"program":[306,471],"analysis":[307],"techniques":[308,416],"necessary":[311],"code":[315,431,442],"into":[316],"implementations.":[319],"demonstrate":[321,411],"indiscriminate":[323],"use":[324],"flattening":[327],"or":[328],"vectorization":[329],"transform,":[330],"common":[331],"compilers,":[335],"inefficient":[337],"microprocessors,":[340],"we":[342],"advocate":[343],"more":[345],"direct":[346,367],"natural":[355],"hierarchy":[357],"provided":[358],"today's":[360],"platforms.":[362],"show":[364],"how":[365],"this":[366],"allows":[369,400],"compiler":[373,447],"capitalize":[375],"hierarchical":[377],"on-chip":[378],"memory":[379],"structures,":[380],"perform":[384],"primitive":[387],"fusion":[388],"order":[390],"gain":[392],"efficiency.":[393],"outline":[395],"support":[398],"modules.":[409],"\r\nWe":[410],"effectiveness":[413],"our":[415],"several":[418],"examples":[419],"targeting":[420],"CUDA":[422,461],"platform":[423],"graphics":[428],"processors.":[429],"concise,":[433],"average":[435],"requiring":[436],"3.6":[437],"times":[438],"fewer":[439],"lines":[440],"than":[443],"CUDA,":[444],"generates":[448],"implementations,":[451],"yielding":[452],"45\u2013100%":[453],"hand-crafted,":[458],"optimized":[460],"code.":[462],"provides":[464],"way":[469]},"counts_by_year":[{"year":2019,"cited_by_count":1},{"year":2014,"cited_by_count":1},{"year":2012,"cited_by_count":1}],"updated_date":"2025-11-06T04:12:42.849631","created_date":"2016-06-24T00:00:00"}
