{"id":"https://openalex.org/W1509811574","doi":null,"title":"Compilation techniques for explicitly parallel programs","display_name":"Compilation techniques for explicitly parallel programs","publication_year":1999,"publication_date":"1999-01-01","ids":{"openalex":"https://openalex.org/W1509811574","mag":"1509811574"},"language":"en","primary_location":{"id":"mag:1509811574","doi":null,"is_oa":false,"landing_page_url":"https://www.ideals.illinois.edu/handle/2142/81961","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/A5109071293","display_name":"David Padua","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"David Padua","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]},{"author_position":"last","author":{"id":"https://openalex.org/A5100767182","display_name":"Jaejin Lee","orcid":"https://orcid.org/0000-0003-4638-8170","observed_orcids":["https://orcid.org/0000-0003-4638-8170"]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Jaejin Lee","raw_affiliation_strings":[],"raw_orcid":"https://orcid.org/0000-0003-4638-8170","affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.9577,"has_fulltext":false,"cited_by_count":20,"citation_normalized_percentile":{"value":0.85824059,"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.9634000062942505,"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.9634000062942505,"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.033900000154972076,"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/T10772","display_name":"Distributed systems and fault tolerance","score":0.0008999999845400453,"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/shared-memory-parallel-programs","display_name":"shared-memory parallel programs","score":0.7599999904632568},{"id":"https://openalex.org/keywords/sequential-consistency","display_name":"sequential consistency","score":0.8050000071525574},{"id":"https://openalex.org/keywords/data-races","display_name":"data races","score":0.6930000185966492},{"id":"https://openalex.org/keywords/synchronization","display_name":"synchronization","score":0.8669999837875366},{"id":"https://openalex.org/keywords/compiler-optimization","display_name":"compiler optimization","score":0.6679999828338623},{"id":"https://openalex.org/keywords/openmp","display_name":"OpenMP","score":0.6449999809265137},{"id":"https://openalex.org/keywords/pthreads","display_name":"Pthreads","score":0.6779999732971191},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.8889999985694885}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8632888793945312},{"id":"https://openalex.org/C37279795","wikidata":"https://www.wikidata.org/wiki/Q2492305","display_name":"Consistency model","level":3,"score":0.7955017685890198},{"id":"https://openalex.org/C82029504","wikidata":"https://www.wikidata.org/wiki/Q4373882","display_name":"Sequential consistency","level":4,"score":0.7739927172660828},{"id":"https://openalex.org/C41138395","wikidata":"https://www.wikidata.org/wiki/Q928112","display_name":"POSIX Threads","level":3,"score":0.723939061164856},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7009427547454834},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.693598210811615},{"id":"https://openalex.org/C2776436953","wikidata":"https://www.wikidata.org/wiki/Q5163215","display_name":"Consistency (knowledge bases)","level":2,"score":0.6144438982009888},{"id":"https://openalex.org/C122377713","wikidata":"https://www.wikidata.org/wiki/Q4422799","display_name":"Weak consistency","level":4,"score":0.6004549264907837},{"id":"https://openalex.org/C12186640","wikidata":"https://www.wikidata.org/wiki/Q6815743","display_name":"Memory model","level":3,"score":0.5973870158195496},{"id":"https://openalex.org/C138101251","wikidata":"https://www.wikidata.org/wiki/Q213092","display_name":"Thread (computing)","level":2,"score":0.5782583951950073},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.5294458866119385},{"id":"https://openalex.org/C133875982","wikidata":"https://www.wikidata.org/wiki/Q764810","display_name":"Shared memory","level":2,"score":0.5256572961807251},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.49734094738960266},{"id":"https://openalex.org/C141917322","wikidata":"https://www.wikidata.org/wiki/Q1025017","display_name":"Cache coherence","level":5,"score":0.49169427156448364},{"id":"https://openalex.org/C106251023","wikidata":"https://www.wikidata.org/wiki/Q851989","display_name":"Porting","level":3,"score":0.4552929699420929},{"id":"https://openalex.org/C31388003","wikidata":"https://www.wikidata.org/wiki/Q7624548","display_name":"Strong consistency","level":3,"score":0.23636817932128906},{"id":"https://openalex.org/C189783530","wikidata":"https://www.wikidata.org/wiki/Q352090","display_name":"CPU cache","level":3,"score":0.1422308385372162},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.1156173050403595},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.09433308243751526},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.08839938044548035},{"id":"https://openalex.org/C38556500","wikidata":"https://www.wikidata.org/wiki/Q13404475","display_name":"Cache algorithms","level":4,"score":0.0},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.0},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.0},{"id":"https://openalex.org/C185429906","wikidata":"https://www.wikidata.org/wiki/Q1130160","display_name":"Estimator","level":2,"score":0.0},{"id":"https://openalex.org/C115537543","wikidata":"https://www.wikidata.org/wiki/Q165596","display_name":"Cache","level":2,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"mag:1509811574","doi":null,"is_oa":false,"landing_page_url":"https://www.ideals.illinois.edu/handle/2142/81961","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":3,"referenced_works":["https://openalex.org/W1507881093","https://openalex.org/W2055060936","https://openalex.org/W2092284451"],"related_works":["https://openalex.org/W2141395109","https://openalex.org/W4249662205","https://openalex.org/W1583075829","https://openalex.org/W7100997308","https://openalex.org/W6921884546","https://openalex.org/W53898301","https://openalex.org/W2035330754","https://openalex.org/W7099904567","https://openalex.org/W1480331025","https://openalex.org/W1854250158"],"abstract_inverted_index":{"A":[0],"problem":[1],"faced":[2],"by":[3,203,250,289],"compilers":[4,175],"of":[5,17,22,143,148,200,208,217,248,254,323],"explicitly":[6,131],"parallel":[7,45,132,171,308,340],"languages,":[8],"such":[9],"as":[10],"Java,":[11],"OpenMP,":[12],"and":[13,29,38,79,121,186,214,268,294,327],"Pthreads,":[14],"the":[15,20,48,62,144,161,180,198,205,209,215,218,246,252,263,269,319,324],"solution":[16],"which":[18,86],"is":[19,25,87,93,256],"focus":[21],"this":[23,76,116],"thesis,":[24,117],"that":[26,173,244],"data":[27],"races":[28],"synchronization":[30],"make":[31],"it":[32,150],"impossible":[33],"to":[34,42,56,166,170,187,233,307],"apply":[35],"classical":[36,49,291,303],"optimization":[37,122,164,305],"analysis":[39,120,282],"techniques":[40,123,165,306],"directly":[41],"shared":[43,101,129],"memory":[44,72,102,130,183,211],"programs":[46,172],"because":[47],"methods":[50],"do":[51,107,222],"not":[52,88,108],"account":[53],"for":[54,124,128],"updates":[55],"variables":[57],"in":[58,236,332],"threads":[59],"other":[60],"than":[61],"one":[63],"being":[64],"analyzed.":[65],"\r\nMany":[66],"current":[67],"multiprocessor":[68,334],"architectures":[69],"follow":[70],"relaxed":[71,90,158,182],"consistency":[73,91,113,184,212],"models.":[74],"However,":[75],"makes":[77],"programming":[78],"porting":[80],"more":[81],"difficult.":[82],"Moreover,":[83],"sequential":[84,112,189],"consistency,":[85,190],"a":[89,139,152,157,226,234,237,333,339],"model,":[92],"what":[94,111],"most":[95],"programmers":[96,137],"assume":[97],"when":[98],"they":[99,106],"program":[100,309,326],"multiprocessors,":[103],"even":[104],"if":[105],"know":[109],"exactly":[110],"is.":[114],"\r\nIn":[115],"we":[118,224,279,317],"present":[119],"an":[125,281],"optimizing":[126],"compiler":[127,135,162,304],"programs.":[133],"The":[134],"presents":[136],"with":[138,231],"sequentially":[140,153],"consistent":[141,154],"view":[142],"underlying":[145,181,210],"machine":[146],"irrespective":[147],"whether":[149],"follows":[151],"model":[155,185,213],"or":[156],"model.":[159],"Furthermore,":[160],"allows":[163],"be":[167],"applied":[168],"correctly":[169],"conventional":[174],"cannot":[176],"handle.":[177],"\r\nTo":[178],"hide":[179],"guarantee":[188,318],"our":[191],"algorithm":[192],"inserts":[193],"fence":[194,201,219],"instructions.":[195],"We":[196,241,298,336],"reduce":[197],"number":[199,247,253],"instructions":[202],"exploiting":[204],"ordering":[206],"constraints":[207],"property":[216],"instruction.":[220],"To":[221],"so,":[223],"introduce":[225,259],"new":[227],"concept":[228],"called":[229,284],"dominance":[230],"respect":[232],"node":[235],"control":[238,265],"flow":[239,266],"graph.":[240],"also":[242,299,337],"show":[243],"reducing":[245],"fences":[249],"minimizing":[251],"nodes":[255],"NP-hard.":[257],"\r\nWe":[258],"two":[260],"intermediate":[261,312],"representations:":[262],"concurrent":[264,270,285],"graph,":[267],"static":[271],"single":[272,329],"assignment":[273],"form.":[274],"Based":[275],"on":[276],"these":[277],"representations,":[278],"develop":[280],"technique,":[283],"global":[286,295],"value":[287,292,296],"numbering,":[288],"extending":[290],"partitioning":[293],"numbering.":[297],"extend":[300],"commonly":[301],"used":[302],"using":[310],"those":[311],"representations.":[313],"By":[314],"doing":[315],"this,":[316],"correctness":[320],"(sequential":[321],"consistency)":[322],"optimized":[325],"maintain":[328],"processor":[330],"performance":[331],"environment.":[335],"describe":[338],"loop":[341],"overhead":[342],"reduction":[343],"technique.":[344]},"counts_by_year":[{"year":2015,"cited_by_count":1}],"updated_date":"2026-10-12T09:40:04.860316","created_date":"2016-06-24T00:00:00"}
