{"id":"https://openalex.org/W2954733970","doi":"https://doi.org/10.1145/3314221.3314612","title":"Modular divide-and-conquer parallelization of nested loops","display_name":"Modular divide-and-conquer parallelization of nested loops","publication_year":2019,"publication_date":"2019-06-07","ids":{"openalex":"https://openalex.org/W2954733970","doi":"https://doi.org/10.1145/3314221.3314612","mag":"2954733970"},"language":"en","primary_location":{"id":"doi:10.1145/3314221.3314612","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3314221.3314612","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation","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/A5016276143","display_name":"Azadeh Farzan","orcid":"https://orcid.org/0000-0001-9005-2653"},"institutions":[{"id":"https://openalex.org/I185261750","display_name":"University of Toronto","ror":"https://ror.org/03dbr7087","country_code":"CA","type":"education","lineage":["https://openalex.org/I185261750"]}],"countries":["CA"],"is_corresponding":true,"raw_author_name":"Azadeh Farzan","raw_affiliation_strings":["University of Toronto, Canada"],"affiliations":[{"raw_affiliation_string":"University of Toronto, Canada","institution_ids":["https://openalex.org/I185261750"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5005233952","display_name":"Victor Nicolet","orcid":"https://orcid.org/0000-0002-3743-7498"},"institutions":[{"id":"https://openalex.org/I185261750","display_name":"University of Toronto","ror":"https://ror.org/03dbr7087","country_code":"CA","type":"education","lineage":["https://openalex.org/I185261750"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Victor Nicolet","raw_affiliation_strings":["University of Toronto, Canada"],"affiliations":[{"raw_affiliation_string":"University of Toronto, Canada","institution_ids":["https://openalex.org/I185261750"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5016276143"],"corresponding_institution_ids":["https://openalex.org/I185261750"],"apc_list":null,"apc_paid":null,"fwci":2.1669,"has_fulltext":false,"cited_by_count":16,"citation_normalized_percentile":{"value":0.87255414,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"610","last_page":"624"},"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/T10126","display_name":"Logic, programming, and type systems","score":0.9994999766349792,"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/T10142","display_name":"Formal Methods in Verification","score":0.9988999962806702,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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.8682763576507568},{"id":"https://openalex.org/keywords/nested-loop-join","display_name":"Nested loop join","score":0.7893223762512207},{"id":"https://openalex.org/keywords/loop-fusion","display_name":"Loop fusion","score":0.7273330688476562},{"id":"https://openalex.org/keywords/correctness","display_name":"Correctness","score":0.689287006855011},{"id":"https://openalex.org/keywords/divide-and-conquer-algorithms","display_name":"Divide and conquer algorithms","score":0.6882603168487549},{"id":"https://openalex.org/keywords/loop-tiling","display_name":"Loop tiling","score":0.6842349767684937},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.6797807812690735},{"id":"https://openalex.org/keywords/modular-design","display_name":"Modular design","score":0.674058198928833},{"id":"https://openalex.org/keywords/loop","display_name":"Loop (graph theory)","score":0.6558967232704163},{"id":"https://openalex.org/keywords/automatic-parallelization","display_name":"Automatic parallelization","score":0.5703402161598206},{"id":"https://openalex.org/keywords/loop-fission","display_name":"Loop fission","score":0.5530534386634827},{"id":"https://openalex.org/keywords/abstraction","display_name":"Abstraction","score":0.49691155552864075},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.41756370663642883},{"id":"https://openalex.org/keywords/traverse","display_name":"Traverse","score":0.4174252450466156},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4068329930305481},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.0840269923210144},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.07536324858665466}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8682763576507568},{"id":"https://openalex.org/C1306188","wikidata":"https://www.wikidata.org/wiki/Q4060687","display_name":"Nested loop join","level":2,"score":0.7893223762512207},{"id":"https://openalex.org/C82653869","wikidata":"https://www.wikidata.org/wiki/Q6675821","display_name":"Loop fusion","level":3,"score":0.7273330688476562},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.689287006855011},{"id":"https://openalex.org/C71559656","wikidata":"https://www.wikidata.org/wiki/Q671298","display_name":"Divide and conquer algorithms","level":2,"score":0.6882603168487549},{"id":"https://openalex.org/C11799548","wikidata":"https://www.wikidata.org/wiki/Q6675847","display_name":"Loop tiling","level":3,"score":0.6842349767684937},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.6797807812690735},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.674058198928833},{"id":"https://openalex.org/C184670325","wikidata":"https://www.wikidata.org/wiki/Q512604","display_name":"Loop (graph theory)","level":2,"score":0.6558967232704163},{"id":"https://openalex.org/C164833996","wikidata":"https://www.wikidata.org/wiki/Q2323839","display_name":"Automatic parallelization","level":3,"score":0.5703402161598206},{"id":"https://openalex.org/C134718785","wikidata":"https://www.wikidata.org/wiki/Q6675821","display_name":"Loop fission","level":3,"score":0.5530534386634827},{"id":"https://openalex.org/C124304363","wikidata":"https://www.wikidata.org/wiki/Q673661","display_name":"Abstraction","level":2,"score":0.49691155552864075},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.41756370663642883},{"id":"https://openalex.org/C176809094","wikidata":"https://www.wikidata.org/wiki/Q15401496","display_name":"Traverse","level":2,"score":0.4174252450466156},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4068329930305481},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.0840269923210144},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.07536324858665466},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C114614502","wikidata":"https://www.wikidata.org/wiki/Q76592","display_name":"Combinatorics","level":1,"score":0.0},{"id":"https://openalex.org/C13280743","wikidata":"https://www.wikidata.org/wiki/Q131089","display_name":"Geodesy","level":1,"score":0.0},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0},{"id":"https://openalex.org/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3314221.3314612","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3314221.3314612","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation","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":42,"referenced_works":["https://openalex.org/W161881138","https://openalex.org/W1486289306","https://openalex.org/W1502777940","https://openalex.org/W1513982482","https://openalex.org/W1520171143","https://openalex.org/W1524190953","https://openalex.org/W1528303475","https://openalex.org/W1595783387","https://openalex.org/W1853328183","https://openalex.org/W1967810725","https://openalex.org/W1979201594","https://openalex.org/W1980999196","https://openalex.org/W1987142766","https://openalex.org/W1988888548","https://openalex.org/W1991069419","https://openalex.org/W2021235324","https://openalex.org/W2028499920","https://openalex.org/W2040943118","https://openalex.org/W2049890071","https://openalex.org/W2090504951","https://openalex.org/W2094878426","https://openalex.org/W2098903349","https://openalex.org/W2120068738","https://openalex.org/W2126693002","https://openalex.org/W2127814526","https://openalex.org/W2128467905","https://openalex.org/W2128695242","https://openalex.org/W2130427425","https://openalex.org/W2143462372","https://openalex.org/W2144936864","https://openalex.org/W2160559747","https://openalex.org/W2409856616","https://openalex.org/W2412440871","https://openalex.org/W2536320597","https://openalex.org/W2626245353","https://openalex.org/W2626931523","https://openalex.org/W2929273575","https://openalex.org/W2954733970","https://openalex.org/W3006444925","https://openalex.org/W3016205154","https://openalex.org/W3203568064","https://openalex.org/W4232836277"],"related_works":["https://openalex.org/W2342605656","https://openalex.org/W2040522199","https://openalex.org/W154155438","https://openalex.org/W1596526459","https://openalex.org/W2058764256","https://openalex.org/W1508919682","https://openalex.org/W2109246102","https://openalex.org/W1532159642","https://openalex.org/W2340721088","https://openalex.org/W2583056912"],"abstract_inverted_index":{"We":[0,15,107],"propose":[1],"a":[2,18,32,52],"methodology":[3],"for":[4,56,122],"automatic":[5],"generation":[6],"of":[7,11,20,61,115],"divide-and-conquer":[8],"parallel":[9],"implementations":[10],"sequential":[12],"nested":[13],"loops.":[14],"focus":[16],"on":[17],"class":[19],"loops":[21],"that":[22,76,127],"traverse":[23],"read-only":[24],"multidimensional":[25],"collections":[26],"(lists":[27],"or":[28],"arrays)":[29],"and":[30,119],"compute":[31],"function":[33],"over":[34],"these":[35],"collections.":[36],"Our":[37],"approach":[38,129],"is":[39,47,65,75],"modular,":[40],"in":[41,83],"that,":[42],"the":[43,62,79,86,101,104,113],"inner":[44],"loop":[45,54,63,87,134],"nest":[46,55,64,88],"abstracted":[48],"away":[49],"to":[50,77,91,98,111],"produce":[51],"simpler":[53],"parallelization.":[57],"The":[58,68],"summarized":[59],"version":[60],"then":[66],"parallelized.":[67],"main":[69],"challenge":[70],"addressed":[71],"by":[72],"this":[73],"paper":[74],"perform":[78],"code":[80],"transformations":[81],"necessary":[82],"each":[84],"step,":[85],"may":[89],"have":[90],"be":[92],"augmented":[93],"(automatically)":[94],"with":[95],"extra":[96],"computation":[97],"make":[99],"possible":[100],"abstraction":[102],"and/or":[103],"parallelization":[105],"tasks.":[106],"present":[108],"theoretical":[109],"results":[110,125],"justify":[112],"correctness":[114],"our":[116,128],"modular":[117],"approach,":[118],"algorithmic":[120],"solutions":[121],"automation.":[123],"Experimental":[124],"demonstrate":[126],"can":[130],"parallelize":[131],"highly":[132],"non-trivial":[133],"nests":[135],"efficiently.":[136]},"counts_by_year":[{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":2},{"year":2023,"cited_by_count":3},{"year":2021,"cited_by_count":5},{"year":2020,"cited_by_count":3},{"year":2019,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
