{"id":"https://openalex.org/W2127902590","doi":"https://doi.org/10.1145/1227161.1227164","title":"Engineering a cache-oblivious sorting algorithm","display_name":"Engineering a cache-oblivious sorting algorithm","publication_year":2007,"publication_date":"2007-04-05","ids":{"openalex":"https://openalex.org/W2127902590","doi":"https://doi.org/10.1145/1227161.1227164","mag":"2127902590"},"language":"en","primary_location":{"id":"doi:10.1145/1227161.1227164","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1227161.1227164","pdf_url":null,"source":{"id":"https://openalex.org/S201104086","display_name":"ACM Journal of Experimental Algorithmics","issn_l":"1084-6654","issn":["1084-6654"],"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 Journal of Experimental Algorithmics","raw_type":"journal-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/A5039943336","display_name":"Gerth St\u00f8lting Brodal","orcid":"https://orcid.org/0000-0001-9054-915X"},"institutions":[{"id":"https://openalex.org/I204337017","display_name":"Aarhus University","ror":"https://ror.org/01aj84f44","country_code":"DK","type":"education","lineage":["https://openalex.org/I204337017"]}],"countries":["DK"],"is_corresponding":true,"raw_author_name":"Gerth St\u00f8lting Brodal","raw_affiliation_strings":["University of Aarhus, \u00c5rhus N, Denmark"],"affiliations":[{"raw_affiliation_string":"University of Aarhus, \u00c5rhus N, Denmark","institution_ids":["https://openalex.org/I204337017"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5021765002","display_name":"Rolf Fagerberg","orcid":"https://orcid.org/0000-0003-1004-3314"},"institutions":[{"id":"https://openalex.org/I177969490","display_name":"University of Southern Denmark","ror":"https://ror.org/03yrrjy16","country_code":"DK","type":"education","lineage":["https://openalex.org/I177969490"]}],"countries":["DK"],"is_corresponding":false,"raw_author_name":"Rolf Fagerberg","raw_affiliation_strings":["University of Southern Denmark, Odense M, Denmark"],"affiliations":[{"raw_affiliation_string":"University of Southern Denmark, Odense M, Denmark","institution_ids":["https://openalex.org/I177969490"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5090565325","display_name":"Kristoffer Vinther","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Kristoffer Vinther","raw_affiliation_strings":["Systematic Software Engineering A/S, \u00c5rhus C, Denmark"],"affiliations":[{"raw_affiliation_string":"Systematic Software Engineering A/S, \u00c5rhus C, Denmark","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5039943336"],"corresponding_institution_ids":["https://openalex.org/I204337017"],"apc_list":null,"apc_paid":null,"fwci":8.4149,"has_fulltext":false,"cited_by_count":52,"citation_normalized_percentile":{"value":0.97740209,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":"12","issue":null,"first_page":"1","last_page":"23"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11181","display_name":"Advanced Data Storage Technologies","score":0.9991000294685364,"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/T11181","display_name":"Advanced Data Storage Technologies","score":0.9991000294685364,"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/T11269","display_name":"Algorithms and Data Compression","score":0.9969000220298767,"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/T10237","display_name":"Cryptography and Data Security","score":0.9894000291824341,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/quicksort","display_name":"Quicksort","score":0.9575406312942505},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8373560905456543},{"id":"https://openalex.org/keywords/cache","display_name":"Cache","score":0.7332407236099243},{"id":"https://openalex.org/keywords/sorting-algorithm","display_name":"Sorting algorithm","score":0.6501100659370422},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.6340045928955078},{"id":"https://openalex.org/keywords/cache-oblivious-algorithm","display_name":"Cache-oblivious algorithm","score":0.5848395228385925},{"id":"https://openalex.org/keywords/cache-algorithms","display_name":"Cache algorithms","score":0.583726704120636},{"id":"https://openalex.org/keywords/sorting","display_name":"Sorting","score":0.5397835969924927},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.49055641889572144},{"id":"https://openalex.org/keywords/merge-sort","display_name":"Merge sort","score":0.4816657304763794},{"id":"https://openalex.org/keywords/cpu-cache","display_name":"CPU cache","score":0.4587628245353699}],"concepts":[{"id":"https://openalex.org/C2778937211","wikidata":"https://www.wikidata.org/wiki/Q486598","display_name":"Quicksort","level":4,"score":0.9575406312942505},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8373560905456543},{"id":"https://openalex.org/C115537543","wikidata":"https://www.wikidata.org/wiki/Q165596","display_name":"Cache","level":2,"score":0.7332407236099243},{"id":"https://openalex.org/C108094655","wikidata":"https://www.wikidata.org/wiki/Q181593","display_name":"Sorting algorithm","level":3,"score":0.6501100659370422},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.6340045928955078},{"id":"https://openalex.org/C59687516","wikidata":"https://www.wikidata.org/wiki/Q5015938","display_name":"Cache-oblivious algorithm","level":5,"score":0.5848395228385925},{"id":"https://openalex.org/C38556500","wikidata":"https://www.wikidata.org/wiki/Q13404475","display_name":"Cache algorithms","level":4,"score":0.583726704120636},{"id":"https://openalex.org/C111696304","wikidata":"https://www.wikidata.org/wiki/Q2303697","display_name":"Sorting","level":2,"score":0.5397835969924927},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.49055641889572144},{"id":"https://openalex.org/C35555965","wikidata":"https://www.wikidata.org/wiki/Q189057","display_name":"Merge sort","level":4,"score":0.4816657304763794},{"id":"https://openalex.org/C189783530","wikidata":"https://www.wikidata.org/wiki/Q352090","display_name":"CPU cache","level":3,"score":0.4587628245353699}],"mesh":[],"locations_count":10,"locations":[{"id":"doi:10.1145/1227161.1227164","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1227161.1227164","pdf_url":null,"source":{"id":"https://openalex.org/S201104086","display_name":"ACM Journal of Experimental Algorithmics","issn_l":"1084-6654","issn":["1084-6654"],"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 Journal of Experimental Algorithmics","raw_type":"journal-article"},{"id":"pmh:oai:sdu.dk:publications/6a32e580-e7f0-11dc-9a76-000ea68e967b","is_oa":false,"landing_page_url":"https://portal.findresearcher.sdu.dk/da/publications/6a32e580-e7f0-11dc-9a76-000ea68e967b","pdf_url":null,"source":{"id":"https://openalex.org/S4306400423","display_name":"University of Southern Denmark Research Portal (University of Southern Denmark)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I177969490","host_organization_name":"University of Southern Denmark","host_organization_lineage":["https://openalex.org/I177969490"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Brodal, G S, Fagerberg, R & Vinther, K 2007, 'Engineering a cache-oblivious sorting algorithm', ACM Journal of Experimental Algorithmics, vol. 12.","raw_type":"info:eu-repo/semantics/publishedVersion"},{"id":"pmh:oai:sdu.dk:publications/88552240-f3c1-11db-821c-000ea68e967b","is_oa":false,"landing_page_url":"https://portal.findresearcher.sdu.dk/da/publications/88552240-f3c1-11db-821c-000ea68e967b","pdf_url":null,"source":{"id":"https://openalex.org/S4306400423","display_name":"University of Southern Denmark Research Portal (University of Southern Denmark)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I177969490","host_organization_name":"University of Southern Denmark","host_organization_lineage":["https://openalex.org/I177969490"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Brodal, G S, Fagerberg, R & Vinther, K 2004, Engineering a Cache-Oblivious Sorting Algorithm. in L Arge, G F Italiano & R Sedgewick (eds), Proceedings of the Sixth Workshop on Algorithm Engineering and Experiments and the First Workshop on Analytic Algorithmics and Combinatorics.. pp. 4-17, the Sixth Workshop on Algorithm Engineering and Experiments and the First Workshop on Analytic Algorithmics and Combinatorics, United Kingdom, 24/08/2010.","raw_type":"info:eu-repo/semantics/publishedVersion"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.211.4668","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.211.4668","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.au.dk/~gerth/papers/alcomft-tr-03-101.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.211.8339","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.211.8339","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.au.dk/~gerth/papers/alenex04.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.229.1022","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.229.1022","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.siam.org/meetings/alenex04/abstacts/alenex04.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.453.181","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.453.181","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.amherst.edu/~ccm/cs34/papers/a2_2-brodal.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.88.9738","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.88.9738","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.daimi.au.dk/~gerth/Papers/jea07.pdf","raw_type":"text"},{"id":"pmh:oai:pure.atira.dk:publications/1cf7ae70-8c62-11dc-bee9-02004c4f4f50","is_oa":false,"landing_page_url":"https://pure.au.dk/portal/en/publications/1cf7ae70-8c62-11dc-bee9-02004c4f4f50","pdf_url":null,"source":{"id":"https://openalex.org/S4306463922","display_name":"Society for Industrial and Applied Mathematics eBooks","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/P4310320508","host_organization_name":"Society for Industrial and Applied Mathematics","host_organization_lineage":["https://openalex.org/P4310320508"],"host_organization_lineage_names":["Society for Industrial and Applied Mathematics"],"type":"ebook platform"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Brodal, G S, Fagerberg, R & Vinther, K 2004, Engineering a Cache-Oblivious Sorting Algorithm. in Proceedings of the Sixth Annual Workshop on Algorithm Engineering and Experiments, ALENEX '04. Society for Industrial and Applied Mathematics, pp. 4-17.","raw_type":"info:eu-repo/semantics/bookPart"},{"id":"pmh:oai:pure.atira.dk:publications/9612d510-1010-11dc-bee9-02004c4f4f50","is_oa":false,"landing_page_url":"https://pure.au.dk/portal/en/publications/9612d510-1010-11dc-bee9-02004c4f4f50","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Brodal, G S, Fagerberg, R & Vinther, K 2007, 'Engineering a Cache-Oblivious Sorting Algorithm', Journal of Experimental Algorithmics, vol. 12. https://doi.org/10.1145/1227161.1227164","raw_type":"info:eu-repo/semantics/publishedVersion"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G6385814164","display_name":null,"funder_award_id":"IST-1999-14186 (ALCOM-FT)","funder_id":"https://openalex.org/F4320334960","funder_display_name":"Seventh Framework Programme"},{"id":"https://openalex.org/G7182320075","display_name":null,"funder_award_id":"ANS-0257/20","funder_id":"https://openalex.org/F4320321504","funder_display_name":"Carlsbergfondet"}],"funders":[{"id":"https://openalex.org/F4320321504","display_name":"Carlsbergfondet","ror":"https://ror.org/01kpjmx04"},{"id":"https://openalex.org/F4320334960","display_name":"Seventh Framework Programme","ror":"https://ror.org/00k4n6c32"}],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":55,"referenced_works":["https://openalex.org/W31469951","https://openalex.org/W83289625","https://openalex.org/W100509257","https://openalex.org/W127235507","https://openalex.org/W156347556","https://openalex.org/W1497812785","https://openalex.org/W1539221976","https://openalex.org/W1573954828","https://openalex.org/W1583793915","https://openalex.org/W1592580490","https://openalex.org/W1601617962","https://openalex.org/W1801456964","https://openalex.org/W1827355354","https://openalex.org/W1857323784","https://openalex.org/W1974784305","https://openalex.org/W1979154698","https://openalex.org/W1983503576","https://openalex.org/W1989622633","https://openalex.org/W2006706309","https://openalex.org/W2014866763","https://openalex.org/W2017799838","https://openalex.org/W2022117185","https://openalex.org/W2034413563","https://openalex.org/W2038142281","https://openalex.org/W2046441184","https://openalex.org/W2054052779","https://openalex.org/W2056014488","https://openalex.org/W2069153338","https://openalex.org/W2083576929","https://openalex.org/W2084002994","https://openalex.org/W2091307407","https://openalex.org/W2095875205","https://openalex.org/W2097224604","https://openalex.org/W2102467006","https://openalex.org/W2105156747","https://openalex.org/W2122403525","https://openalex.org/W2123145425","https://openalex.org/W2124920620","https://openalex.org/W2127620007","https://openalex.org/W2132108235","https://openalex.org/W2133914707","https://openalex.org/W2138145917","https://openalex.org/W2140591634","https://openalex.org/W2149468555","https://openalex.org/W2168023916","https://openalex.org/W2168867846","https://openalex.org/W2171038510","https://openalex.org/W2183491405","https://openalex.org/W2185118258","https://openalex.org/W2752853835","https://openalex.org/W2776089907","https://openalex.org/W2901608006","https://openalex.org/W3198470706","https://openalex.org/W4231017307","https://openalex.org/W4240200084"],"related_works":["https://openalex.org/W1616582327","https://openalex.org/W2379400621","https://openalex.org/W1595449202","https://openalex.org/W2174882697","https://openalex.org/W2127902590","https://openalex.org/W2056014488","https://openalex.org/W2129330948","https://openalex.org/W1609632773","https://openalex.org/W1632227662","https://openalex.org/W4294618626"],"abstract_inverted_index":{"This":[0],"paper":[1],"is":[2,53,87,106,119],"an":[3],"algorithmic":[4],"engineering":[5],"study":[6],"of":[7,17,84,125],"cache-oblivious":[8,25,57],"sorting.":[9],"We":[10],"investigate":[11],"by":[12],"empirical":[13],"methods":[14],"a":[15,54,122],"number":[16],"implementation":[18,71,124],"issues":[19],"and":[20,30,112],"parameter":[21],"choices":[22],"for":[23,40,77],"the":[24,32,37,68,82,94,100,104,113,117],"sorting":[26,58],"algorithm":[27,34,118],"Lazy":[28],"Funnelsort":[29],"compare":[31],"final":[33],"with":[35,46],"Quicksort,":[36],"established":[38],"standard":[39],"comparison-based":[41],"sorting,":[42],"as":[43,45,91,93,129],"well":[44,80],"recent":[47,95],"cache-aware":[48,96,114],"proposals.":[49],"The":[50],"main":[51],"result":[52],"carefully":[55],"implemented":[56],"algorithm,":[59],"which,":[60],"our":[61],"experiments":[62],"show,":[63],"can":[64],"be":[65],"faster":[66],"than":[67,121],"best":[69],"Quicksort":[70,111],"we":[72],"are":[73],"able":[74],"to":[75],"find":[76],"input":[78],"sizes":[79],"within":[81],"limits":[83],"RAM.":[85],"It":[86],"also":[88],"at":[89],"least":[90],"fast":[92],"implementations":[97],"included":[98],"in":[99],"test.":[101],"On":[102],"disk,":[103],"difference":[105],"even":[107],"more":[108],"pronounced":[109],"regarding":[110],"algorithms,":[115],"whereas":[116],"slower":[120],"careful":[123],"multiway":[126],"Mergesort,":[127],"such":[128],"TPIE.":[130]},"counts_by_year":[{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":3},{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":3},{"year":2016,"cited_by_count":3},{"year":2015,"cited_by_count":2},{"year":2014,"cited_by_count":3},{"year":2013,"cited_by_count":4},{"year":2012,"cited_by_count":1}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
