{"id":"https://openalex.org/W2274823567","doi":"https://doi.org/10.1145/2821505","title":"Compiler-Driven Software Speculation for Thread-Level Parallelism","display_name":"Compiler-Driven Software Speculation for Thread-Level Parallelism","publication_year":2015,"publication_date":"2015-12-22","ids":{"openalex":"https://openalex.org/W2274823567","doi":"https://doi.org/10.1145/2821505","mag":"2274823567"},"language":"en","primary_location":{"id":"doi:10.1145/2821505","is_oa":true,"landing_page_url":"https://doi.org/10.1145/2821505","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/2821505","source":{"id":"https://openalex.org/S41449414","display_name":"ACM Transactions on Programming Languages and Systems","issn_l":"0164-0925","issn":["0164-0925","1558-4593"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Programming Languages and Systems","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"bronze","oa_url":"https://dl.acm.org/doi/pdf/10.1145/2821505","any_repository_has_fulltext":null},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5010537832","display_name":"Paraskevas Yiapanis","orcid":"https://orcid.org/0000-0003-4924-2214"},"institutions":[{"id":"https://openalex.org/I28407311","display_name":"University of Manchester","ror":"https://ror.org/027m9bs27","country_code":"GB","type":"education","lineage":["https://openalex.org/I28407311"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"Paraskevas Yiapanis","raw_affiliation_strings":["University of Manchester, Oxford Road"],"affiliations":[{"raw_affiliation_string":"University of Manchester, Oxford Road","institution_ids":["https://openalex.org/I28407311"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5091107483","display_name":"Gavin Brown","orcid":"https://orcid.org/0000-0003-2261-9018"},"institutions":[{"id":"https://openalex.org/I28407311","display_name":"University of Manchester","ror":"https://ror.org/027m9bs27","country_code":"GB","type":"education","lineage":["https://openalex.org/I28407311"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Gavin Brown","raw_affiliation_strings":["University of Manchester, Oxford Road"],"affiliations":[{"raw_affiliation_string":"University of Manchester, Oxford Road","institution_ids":["https://openalex.org/I28407311"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5026069638","display_name":"Mikel Luj\u00e1n","orcid":"https://orcid.org/0000-0002-0842-1083"},"institutions":[{"id":"https://openalex.org/I28407311","display_name":"University of Manchester","ror":"https://ror.org/027m9bs27","country_code":"GB","type":"education","lineage":["https://openalex.org/I28407311"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Mikel Luj\u00e1n","raw_affiliation_strings":["University of Manchester, Oxford Road"],"affiliations":[{"raw_affiliation_string":"University of Manchester, Oxford Road","institution_ids":["https://openalex.org/I28407311"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5010537832"],"corresponding_institution_ids":["https://openalex.org/I28407311"],"apc_list":null,"apc_paid":null,"fwci":0.3503,"has_fulltext":true,"cited_by_count":9,"citation_normalized_percentile":{"value":0.6907923,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":97},"biblio":{"volume":"38","issue":"2","first_page":"1","last_page":"45"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":0.9998999834060669,"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"}},"topics":[{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":0.9998999834060669,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9998000264167786,"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.9984999895095825,"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.9191982746124268},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.7940871119499207},{"id":"https://openalex.org/keywords/speculative-multithreading","display_name":"Speculative multithreading","score":0.7055827975273132},{"id":"https://openalex.org/keywords/thread","display_name":"Thread (computing)","score":0.6804996728897095},{"id":"https://openalex.org/keywords/instruction-level-parallelism","display_name":"Instruction-level parallelism","score":0.6698091626167297},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.6565375924110413},{"id":"https://openalex.org/keywords/automatic-parallelization","display_name":"Automatic parallelization","score":0.6296100616455078},{"id":"https://openalex.org/keywords/pointer","display_name":"Pointer (user interface)","score":0.6087521314620972},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5188695192337036},{"id":"https://openalex.org/keywords/task-parallelism","display_name":"Task parallelism","score":0.5007872581481934},{"id":"https://openalex.org/keywords/data-parallelism","display_name":"Data parallelism","score":0.49306008219718933},{"id":"https://openalex.org/keywords/speculative-execution","display_name":"Speculative execution","score":0.4883675277233124},{"id":"https://openalex.org/keywords/speculation","display_name":"Speculation","score":0.44545578956604004},{"id":"https://openalex.org/keywords/implicit-parallelism","display_name":"Implicit parallelism","score":0.44288545846939087},{"id":"https://openalex.org/keywords/parallelism","display_name":"Parallelism (grammar)","score":0.4279744625091553},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.413106232881546},{"id":"https://openalex.org/keywords/multithreading","display_name":"Multithreading","score":0.22846770286560059},{"id":"https://openalex.org/keywords/computer-hardware","display_name":"Computer hardware","score":0.07985454797744751}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9191982746124268},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7940871119499207},{"id":"https://openalex.org/C15296174","wikidata":"https://www.wikidata.org/wiki/Q7575343","display_name":"Speculative multithreading","level":4,"score":0.7055827975273132},{"id":"https://openalex.org/C138101251","wikidata":"https://www.wikidata.org/wiki/Q213092","display_name":"Thread (computing)","level":2,"score":0.6804996728897095},{"id":"https://openalex.org/C140763907","wikidata":"https://www.wikidata.org/wiki/Q2714055","display_name":"Instruction-level parallelism","level":3,"score":0.6698091626167297},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.6565375924110413},{"id":"https://openalex.org/C164833996","wikidata":"https://www.wikidata.org/wiki/Q2323839","display_name":"Automatic parallelization","level":3,"score":0.6296100616455078},{"id":"https://openalex.org/C150202949","wikidata":"https://www.wikidata.org/wiki/Q107602","display_name":"Pointer (user interface)","level":2,"score":0.6087521314620972},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5188695192337036},{"id":"https://openalex.org/C42992933","wikidata":"https://www.wikidata.org/wiki/Q691169","display_name":"Task parallelism","level":3,"score":0.5007872581481934},{"id":"https://openalex.org/C61483411","wikidata":"https://www.wikidata.org/wiki/Q3124522","display_name":"Data parallelism","level":3,"score":0.49306008219718933},{"id":"https://openalex.org/C141331961","wikidata":"https://www.wikidata.org/wiki/Q2164465","display_name":"Speculative execution","level":2,"score":0.4883675277233124},{"id":"https://openalex.org/C47941915","wikidata":"https://www.wikidata.org/wiki/Q107885","display_name":"Speculation","level":2,"score":0.44545578956604004},{"id":"https://openalex.org/C3543717","wikidata":"https://www.wikidata.org/wiki/Q6007302","display_name":"Implicit parallelism","level":4,"score":0.44288545846939087},{"id":"https://openalex.org/C2781172179","wikidata":"https://www.wikidata.org/wiki/Q853109","display_name":"Parallelism (grammar)","level":2,"score":0.4279744625091553},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.413106232881546},{"id":"https://openalex.org/C201410400","wikidata":"https://www.wikidata.org/wiki/Q1064412","display_name":"Multithreading","level":3,"score":0.22846770286560059},{"id":"https://openalex.org/C9390403","wikidata":"https://www.wikidata.org/wiki/Q3966","display_name":"Computer hardware","level":1,"score":0.07985454797744751},{"id":"https://openalex.org/C139719470","wikidata":"https://www.wikidata.org/wiki/Q39680","display_name":"Macroeconomics","level":1,"score":0.0},{"id":"https://openalex.org/C162324750","wikidata":"https://www.wikidata.org/wiki/Q8134","display_name":"Economics","level":0,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/2821505","is_oa":true,"landing_page_url":"https://doi.org/10.1145/2821505","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/2821505","source":{"id":"https://openalex.org/S41449414","display_name":"ACM Transactions on Programming Languages and Systems","issn_l":"0164-0925","issn":["0164-0925","1558-4593"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Programming Languages and Systems","raw_type":"journal-article"},{"id":"pmh:oai:pure.atira.dk:openaire_cris_publications/337e40a6-7b5e-4c38-943c-0b2237844588","is_oa":false,"landing_page_url":"https://research.manchester.ac.uk/en/publications/337e40a6-7b5e-4c38-943c-0b2237844588","pdf_url":null,"source":{"id":"https://openalex.org/S4306400662","display_name":"Research Explorer (The University of Manchester)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I28407311","host_organization_name":"University of Manchester","host_organization_lineage":["https://openalex.org/I28407311"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Yiapanis, P, Brown, G & Luj\u00e1n, M 2016, 'Compiler-Driven Software Speculation for Thread-level Parallelism', ACM Transactions on Programming Languages and Systems, vol. 38, no. 2, 5. https://doi.org/10.1145/2821505","raw_type":"info:eu-repo/semantics/publishedVersion"},{"id":"pmh:oai:e-space.mmu.ac.uk:613694","is_oa":true,"landing_page_url":null,"pdf_url":"https://e-space.mmu.ac.uk/613694/2/a5-yiapanis.pdf","source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Article"}],"best_oa_location":{"id":"doi:10.1145/2821505","is_oa":true,"landing_page_url":"https://doi.org/10.1145/2821505","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/2821505","source":{"id":"https://openalex.org/S41449414","display_name":"ACM Transactions on Programming Languages and Systems","issn_l":"0164-0925","issn":["0164-0925","1558-4593"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Programming Languages and Systems","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G1120865348","display_name":null,"funder_award_id":"PAMELA EP/K008730/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G1288522079","display_name":"AnyScale Applications","funder_award_id":"EP/L000725/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G1361938442","display_name":null,"funder_award_id":"Fellowship","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G1934935867","display_name":null,"funder_award_id":"Engineering and Physical Sciences R","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G216287163","display_name":"PAMELA: a Panoramic Approach to the Many-CorE LAndsape - from end-user to end-device: a holistic game-changing approach","funder_award_id":"EP/K008730/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G4917891107","display_name":null,"funder_award_id":"EP/L000725/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G6368762450","display_name":null,"funder_award_id":"EP/K008730/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G6371649893","display_name":null,"funder_award_id":"EP/G000662/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G7248669031","display_name":"Machine Learning for Thread Level Speculation on Multicore Architectures","funder_award_id":"EP/G000662/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"}],"funders":[{"id":"https://openalex.org/F4320320006","display_name":"Royal Society","ror":"https://ror.org/03wnrjx87"},{"id":"https://openalex.org/F4320334627","display_name":"Engineering and Physical Sciences Research Council","ror":"https://ror.org/0439y7842"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2274823567.pdf","grobid_xml":"https://content.openalex.org/works/W2274823567.grobid-xml"},"referenced_works_count":82,"referenced_works":["https://openalex.org/W518119","https://openalex.org/W42576273","https://openalex.org/W79448102","https://openalex.org/W97436512","https://openalex.org/W133053153","https://openalex.org/W143088316","https://openalex.org/W825064640","https://openalex.org/W1493434348","https://openalex.org/W1494930385","https://openalex.org/W1498870995","https://openalex.org/W1507552563","https://openalex.org/W1517933564","https://openalex.org/W1525227808","https://openalex.org/W1566614300","https://openalex.org/W1598901422","https://openalex.org/W1828727480","https://openalex.org/W1936019662","https://openalex.org/W1974420955","https://openalex.org/W1974831646","https://openalex.org/W1976397984","https://openalex.org/W1980385176","https://openalex.org/W1982812416","https://openalex.org/W1983462040","https://openalex.org/W1999753800","https://openalex.org/W2004881145","https://openalex.org/W2024547254","https://openalex.org/W2029084939","https://openalex.org/W2033638309","https://openalex.org/W2036162899","https://openalex.org/W2037402078","https://openalex.org/W2037462607","https://openalex.org/W2041559024","https://openalex.org/W2042082001","https://openalex.org/W2049890071","https://openalex.org/W2061935392","https://openalex.org/W2071130955","https://openalex.org/W2078429521","https://openalex.org/W2080457852","https://openalex.org/W2087024856","https://openalex.org/W2093145075","https://openalex.org/W2093597477","https://openalex.org/W2093758941","https://openalex.org/W2094020960","https://openalex.org/W2094222793","https://openalex.org/W2105864407","https://openalex.org/W2106018697","https://openalex.org/W2106231823","https://openalex.org/W2109192102","https://openalex.org/W2110161565","https://openalex.org/W2113751407","https://openalex.org/W2114251233","https://openalex.org/W2116170858","https://openalex.org/W2120518487","https://openalex.org/W2121118021","https://openalex.org/W2121319784","https://openalex.org/W2125340270","https://openalex.org/W2126501440","https://openalex.org/W2136787217","https://openalex.org/W2136798749","https://openalex.org/W2142950726","https://openalex.org/W2143535196","https://openalex.org/W2145625133","https://openalex.org/W2149037641","https://openalex.org/W2151307463","https://openalex.org/W2152657019","https://openalex.org/W2155312437","https://openalex.org/W2158308706","https://openalex.org/W2161222618","https://openalex.org/W2162523628","https://openalex.org/W2164738518","https://openalex.org/W2168844610","https://openalex.org/W2170554574","https://openalex.org/W2171546589","https://openalex.org/W2173213060","https://openalex.org/W2214214281","https://openalex.org/W2537115708","https://openalex.org/W2913305800","https://openalex.org/W3145483441","https://openalex.org/W4232637339","https://openalex.org/W4238982306","https://openalex.org/W4250089307","https://openalex.org/W4285719527"],"related_works":["https://openalex.org/W2105992728","https://openalex.org/W2164693448","https://openalex.org/W2137185887","https://openalex.org/W2126220043","https://openalex.org/W2164738518","https://openalex.org/W1567437828","https://openalex.org/W3030139520","https://openalex.org/W1606313797","https://openalex.org/W2274823567","https://openalex.org/W2121420032"],"abstract_inverted_index":{"Current":[0],"parallelizing":[1],"compilers":[2],"can":[3,18],"tackle":[4],"applications":[5],"exercising":[6],"regular":[7],"access":[8,53],"patterns":[9],"on":[10],"arrays":[11],"or":[12,79,191],"affine":[13],"indices,":[14],"where":[15,75],"data":[16,170,174,184],"dependencies":[17,76],"be":[19,36],"expressed":[20],"in":[21,73,118,211,219,229],"a":[22,97,156,233],"linear":[23],"form.":[24],"Unfortunately,":[25],"there":[26],"are":[27,62,77,152,177,185,195],"cases":[28,74],"that":[29,47,93],"independence":[30],"between":[31],"statements":[32],"of":[33,60,64,71,121,146,225],"code":[34],"cannot":[35],"guaranteed":[37],"and":[38,55,128,179,209,244,257],"thus":[39],"the":[40,69,119,141,144,167,182,207,212,220,223,226,239],"compiler":[41],"conservatively":[42],"produces":[43],"sequential":[44],"code.":[45],"Programs":[46],"involve":[48],"extensive":[49],"pointer":[50],"use,":[51],"irregular":[52],"patterns,":[54],"loops":[56],"with":[57,155,214,242],"unknown":[58],"number":[59],"iterations":[61],"examples":[63],"such":[65,162,250],"cases.":[66],"This":[67],"limits":[68],"extraction":[70],"parallelism":[72,85,127,151],"rarely":[78],"never":[80],"triggered":[81],"at":[82],"runtime.":[83],"Speculative":[84],"refers":[86],"to":[87,95,105,114,188,216],"methods":[88],"employed":[89],"during":[90],"program":[91],"execution":[92,100],"aim":[94],"produce":[96],"valid":[98],"parallel":[99],"schedule":[101],"for":[102,110,125,149,160,237,246],"programs":[103],"immune":[104],"static":[106],"parallelization.":[107,259],"The":[108,133,197],"motivation":[109],"this":[111],"article":[112,134,227],"is":[113,135,171,200,228,235],"review":[115],"recent":[116],"developments":[117,218],"area":[120],"compiler-driven":[122],"software":[123,230],"speculation":[124],"thread-level":[126,150,253],"how":[129,173,181,192],"they":[130],"came":[131],"about.":[132],"divided":[136],"into":[137],"two":[138],"parts.":[139],"In":[140],"first":[142],"part":[143,199],"fundamentals":[145],"speculative":[147,169,193,231],"parallelization":[148],"explained":[153],"along":[154],"design":[157,204],"choice":[158],"categorization":[159],"implementing":[161],"systems.":[163],"Design":[164],"choices":[165,205],"include":[166],"ways":[168],"handled,":[172],"dependence":[175],"violations":[176],"detected":[178],"resolved,":[180],"correct":[183],"made":[186],"visible":[187],"other":[189],"threads,":[190],"threads":[194],"scheduled.":[196],"second":[198],"structured":[201],"around":[202],"those":[203],"providing":[206,238],"advances":[208],"trends":[210],"literature":[213],"reference":[215],"key":[217],"area.":[221],"Although":[222],"focus":[224],"parallelization,":[232],"section":[234],"dedicated":[236],"interested":[240],"reader":[241],"pointers":[243],"references":[245],"exploring":[247],"similar":[248],"topics":[249],"as":[251],"hardware":[252],"speculation,":[254],"transactional":[255],"memory,":[256],"automatic":[258]},"counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2022,"cited_by_count":3},{"year":2021,"cited_by_count":2},{"year":2019,"cited_by_count":2},{"year":2016,"cited_by_count":1}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
