{"id":"https://openalex.org/W2027653709","doi":"https://doi.org/10.1145/1810085.1810123","title":"How to unleash array optimizations on code using recursive data structures","display_name":"How to unleash array optimizations on code using recursive data structures","publication_year":2010,"publication_date":"2010-06-02","ids":{"openalex":"https://openalex.org/W2027653709","doi":"https://doi.org/10.1145/1810085.1810123","mag":"2027653709"},"language":"en","primary_location":{"id":"doi:10.1145/1810085.1810123","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1810085.1810123","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 24th ACM International Conference on Supercomputing","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/A5088480097","display_name":"Harmen L. A. van der Spek","orcid":null},"institutions":[{"id":"https://openalex.org/I121797337","display_name":"Leiden University","ror":"https://ror.org/027bh9e22","country_code":"NL","type":"education","lineage":["https://openalex.org/I121797337"]}],"countries":["NL"],"is_corresponding":true,"raw_author_name":"Harmen L. A. van der Spek","raw_affiliation_strings":["Leiden University, Leiden, The Netherlands","Leiden UniversityLeiden, the Netherlands"],"affiliations":[{"raw_affiliation_string":"Leiden University, Leiden, The Netherlands","institution_ids":["https://openalex.org/I121797337"]},{"raw_affiliation_string":"Leiden UniversityLeiden, the Netherlands","institution_ids":["https://openalex.org/I121797337"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5032827212","display_name":"C. W. Mattias Holm","orcid":null},"institutions":[{"id":"https://openalex.org/I121797337","display_name":"Leiden University","ror":"https://ror.org/027bh9e22","country_code":"NL","type":"education","lineage":["https://openalex.org/I121797337"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"C. W. Mattias Holm","raw_affiliation_strings":["Leiden University, Leiden, The Netherlands","Leiden UniversityLeiden, the Netherlands"],"affiliations":[{"raw_affiliation_string":"Leiden University, Leiden, The Netherlands","institution_ids":["https://openalex.org/I121797337"]},{"raw_affiliation_string":"Leiden UniversityLeiden, the Netherlands","institution_ids":["https://openalex.org/I121797337"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5081580568","display_name":"Harry A. G. Wijshoff","orcid":null},"institutions":[{"id":"https://openalex.org/I121797337","display_name":"Leiden University","ror":"https://ror.org/027bh9e22","country_code":"NL","type":"education","lineage":["https://openalex.org/I121797337"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"Harry A. G. Wijshoff","raw_affiliation_strings":["Leiden University, Leiden, The Netherlands","Leiden UniversityLeiden, the Netherlands"],"affiliations":[{"raw_affiliation_string":"Leiden University, Leiden, The Netherlands","institution_ids":["https://openalex.org/I121797337"]},{"raw_affiliation_string":"Leiden UniversityLeiden, the Netherlands","institution_ids":["https://openalex.org/I121797337"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5088480097"],"corresponding_institution_ids":["https://openalex.org/I121797337"],"apc_list":null,"apc_paid":null,"fwci":0.9987,"has_fulltext":false,"cited_by_count":6,"citation_normalized_percentile":{"value":0.77093572,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"275","last_page":"284"},"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.9991999864578247,"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.996999979019165,"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.8223463296890259},{"id":"https://openalex.org/keywords/tree-traversal","display_name":"Tree traversal","score":0.8098475933074951},{"id":"https://openalex.org/keywords/pointer","display_name":"Pointer (user interface)","score":0.7047339677810669},{"id":"https://openalex.org/keywords/data-structure","display_name":"Data structure","score":0.6809390783309937},{"id":"https://openalex.org/keywords/loop-fusion","display_name":"Loop fusion","score":0.6806895732879639},{"id":"https://openalex.org/keywords/loop-tiling","display_name":"Loop tiling","score":0.628341019153595},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.6257675886154175},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.5856508612632751},{"id":"https://openalex.org/keywords/optimizing-compiler","display_name":"Optimizing compiler","score":0.5686455368995667},{"id":"https://openalex.org/keywords/heap","display_name":"Heap (data structure)","score":0.5559158325195312},{"id":"https://openalex.org/keywords/program-transformation","display_name":"Program transformation","score":0.5242700576782227},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4941406548023224},{"id":"https://openalex.org/keywords/loop","display_name":"Loop (graph theory)","score":0.473910927772522},{"id":"https://openalex.org/keywords/external-data-representation","display_name":"External Data Representation","score":0.4462401866912842},{"id":"https://openalex.org/keywords/program-optimization","display_name":"Program optimization","score":0.41115543246269226},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3969515562057495},{"id":"https://openalex.org/keywords/computer-hardware","display_name":"Computer hardware","score":0.2045537829399109},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.13941466808319092},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.0864139199256897}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8223463296890259},{"id":"https://openalex.org/C140745168","wikidata":"https://www.wikidata.org/wiki/Q1210082","display_name":"Tree traversal","level":2,"score":0.8098475933074951},{"id":"https://openalex.org/C150202949","wikidata":"https://www.wikidata.org/wiki/Q107602","display_name":"Pointer (user interface)","level":2,"score":0.7047339677810669},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.6809390783309937},{"id":"https://openalex.org/C82653869","wikidata":"https://www.wikidata.org/wiki/Q6675821","display_name":"Loop fusion","level":3,"score":0.6806895732879639},{"id":"https://openalex.org/C11799548","wikidata":"https://www.wikidata.org/wiki/Q6675847","display_name":"Loop tiling","level":3,"score":0.628341019153595},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.6257675886154175},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.5856508612632751},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.5686455368995667},{"id":"https://openalex.org/C134757568","wikidata":"https://www.wikidata.org/wiki/Q274089","display_name":"Heap (data structure)","level":2,"score":0.5559158325195312},{"id":"https://openalex.org/C2778361913","wikidata":"https://www.wikidata.org/wiki/Q7248437","display_name":"Program transformation","level":2,"score":0.5242700576782227},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4941406548023224},{"id":"https://openalex.org/C184670325","wikidata":"https://www.wikidata.org/wiki/Q512604","display_name":"Loop (graph theory)","level":2,"score":0.473910927772522},{"id":"https://openalex.org/C116409475","wikidata":"https://www.wikidata.org/wiki/Q1385056","display_name":"External Data Representation","level":2,"score":0.4462401866912842},{"id":"https://openalex.org/C139571649","wikidata":"https://www.wikidata.org/wiki/Q1156793","display_name":"Program optimization","level":3,"score":0.41115543246269226},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3969515562057495},{"id":"https://openalex.org/C9390403","wikidata":"https://www.wikidata.org/wiki/Q3966","display_name":"Computer hardware","level":1,"score":0.2045537829399109},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.13941466808319092},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0864139199256897},{"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/C114614502","wikidata":"https://www.wikidata.org/wiki/Q76592","display_name":"Combinatorics","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/1810085.1810123","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1810085.1810123","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 24th ACM International Conference on Supercomputing","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":18,"referenced_works":["https://openalex.org/W16598917","https://openalex.org/W114095935","https://openalex.org/W1607036865","https://openalex.org/W1965784613","https://openalex.org/W2019410896","https://openalex.org/W2024339337","https://openalex.org/W2032688435","https://openalex.org/W2037929850","https://openalex.org/W2061799173","https://openalex.org/W2110161565","https://openalex.org/W2110642444","https://openalex.org/W2114496697","https://openalex.org/W2122858224","https://openalex.org/W2147278401","https://openalex.org/W2153185479","https://openalex.org/W4236944756","https://openalex.org/W4236999231","https://openalex.org/W6659810996"],"related_works":["https://openalex.org/W1596526459","https://openalex.org/W1998074246","https://openalex.org/W2014071052","https://openalex.org/W2340721088","https://openalex.org/W2342605656","https://openalex.org/W2040522199","https://openalex.org/W3172685698","https://openalex.org/W2749619994","https://openalex.org/W2129463564","https://openalex.org/W4253257797"],"abstract_inverted_index":{"Loop":[0],"optimization":[1,38,154],"and":[2,21,37,126,163],"parallelization":[3],"have":[4],"been":[5,43],"most":[6],"successful":[7],"on":[8,78,111,129],"code":[9,15,41,161],"using":[10,54],"arrays":[11,79],"exclusively.":[12],"Preferably,":[13],"such":[14,40,48],"does":[16],"not":[17],"contain":[18],"indirect":[19,89],"access":[20,90],"has":[22,42],"only":[23],"simple,":[24],"counted":[25,75],"loops.":[26],"The":[27],"use":[28],"of":[29,39,47,123,158],"recursive":[30],"data":[31,49,100,128],"structures":[32,50],"makes":[33],"matters":[34],"even":[35],"worse,":[36],"less":[44],"successful.":[45],"Traversal":[46],"is":[51,102,150],"often":[52],"done":[53],"loops":[55,73,76],"with":[56],"data-dependent":[57],"loop":[58,131],"conditions.":[59],"In":[60],"this":[61,88,148],"paper,":[62],"we":[63],"present":[64],"a":[65,109],"compiler":[66],"transformation":[67],"chain":[68],"that":[69,80,87,135,147],"transforms":[70],"pointer":[71],"traversal":[72],"into":[74],"operating":[77],"are":[81],"indirectly":[82],"accessed.":[83],"We":[84],"also":[85],"show":[86,146],"can":[91,116,141],"in":[92,104,108],"some":[93],"cases":[94],"be":[95,117,142],"eliminated":[96],"if":[97],"the":[98,138,153,156,159,166],"traversed":[99],"structure":[101],"reordered":[103],"memory.":[105],"This":[106],"results":[107],"representation":[110,157],"which":[112,130],"many":[113],"existing":[114],"techniques":[115],"applied.":[118],"Our":[119,144],"system":[120],"requires":[121],"monitoring":[122],"actual":[124],"arguments":[125],"heap":[127],"conditions":[132],"depend":[133],"so":[134],"preconditions":[136],"for":[137],"optimized":[139],"functions":[140],"checked.":[143],"experiments":[145],"overhead":[149],"small,":[151],"considering":[152],"opportunities":[155],"transformed":[160],"provides,":[162],"well":[164],"worth":[165],"price.":[167]},"counts_by_year":[{"year":2020,"cited_by_count":1},{"year":2018,"cited_by_count":1},{"year":2012,"cited_by_count":2}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
