{"id":"https://openalex.org/W2138163628","doi":"https://doi.org/10.1145/1941553.1941562","title":"Copperhead","display_name":"Copperhead","publication_year":2011,"publication_date":"2011-02-12","ids":{"openalex":"https://openalex.org/W2138163628","doi":"https://doi.org/10.1145/1941553.1941562","mag":"2138163628"},"language":"en","primary_location":{"id":"doi:10.1145/1941553.1941562","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1941553.1941562","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 16th ACM symposium on Principles and practice of parallel programming","raw_type":"proceedings-article"},"type":"conference-paper","indexed_in":["crossref"],"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/A5066242985","display_name":"Bryan Catanzaro","orcid":"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, Berkeley, CA, USA","University of California, Berkeley, Berkeley, CA USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of California, Berkeley, Berkeley, CA, USA","institution_ids":["https://openalex.org/I95457486"]},{"raw_affiliation_string":"University of California, Berkeley, Berkeley, CA USA","institution_ids":["https://openalex.org/I95457486"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5024606205","display_name":"Michael Garland","orcid":"https://orcid.org/0000-0001-6093-7602"},"institutions":[{"id":"https://openalex.org/I1304085615","display_name":"Nvidia (United Kingdom)","ror":"https://ror.org/02kr42612","country_code":"GB","type":"company","lineage":["https://openalex.org/I1304085615","https://openalex.org/I4210127875"]},{"id":"https://openalex.org/I4210127875","display_name":"Nvidia (United States)","ror":"https://ror.org/03jdj4y14","country_code":"US","type":"company","lineage":["https://openalex.org/I4210127875"]}],"countries":["GB","US"],"is_corresponding":false,"raw_author_name":"Michael Garland","raw_affiliation_strings":["NVIDIA Corporation, Santa Clara, CA, USA","[Nvidia Corporation, Santa Clara, CA, USA]"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"NVIDIA Corporation, Santa Clara, CA, USA","institution_ids":["https://openalex.org/I4210127875"]},{"raw_affiliation_string":"[Nvidia Corporation, Santa Clara, CA, USA]","institution_ids":["https://openalex.org/I1304085615"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5047285420","display_name":"Kurt Keutzer","orcid":"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, Berkeley, CA, USA","University of California, Berkeley, Berkeley, CA USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of California, Berkeley, Berkeley, CA, USA","institution_ids":["https://openalex.org/I95457486"]},{"raw_affiliation_string":"University of California, Berkeley, Berkeley, CA USA","institution_ids":["https://openalex.org/I95457486"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":false,"cited_by_count":188,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"47","last_page":"56"},"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.9994999766349792,"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.9994999766349792,"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/T13650","display_name":"Computational Physics and Python Applications","score":0.9919999837875366,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/T11181","display_name":"Advanced Data Storage Technologies","score":0.9872999787330627,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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/computer-science","display_name":"Computer science","score":0.8433197140693665},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.7428653240203857},{"id":"https://openalex.org/keywords/cuda","display_name":"CUDA","score":0.719050407409668},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7079273462295532},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.6611810922622681},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.6305567026138306},{"id":"https://openalex.org/keywords/programmer","display_name":"Programmer","score":0.4447743594646454},{"id":"https://openalex.org/keywords/computation","display_name":"Computation","score":0.43126535415649414}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8433197140693665},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.7428653240203857},{"id":"https://openalex.org/C2778119891","wikidata":"https://www.wikidata.org/wiki/Q477690","display_name":"CUDA","level":2,"score":0.719050407409668},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7079273462295532},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.6611810922622681},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.6305567026138306},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.4447743594646454},{"id":"https://openalex.org/C45374587","wikidata":"https://www.wikidata.org/wiki/Q12525525","display_name":"Computation","level":2,"score":0.43126535415649414}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/1941553.1941562","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1941553.1941562","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 16th ACM symposium on Principles and practice of parallel programming","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":27,"referenced_works":["https://openalex.org/W164384110","https://openalex.org/W1530781137","https://openalex.org/W1537913012","https://openalex.org/W1965122136","https://openalex.org/W1967810725","https://openalex.org/W2028499920","https://openalex.org/W2098426571","https://openalex.org/W2112708371","https://openalex.org/W2118324422","https://openalex.org/W2128853364","https://openalex.org/W2136944230","https://openalex.org/W2138659362","https://openalex.org/W2139935536","https://openalex.org/W2150848984","https://openalex.org/W2151040995","https://openalex.org/W2151065029","https://openalex.org/W2159350554","https://openalex.org/W2163229756","https://openalex.org/W2170634604","https://openalex.org/W2294911930","https://openalex.org/W2436525433","https://openalex.org/W2484238088","https://openalex.org/W2902152825","https://openalex.org/W3138798301","https://openalex.org/W4250290707","https://openalex.org/W6676993949","https://openalex.org/W6696864383"],"related_works":["https://openalex.org/W2379153735","https://openalex.org/W3062287","https://openalex.org/W1537323515","https://openalex.org/W3213381848","https://openalex.org/W2017587301","https://openalex.org/W2012954338","https://openalex.org/W2005148983","https://openalex.org/W2096672917","https://openalex.org/W2392023973","https://openalex.org/W2939411666"],"abstract_inverted_index":{"Modern":[0],"parallel":[1,25,39,56,65,72,80,133,190],"microprocessors":[2,40],"deliver":[3],"high":[4],"performance":[5,219],"on":[6,82,192,198],"applications":[7],"that":[8,126],"expose":[9],"substantial":[10],"fine-grained":[11],"data":[12,15,24,55,71,79,111,132],"parallelism.":[13],"Although":[14],"parallelism":[16],"is":[17,30,196],"widely":[18,95],"available":[19],"in":[20,27,59,90],"many":[21],"computations,":[22],"implementing":[23],"algorithms":[26],"low-level":[28,158],"languages":[29],"often":[31],"an":[32],"unnecessarily":[33],"difficult":[34],"task.":[35],"The":[36,61],"characteristics":[37],"of":[38,44,51,69,84,93,140,179,205,217,220],"and":[41,77,100,113,123,145,209],"the":[42,94,120,137,147,163,177,186,210,218],"limitations":[43],"current":[45],"programming":[46,98,191],"methodologies":[47],"motivate":[48],"our":[49,180],"design":[50],"Copperhead,":[52],"a":[53,91],"high-level":[54],"language":[57,99],"embedded":[58],"Python.":[60],"Copperhead":[62,86,128,143,154,168,194],"programmer":[63],"describes":[64],"computations":[66],"via":[67],"composition":[68],"familiar":[70],"primitives":[73],"supporting":[74],"both":[75],"flat":[76],"nested":[78],"computation":[81],"arrays":[83],"data.":[85],"programs":[87,169],"are":[88],"expressed":[89],"subset":[92,139],"used":[96],"Python":[97,104,141,173],"interoperate":[101,170],"with":[102,171,182],"standard":[103,172],"modules,":[105],"including":[106],"libraries":[107],"for":[108,152,189],"numeric":[109],"computation,":[110],"visualization,":[112],"analysis.":[114],"In":[115],"this":[116],"paper,":[117],"we":[118],"discuss":[119],"language,":[121],"compiler,":[122],"runtime":[124,164],"features":[125],"enable":[127],"to":[129],"efficiently":[130],"execute":[131],"code.":[134,225],"We":[135,160,175],"define":[136],"restricted":[138],"which":[142,167],"supports":[144],"introduce":[146],"program":[148],"analysis":[149],"techniques":[150,181],"necessary":[151],"compiling":[153],"code":[155,195,206],"into":[156],"efficient":[157,213],"implementations.":[159],"also":[161],"outline":[162],"support":[165],"by":[166],"modules.":[174],"demonstrate":[176],"effectiveness":[178],"several":[183],"examples":[184],"targeting":[185],"CUDA":[187,224],"platform":[188],"GPUs.":[193],"concise,":[197],"average":[199],"requiring":[200],"3.6":[201],"times":[202],"fewer":[203],"lines":[204],"than":[207],"CUDA,":[208],"compiler":[211],"generates":[212],"code,":[214],"yielding":[215],"45-100%":[216],"hand-crafted,":[221],"well":[222],"optimized":[223]},"counts_by_year":[{"year":2024,"cited_by_count":2},{"year":2023,"cited_by_count":2},{"year":2021,"cited_by_count":3},{"year":2020,"cited_by_count":5},{"year":2019,"cited_by_count":10},{"year":2018,"cited_by_count":6},{"year":2017,"cited_by_count":14},{"year":2016,"cited_by_count":19},{"year":2015,"cited_by_count":23},{"year":2014,"cited_by_count":34},{"year":2013,"cited_by_count":29},{"year":2012,"cited_by_count":20}],"updated_date":"2026-07-14T23:27:15.235271","created_date":"2016-06-24T00:00:00"}
