{"id":"https://openalex.org/W3131559736","doi":"https://doi.org/10.1145/3437801.3441603","title":"Modernizing parallel code with pattern analysis","display_name":"Modernizing parallel code with pattern analysis","publication_year":2021,"publication_date":"2021-02-17","ids":{"openalex":"https://openalex.org/W3131559736","doi":"https://doi.org/10.1145/3437801.3441603","mag":"3131559736"},"language":"en","primary_location":{"id":"doi:10.1145/3437801.3441603","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3437801.3441603","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming","raw_type":"proceedings-article"},"type":"conference-paper","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://www.research.ed.ac.uk/en/publications/94fbb615-bf05-4375-91b6-beb75bfaf3f0","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5029290149","display_name":"Roberto Casta\u00f1eda Lozano","orcid":"https://orcid.org/0000-0002-2806-7333"},"institutions":[{"id":"https://openalex.org/I98677209","display_name":"University of Edinburgh","ror":"https://ror.org/01nrxwf90","country_code":"GB","type":"education","lineage":["https://openalex.org/I98677209"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Roberto Casta\u00f1eda Lozano","raw_affiliation_strings":["University of Edinburgh, Edinburgh, United Kingdom"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Edinburgh, Edinburgh, United Kingdom","institution_ids":["https://openalex.org/I98677209"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5032376930","display_name":"Murray Cole","orcid":null},"institutions":[{"id":"https://openalex.org/I98677209","display_name":"University of Edinburgh","ror":"https://ror.org/01nrxwf90","country_code":"GB","type":"education","lineage":["https://openalex.org/I98677209"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Murray Cole","raw_affiliation_strings":["University of Edinburgh, Edinburgh, United Kingdom"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Edinburgh, Edinburgh, United Kingdom","institution_ids":["https://openalex.org/I98677209"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5070407969","display_name":"Bj\u00f6rn Franke","orcid":"https://orcid.org/0000-0002-1219-8523"},"institutions":[{"id":"https://openalex.org/I98677209","display_name":"University of Edinburgh","ror":"https://ror.org/01nrxwf90","country_code":"GB","type":"education","lineage":["https://openalex.org/I98677209"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Bj\u00f6rn Franke","raw_affiliation_strings":["University of Edinburgh, Edinburgh, United Kingdom"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Edinburgh, Edinburgh, United Kingdom","institution_ids":["https://openalex.org/I98677209"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I98677209"],"apc_list":null,"apc_paid":null,"fwci":0.2232,"has_fulltext":true,"cited_by_count":1,"citation_normalized_percentile":{"value":0.30704395,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":94},"biblio":{"volume":"64","issue":null,"first_page":"418","last_page":"430"},"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.9986000061035156,"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/T11181","display_name":"Advanced Data Storage Technologies","score":0.9977999925613403,"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.8733198642730713},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.7704282999038696},{"id":"https://openalex.org/keywords/codebase","display_name":"Codebase","score":0.722845196723938},{"id":"https://openalex.org/keywords/posix-threads","display_name":"POSIX Threads","score":0.6676468253135681},{"id":"https://openalex.org/keywords/software-portability","display_name":"Software portability","score":0.6584423780441284},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.5299749374389648},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.5075341463088989},{"id":"https://openalex.org/keywords/legacy-code","display_name":"Legacy code","score":0.4596926271915436},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.44461941719055176},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.41854792833328247},{"id":"https://openalex.org/keywords/suite","display_name":"Suite","score":0.4122953712940216},{"id":"https://openalex.org/keywords/thread","display_name":"Thread (computing)","score":0.3722778558731079},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3593031167984009},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.1608211100101471}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8733198642730713},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.7704282999038696},{"id":"https://openalex.org/C51929080","wikidata":"https://www.wikidata.org/wiki/Q2425187","display_name":"Codebase","level":3,"score":0.722845196723938},{"id":"https://openalex.org/C41138395","wikidata":"https://www.wikidata.org/wiki/Q928112","display_name":"POSIX Threads","level":3,"score":0.6676468253135681},{"id":"https://openalex.org/C63000827","wikidata":"https://www.wikidata.org/wiki/Q3080428","display_name":"Software portability","level":2,"score":0.6584423780441284},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.5299749374389648},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.5075341463088989},{"id":"https://openalex.org/C85687889","wikidata":"https://www.wikidata.org/wiki/Q445962","display_name":"Legacy code","level":3,"score":0.4596926271915436},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.44461941719055176},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.41854792833328247},{"id":"https://openalex.org/C79581498","wikidata":"https://www.wikidata.org/wiki/Q1367530","display_name":"Suite","level":2,"score":0.4122953712940216},{"id":"https://openalex.org/C138101251","wikidata":"https://www.wikidata.org/wiki/Q213092","display_name":"Thread (computing)","level":2,"score":0.3722778558731079},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3593031167984009},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.1608211100101471},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C166957645","wikidata":"https://www.wikidata.org/wiki/Q23498","display_name":"Archaeology","level":1,"score":0.0},{"id":"https://openalex.org/C95457728","wikidata":"https://www.wikidata.org/wiki/Q309","display_name":"History","level":0,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/3437801.3441603","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3437801.3441603","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming","raw_type":"proceedings-article"},{"id":"pmh:oai:pure.ed.ac.uk:publications/94fbb615-bf05-4375-91b6-beb75bfaf3f0","is_oa":true,"landing_page_url":"http://hdl.handle.net/20.500.11820/94fbb615-bf05-4375-91b6-beb75bfaf3f0","pdf_url":"https://www.research.ed.ac.uk/en/publications/94fbb615-bf05-4375-91b6-beb75bfaf3f0","source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":""},{"id":"pmh:oai:pure.ed.ac.uk:openaire/94fbb615-bf05-4375-91b6-beb75bfaf3f0","is_oa":true,"landing_page_url":"https://www.research.ed.ac.uk/en/publications/94fbb615-bf05-4375-91b6-beb75bfaf3f0","pdf_url":null,"source":{"id":"https://openalex.org/S4306400321","display_name":"Edinburgh Research Explorer (University of Edinburgh)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I98677209","host_organization_name":"University of Edinburgh","host_organization_lineage":["https://openalex.org/I98677209"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Casta\u00f1eda Lozano, R, Cole, M & Franke, B 2021, Modernizing Parallel Code with Pattern Analysis. in Proceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP '21). pp. 418\u2013430, 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Virtual Conference, 27/02/21. https://doi.org/10.1145/3437801.3441603","raw_type":"contributionToPeriodical"}],"best_oa_location":{"id":"pmh:oai:pure.ed.ac.uk:publications/94fbb615-bf05-4375-91b6-beb75bfaf3f0","is_oa":true,"landing_page_url":"http://hdl.handle.net/20.500.11820/94fbb615-bf05-4375-91b6-beb75bfaf3f0","pdf_url":"https://www.research.ed.ac.uk/en/publications/94fbb615-bf05-4375-91b6-beb75bfaf3f0","source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":""},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G1065367368","display_name":"Discovery: Pattern Discovery and Program Shaping for Heterogeneous Manycore Systems","funder_award_id":"EP/P022642/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G3667877411","display_name":null,"funder_award_id":"EP/P022642/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"}],"funders":[{"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/W3131559736.pdf","grobid_xml":"https://content.openalex.org/works/W3131559736.grobid-xml"},"referenced_works_count":49,"referenced_works":["https://openalex.org/W47957325","https://openalex.org/W122364089","https://openalex.org/W136059745","https://openalex.org/W153023553","https://openalex.org/W166950989","https://openalex.org/W189545204","https://openalex.org/W331976407","https://openalex.org/W1498373892","https://openalex.org/W1545099940","https://openalex.org/W1578415644","https://openalex.org/W1603941001","https://openalex.org/W1965693583","https://openalex.org/W1967935731","https://openalex.org/W1990919222","https://openalex.org/W2016488637","https://openalex.org/W2021468834","https://openalex.org/W2026764611","https://openalex.org/W2035252178","https://openalex.org/W2056579078","https://openalex.org/W2086779654","https://openalex.org/W2110893883","https://openalex.org/W2119151382","https://openalex.org/W2130179171","https://openalex.org/W2140311411","https://openalex.org/W2147801215","https://openalex.org/W2149698371","https://openalex.org/W2151307463","https://openalex.org/W2153185479","https://openalex.org/W2156858199","https://openalex.org/W2159875930","https://openalex.org/W2169875292","https://openalex.org/W2171148960","https://openalex.org/W2173213060","https://openalex.org/W2190564708","https://openalex.org/W2241555812","https://openalex.org/W2482676628","https://openalex.org/W2483923764","https://openalex.org/W2519540012","https://openalex.org/W2582080653","https://openalex.org/W2766111638","https://openalex.org/W2788227472","https://openalex.org/W2798997407","https://openalex.org/W2821494808","https://openalex.org/W2912530233","https://openalex.org/W2914687823","https://openalex.org/W2925007552","https://openalex.org/W2962407591","https://openalex.org/W4234735246","https://openalex.org/W4300846441"],"related_works":["https://openalex.org/W2488080660","https://openalex.org/W180975739","https://openalex.org/W2538534817","https://openalex.org/W2733115356","https://openalex.org/W2537134792","https://openalex.org/W2998644365","https://openalex.org/W1480590506","https://openalex.org/W2144427759","https://openalex.org/W1994706453","https://openalex.org/W3131559736"],"abstract_inverted_index":{"Fifty":[0],"years":[1],"of":[2,32,88,101,111],"parallel":[3,10,19,26,38,60,122],"programming":[4],"has":[5],"generated":[6],"a":[7,13,121],"substantial":[8],"legacy":[9,37,61],"codebase,":[11],"creating":[12],"new":[14],"portability":[15],"challenge:":[16],"re-parallelizing":[17],"already":[18],"code.":[20,62,74],"Our":[21],"solution":[22],"exploits":[23],"inherently":[24],"portable":[25,128],"patterns,":[27,69],"and":[28,54,59,67,104,132],"addresses":[29],"the":[30,51,77,89,93,102,109,112,117],"challenge":[31],"identifying":[33],"patternization":[34],"opportunities":[35],"in":[36,72,92,99],"code":[39,126],"via":[40,120],"constraint":[41],"matching":[42],"on":[43],"traced":[44],"dynamic":[45],"dataflow":[46],"graphs.":[47],"Notably,":[48],"this":[49],"makes":[50],"analysis":[52,83],"source-independent":[53],"equally":[55],"applicable":[56],"to":[57],"sequential":[58],"We":[63,115],"identify":[64],"various":[65],"map":[66],"reduction":[68],"including":[70],"compositions,":[71],"Pthreads":[73],"Experiments":[75],"with":[76,108,135],"Starbench":[78],"suite":[79],"show":[80],"that":[81],"our":[82],"is":[84],"effective":[85],"(finding":[86],"86%":[87],"patterns":[90,98,119],"known":[91],"literature),":[94],"accurate":[95],"(reporting":[96],"actual":[97],"98%":[100],"cases),":[103],"efficient":[105],"(scaling":[106],"linearly":[107],"size":[110],"execution":[113],"traces).":[114],"re-express":[116],"found":[118],"pattern":[123],"library,":[124],"making":[125],"freely":[127],"across":[129],"CPU/GPU":[130],"systems":[131],"performing":[133],"competitively":[134],"hand-tuned":[136],"implementations":[137],"at":[138],"zero":[139],"additional":[140],"effort.":[141]},"counts_by_year":[{"year":2022,"cited_by_count":1}],"updated_date":"2026-08-12T21:12:35.861297","created_date":"2025-10-10T00:00:00"}
