{"id":"https://openalex.org/W2134616937","doi":"https://doi.org/10.1145/1596655.1596670","title":"Automatic parallelization for graphics processing units","display_name":"Automatic parallelization for graphics processing units","publication_year":2009,"publication_date":"2009-08-27","ids":{"openalex":"https://openalex.org/W2134616937","doi":"https://doi.org/10.1145/1596655.1596670","mag":"2134616937"},"language":"en","primary_location":{"id":"doi:10.1145/1596655.1596670","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1596655.1596670","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 7th International Conference on Principles and Practice of Programming in Java","raw_type":"proceedings-article"},"type":"article","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/A5061642199","display_name":"Alan Leung","orcid":"https://orcid.org/0009-0007-8316-8499"},"institutions":[{"id":"https://openalex.org/I151746483","display_name":"University of Waterloo","ror":"https://ror.org/01aff2v68","country_code":"CA","type":"education","lineage":["https://openalex.org/I151746483"]}],"countries":["CA"],"is_corresponding":true,"raw_author_name":"Alan Leung","raw_affiliation_strings":["University of Waterloo, Waterloo, ON, Canada"],"affiliations":[{"raw_affiliation_string":"University of Waterloo, Waterloo, ON, Canada","institution_ids":["https://openalex.org/I151746483"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5039616179","display_name":"Ond\u0159ej Lhot\u00e1k","orcid":"https://orcid.org/0000-0001-9066-1889"},"institutions":[{"id":"https://openalex.org/I151746483","display_name":"University of Waterloo","ror":"https://ror.org/01aff2v68","country_code":"CA","type":"education","lineage":["https://openalex.org/I151746483"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Ond\u0159ej Lhot\u00e1k","raw_affiliation_strings":["University of Waterloo, Waterloo, ON, Canada"],"affiliations":[{"raw_affiliation_string":"University of Waterloo, Waterloo, ON, Canada","institution_ids":["https://openalex.org/I151746483"]}]},{"author_position":"last","author":{"id":null,"display_name":"Ghulam Lashari","orcid":null},"institutions":[{"id":"https://openalex.org/I151746483","display_name":"University of Waterloo","ror":"https://ror.org/01aff2v68","country_code":"CA","type":"education","lineage":["https://openalex.org/I151746483"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Ghulam Lashari","raw_affiliation_strings":["University of Waterloo, Waterloo, ON, Canada"],"affiliations":[{"raw_affiliation_string":"University of Waterloo, Waterloo, ON, Canada","institution_ids":["https://openalex.org/I151746483"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5061642199"],"corresponding_institution_ids":["https://openalex.org/I151746483"],"apc_list":null,"apc_paid":null,"fwci":5.0918,"has_fulltext":false,"cited_by_count":52,"citation_normalized_percentile":{"value":0.95939423,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"91","last_page":"100"},"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.9998999834060669,"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.9998999834060669,"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/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.9991000294685364,"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"}},{"id":"https://openalex.org/T10904","display_name":"Embedded Systems Design Techniques","score":0.9984999895095825,"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/computer-science","display_name":"Computer science","score":0.9065840244293213},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.6250001192092896},{"id":"https://openalex.org/keywords/speedup","display_name":"Speedup","score":0.6037721037864685},{"id":"https://openalex.org/keywords/just-in-time-compilation","display_name":"Just-in-time compilation","score":0.5915569067001343},{"id":"https://openalex.org/keywords/graphics","display_name":"Graphics","score":0.5573538541793823},{"id":"https://openalex.org/keywords/control-flow","display_name":"Control flow","score":0.5395495295524597},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.5234063267707825},{"id":"https://openalex.org/keywords/general-purpose-computing-on-graphics-processing-units","display_name":"General-purpose computing on graphics processing units","score":0.46811550855636597},{"id":"https://openalex.org/keywords/bytecode","display_name":"Bytecode","score":0.46087056398391724},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.44836658239364624},{"id":"https://openalex.org/keywords/cuda","display_name":"CUDA","score":0.44354182481765747},{"id":"https://openalex.org/keywords/java-bytecode","display_name":"Java bytecode","score":0.44212740659713745},{"id":"https://openalex.org/keywords/optimizing-compiler","display_name":"Optimizing compiler","score":0.4225735068321228},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.392447829246521},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.2284506857395172},{"id":"https://openalex.org/keywords/java-applet","display_name":"Java applet","score":0.1337226927280426},{"id":"https://openalex.org/keywords/java-annotation","display_name":"Java annotation","score":0.1151961088180542}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9065840244293213},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.6250001192092896},{"id":"https://openalex.org/C68339613","wikidata":"https://www.wikidata.org/wiki/Q1549489","display_name":"Speedup","level":2,"score":0.6037721037864685},{"id":"https://openalex.org/C76782552","wikidata":"https://www.wikidata.org/wiki/Q110546","display_name":"Just-in-time compilation","level":3,"score":0.5915569067001343},{"id":"https://openalex.org/C21442007","wikidata":"https://www.wikidata.org/wiki/Q1027879","display_name":"Graphics","level":2,"score":0.5573538541793823},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.5395495295524597},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.5234063267707825},{"id":"https://openalex.org/C50630238","wikidata":"https://www.wikidata.org/wiki/Q971505","display_name":"General-purpose computing on graphics processing units","level":3,"score":0.46811550855636597},{"id":"https://openalex.org/C2779818221","wikidata":"https://www.wikidata.org/wiki/Q837330","display_name":"Bytecode","level":3,"score":0.46087056398391724},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.44836658239364624},{"id":"https://openalex.org/C2778119891","wikidata":"https://www.wikidata.org/wiki/Q477690","display_name":"CUDA","level":2,"score":0.44354182481765747},{"id":"https://openalex.org/C2777472213","wikidata":"https://www.wikidata.org/wiki/Q137496","display_name":"Java bytecode","level":5,"score":0.44212740659713745},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.4225735068321228},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.392447829246521},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.2284506857395172},{"id":"https://openalex.org/C15524039","wikidata":"https://www.wikidata.org/wiki/Q865817","display_name":"Java applet","level":3,"score":0.1337226927280426},{"id":"https://openalex.org/C168702491","wikidata":"https://www.wikidata.org/wiki/Q567345","display_name":"Java annotation","level":4,"score":0.1151961088180542}],"mesh":[],"locations_count":4,"locations":[{"id":"doi:10.1145/1596655.1596670","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1596655.1596670","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 7th International Conference on Principles and Practice of Programming in Java","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.149.9926","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.149.9926","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://plg.uwaterloo.ca/~olhotak/pubs/pppj09.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.150.1165","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.150.1165","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://plg.uwaterloo.ca/~olhotak/pubs/thesis-acleung-mmath.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.941.2744","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.941.2744","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"https://uwspace.uwaterloo.ca/bitstream/handle/10012/3752/thesis.pdf%3Bjsessionid%3D8222776AB9C22A87A71155E6914E10FD?sequence%3D1","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":42,"referenced_works":["https://openalex.org/W27956500","https://openalex.org/W127897580","https://openalex.org/W794758758","https://openalex.org/W1494930385","https://openalex.org/W1495550651","https://openalex.org/W1499890874","https://openalex.org/W1535801212","https://openalex.org/W1541631323","https://openalex.org/W1558545464","https://openalex.org/W1582788465","https://openalex.org/W1591319746","https://openalex.org/W1912340635","https://openalex.org/W1993955048","https://openalex.org/W2007920703","https://openalex.org/W2015688438","https://openalex.org/W2032309817","https://openalex.org/W2037929850","https://openalex.org/W2069703635","https://openalex.org/W2074918600","https://openalex.org/W2075585180","https://openalex.org/W2100579514","https://openalex.org/W2102839400","https://openalex.org/W2108157916","https://openalex.org/W2111394443","https://openalex.org/W2112482891","https://openalex.org/W2118823870","https://openalex.org/W2119539611","https://openalex.org/W2137857636","https://openalex.org/W2144643978","https://openalex.org/W2146626914","https://openalex.org/W2147423491","https://openalex.org/W2151198779","https://openalex.org/W2162018717","https://openalex.org/W2163229756","https://openalex.org/W2169248772","https://openalex.org/W2171641226","https://openalex.org/W2475431187","https://openalex.org/W2914814803","https://openalex.org/W4240687373","https://openalex.org/W4246430693","https://openalex.org/W4256238177","https://openalex.org/W4301041015"],"related_works":["https://openalex.org/W29925566","https://openalex.org/W2992753978","https://openalex.org/W1991206705","https://openalex.org/W2168933008","https://openalex.org/W2735405528","https://openalex.org/W2008905239","https://openalex.org/W2010540686","https://openalex.org/W2028950884","https://openalex.org/W4394793032","https://openalex.org/W563872716"],"abstract_inverted_index":{"Accelerated":[0],"graphics":[1],"cards,":[2],"or":[3],"Graphics":[4],"Processing":[5],"Units":[6],"(GPUs),":[7],"have":[8],"become":[9],"ubiquitous":[10],"in":[11,24,162],"recent":[12],"years.":[13],"On":[14],"the":[15,47,59,76,80,104,114,118,121,163,166,173,178,183],"right":[16],"kinds":[17],"of":[18,26,44,58,79,101,123,165,175,185],"problems,":[19],"GPUs":[20,36,54],"greatly":[21],"surpass":[22],"CPUs":[23],"terms":[25],"raw":[27,48],"performance.":[28],"However,":[29],"because":[30],"they":[31],"are":[32,37,87],"difficult":[33],"to":[34,66,89,97,146,155,159],"program,":[35],"used":[38,88],"only":[39],"for":[40],"a":[41,67,99,109],"narrow":[42],"class":[43],"special-purpose":[45],"applications;":[46],"processing":[49],"power":[50],"made":[51],"available":[52,116],"by":[53],"is":[55,93,138],"unused":[56],"most":[57],"time.":[60],"This":[61],"paper":[62,107,151],"presents":[63,108,153],"an":[64],"extension":[65],"Java":[68,167],"JIT":[69],"compiler":[70],"that":[71,112,141],"executes":[72],"suitable":[73],"code":[74,102],"on":[75,103],"GPU":[77,119,133],"instead":[78],"CPU.":[81],"Both":[82],"static":[83],"and":[84,95,126,132,182],"dynamic":[85],"features":[86],"decide":[90],"whether":[91],"it":[92,142],"feasible":[94],"beneficial":[96],"off-load":[98],"piece":[100],"GPU.":[105],"The":[106,135,150],"cost":[110,122,136],"model":[111,137],"balances":[113],"speedup":[115],"from":[117],"against":[120],"transferring":[124],"input":[125],"output":[127],"data":[128],"between":[129],"main":[130],"memory":[131],"memory.":[134],"parameterized":[139],"so":[140],"can":[143],"be":[144],"applied":[145],"different":[147],"hardware":[148],"combinations.":[149],"also":[152],"ways":[154],"overcome":[156],"several":[157],"obstacles":[158],"parallelization":[160],"inherent":[161],"design":[164],"bytecode":[168],"language:":[169],"unstructured":[170],"control":[171],"flow,":[172],"lack":[174],"multi-dimensional":[176],"arrays,":[177],"precise":[179],"exception":[180],"semantics,":[181],"proliferation":[184],"indirect":[186],"references.":[187],"1.":[188]},"counts_by_year":[{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":10},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":2},{"year":2016,"cited_by_count":3},{"year":2015,"cited_by_count":3},{"year":2014,"cited_by_count":5},{"year":2013,"cited_by_count":6},{"year":2012,"cited_by_count":7}],"updated_date":"2026-04-16T08:26:57.006410","created_date":"2025-10-10T00:00:00"}
