{"id":"https://openalex.org/W1983876516","doi":"https://doi.org/10.1145/2688500.2688509","title":"A library for portable and composable data locality optimizations for NUMA systems","display_name":"A library for portable and composable data locality optimizations for NUMA systems","publication_year":2015,"publication_date":"2015-01-24","ids":{"openalex":"https://openalex.org/W1983876516","doi":"https://doi.org/10.1145/2688500.2688509","mag":"1983876516"},"language":"en","primary_location":{"id":"doi:10.1145/2688500.2688509","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2688500.2688509","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref","datacite"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://www.research-collection.ethz.ch/bitstream/20.500.11850/98643/1/eth-47328-01.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5007565396","display_name":"Zolt\u00e1n Maj\u00f3","orcid":null},"institutions":[{"id":"https://openalex.org/I35440088","display_name":"ETH Zurich","ror":"https://ror.org/05a28rw58","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I35440088"]}],"countries":["CH"],"is_corresponding":true,"raw_author_name":"Zoltan Majo","raw_affiliation_strings":["ETH Zurich, Switzerland"],"affiliations":[{"raw_affiliation_string":"ETH Zurich, Switzerland","institution_ids":["https://openalex.org/I35440088"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5101575762","display_name":"Thomas R. Gross","orcid":"https://orcid.org/0000-0002-2038-2902"},"institutions":[{"id":"https://openalex.org/I35440088","display_name":"ETH Zurich","ror":"https://ror.org/05a28rw58","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I35440088"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Thomas R. Gross","raw_affiliation_strings":["ETH Zurich, Switzerland"],"affiliations":[{"raw_affiliation_string":"ETH Zurich, Switzerland","institution_ids":["https://openalex.org/I35440088"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5007565396"],"corresponding_institution_ids":["https://openalex.org/I35440088"],"apc_list":null,"apc_paid":null,"fwci":3.2975,"has_fulltext":true,"cited_by_count":16,"citation_normalized_percentile":{"value":0.91951641,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"227","last_page":"238"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":1.0,"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":1.0,"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.9991999864578247,"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.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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.883857011795044},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.6233137249946594},{"id":"https://openalex.org/keywords/locality","display_name":"Locality","score":0.5231446027755737},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.49109864234924316},{"id":"https://openalex.org/keywords/benchmark","display_name":"Benchmark (surveying)","score":0.46673452854156494},{"id":"https://openalex.org/keywords/scheduling","display_name":"Scheduling (production processes)","score":0.45208895206451416},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.44485020637512207},{"id":"https://openalex.org/keywords/programmer","display_name":"Programmer","score":0.4258892238140106},{"id":"https://openalex.org/keywords/embedded-system","display_name":"Embedded system","score":0.3362817168235779},{"id":"https://openalex.org/keywords/distributed-computing","display_name":"Distributed computing","score":0.32400476932525635},{"id":"https://openalex.org/keywords/computer-architecture","display_name":"Computer architecture","score":0.3218439221382141},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.18383029103279114}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.883857011795044},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.6233137249946594},{"id":"https://openalex.org/C2779808786","wikidata":"https://www.wikidata.org/wiki/Q6664603","display_name":"Locality","level":2,"score":0.5231446027755737},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.49109864234924316},{"id":"https://openalex.org/C185798385","wikidata":"https://www.wikidata.org/wiki/Q1161707","display_name":"Benchmark (surveying)","level":2,"score":0.46673452854156494},{"id":"https://openalex.org/C206729178","wikidata":"https://www.wikidata.org/wiki/Q2271896","display_name":"Scheduling (production processes)","level":2,"score":0.45208895206451416},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.44485020637512207},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.4258892238140106},{"id":"https://openalex.org/C149635348","wikidata":"https://www.wikidata.org/wiki/Q193040","display_name":"Embedded system","level":1,"score":0.3362817168235779},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.32400476932525635},{"id":"https://openalex.org/C118524514","wikidata":"https://www.wikidata.org/wiki/Q173212","display_name":"Computer architecture","level":1,"score":0.3218439221382141},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.18383029103279114},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","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/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C162324750","wikidata":"https://www.wikidata.org/wiki/Q8134","display_name":"Economics","level":0,"score":0.0},{"id":"https://openalex.org/C21547014","wikidata":"https://www.wikidata.org/wiki/Q1423657","display_name":"Operations management","level":1,"score":0.0}],"mesh":[],"locations_count":4,"locations":[{"id":"doi:10.1145/2688500.2688509","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2688500.2688509","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming","raw_type":"proceedings-article"},{"id":"pmh:oai:www.research-collection.ethz.ch:20.500.11850/98643","is_oa":true,"landing_page_url":"http://hdl.handle.net/20.500.11850/98643","pdf_url":"https://www.research-collection.ethz.ch/bitstream/20.500.11850/98643/1/eth-47328-01.pdf","source":{"id":"https://openalex.org/S4306402302","display_name":"Repository for Publications and Research Data (ETH Zurich)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I35440088","host_organization_name":"ETH Zurich","host_organization_lineage":["https://openalex.org/I35440088"],"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":"PPoPP 2015 Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming","raw_type":"Conference Paper"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.696.2687","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.696.2687","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.lst.inf.ethz.ch/research/publications/PPOPP_2015/PPOPP_2015.pdf","raw_type":"text"},{"id":"doi:10.3929/ethz-a-010381204","is_oa":true,"landing_page_url":"https://doi.org/10.3929/ethz-a-010381204","pdf_url":null,"source":{"id":"https://openalex.org/S7407051236","display_name":"ETH Z\u00fcrich Research Collection","issn_l":null,"issn":[],"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"article"}],"best_oa_location":{"id":"pmh:oai:www.research-collection.ethz.ch:20.500.11850/98643","is_oa":true,"landing_page_url":"http://hdl.handle.net/20.500.11850/98643","pdf_url":"https://www.research-collection.ethz.ch/bitstream/20.500.11850/98643/1/eth-47328-01.pdf","source":{"id":"https://openalex.org/S4306402302","display_name":"Repository for Publications and Research Data (ETH Zurich)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I35440088","host_organization_name":"ETH Zurich","host_organization_lineage":["https://openalex.org/I35440088"],"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":"PPoPP 2015 Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming","raw_type":"Conference Paper"},"sustainable_development_goals":[{"score":0.46000000834465027,"display_name":"Decent work and economic growth","id":"https://metadata.un.org/sdg/8"}],"awards":[{"id":"https://openalex.org/G298171496","display_name":null,"funder_award_id":"206021","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"},{"id":"https://openalex.org/G7086753310","display_name":"The Datacenter Observatory","funder_award_id":"133835","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"},{"id":"https://openalex.org/G8715323279","display_name":null,"funder_award_id":"206021_133835","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"}],"funders":[{"id":"https://openalex.org/F4320320924","display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung","ror":"https://ror.org/00yjd3n13"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W1983876516.pdf","grobid_xml":"https://content.openalex.org/works/W1983876516.grobid-xml"},"referenced_works_count":34,"referenced_works":["https://openalex.org/W1842336537","https://openalex.org/W1968020161","https://openalex.org/W1975451955","https://openalex.org/W1985539519","https://openalex.org/W1995321227","https://openalex.org/W2007059865","https://openalex.org/W2020599451","https://openalex.org/W2020797161","https://openalex.org/W2022832141","https://openalex.org/W2029764709","https://openalex.org/W2039220457","https://openalex.org/W2072725684","https://openalex.org/W2085036300","https://openalex.org/W2093357625","https://openalex.org/W2096898433","https://openalex.org/W2105506259","https://openalex.org/W2113366658","https://openalex.org/W2115346866","https://openalex.org/W2119860027","https://openalex.org/W2122425154","https://openalex.org/W2132260309","https://openalex.org/W2140455011","https://openalex.org/W2144404616","https://openalex.org/W2144509871","https://openalex.org/W2147323861","https://openalex.org/W2150446161","https://openalex.org/W2154565673","https://openalex.org/W2156187359","https://openalex.org/W2157802978","https://openalex.org/W2166263713","https://openalex.org/W2168102371","https://openalex.org/W2170241157","https://openalex.org/W2175443198","https://openalex.org/W4238569137"],"related_works":["https://openalex.org/W2379153735","https://openalex.org/W2046172023","https://openalex.org/W2972896947","https://openalex.org/W2170146914","https://openalex.org/W2355105570","https://openalex.org/W2083974823","https://openalex.org/W2072751097","https://openalex.org/W4237177615","https://openalex.org/W2289257917","https://openalex.org/W2101188580"],"abstract_inverted_index":{"Many":[0],"recent":[1],"multiprocessor":[2],"systems":[3],"are":[4,52,57,164],"realized":[5],"with":[6,140,177],"a":[7,78,98,105,143],"non-uniform":[8],"memory":[9,16,23,27],"architecture":[10],"(NUMA)":[11],"and":[12,32,54,92,125,130,170],"accesses":[13],"to":[14,111,152],"remote":[15],"locations":[17],"take":[18],"more":[19,160],"time":[20],"than":[21],"local":[22],"accesses.":[24],"Optimizing":[25],"NUMA":[26,47,50,168],"system":[28],"performance":[29,66,154],"is":[30],"difficult":[31],"costly":[33],"for":[34,46],"three":[35],"principal":[36],"reasons:":[37],"(1)":[38],"today's":[39],"programming":[40,80],"languages/libraries":[41],"have":[42],"no":[43],"explicit":[44],"support":[45,70],"systems,":[48],"(2)":[49],"optimizations":[51,56],"not~portable,":[53],"(3)":[55],"not~composable":[58],"(i.e.,":[59,120],"they":[60],"can":[61],"become":[62],"ineffective":[63],"or":[64],"worsen":[65],"in":[67,150],"environments":[68],"that":[69,89,103],"composable":[71,93],"parallel":[72,79,127,179],"software).":[73],"This":[74],"paper":[75],"presents":[76],"TBB-NUMA,":[77],"library":[81,119],"based":[82],"on":[83,108],"Intel":[84],"Threading":[85],"Building":[86],"Blocks":[87],"(TBB)":[88],"supports":[90],"portable":[91,165],"NUMA-aware":[94],"programming.":[95],"TBB-NUMA":[96,141],"provides":[97],"model":[99],"of":[100,117,145],"task":[101,123],"affinity":[102],"captures":[104],"programmer's":[106],"insights":[107],"mapping":[109],"tasks":[110],"resources.":[112],"NUMA-awareness":[113],"affects":[114],"all":[115,135],"layers":[116],"the":[118],"resource":[121],"management,":[122],"scheduling,":[124],"high-level":[126],"algorithm":[128],"templates)":[129],"requires":[131],"close":[132],"coupling":[133],"between":[134],"these":[136],"layers.":[137],"Optimizations":[138],"implemented":[139],"(for":[142],"set":[144],"standard":[146,157],"benchmark":[147],"programs)":[148],"result":[149],"up":[151],"44%":[153],"improvement":[155],"over":[156],"TBB,":[158],"but":[159],"important,":[161],"optimized":[162],"programs":[163],"across":[166],"different":[167],"architectures":[169],"preserve":[171],"data":[172],"locality":[173],"also":[174],"when":[175],"composed":[176],"other":[178],"computations.":[180]},"counts_by_year":[{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":2},{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":2},{"year":2018,"cited_by_count":1},{"year":2017,"cited_by_count":3},{"year":2016,"cited_by_count":5},{"year":2015,"cited_by_count":1}],"updated_date":"2026-04-18T07:56:08.524223","created_date":"2025-10-10T00:00:00"}
