{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,5]],"date-time":"2026-05-05T08:54:47Z","timestamp":1777971287836,"version":"3.51.4"},"reference-count":45,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2020,6,21]],"date-time":"2020-06-21T00:00:00Z","timestamp":1592697600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100001659","name":"Deutsche Forschungsgemeinschaft","doi-asserted-by":"publisher","award":["Priority Program 1648 SPP-EXA"],"award-info":[{"award-number":["Priority Program 1648 SPP-EXA"]}],"id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100001711","name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung","doi-asserted-by":"crossref","award":["PZ00P2_185778"],"award-info":[{"award-number":["PZ00P2_185778"]}],"id":[{"id":"10.13039\/501100001711","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["1218568, 1337281, 1406355, 1618425"],"award-info":[{"award-number":["1218568, 1337281, 1406355, 1618425"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000185","name":"Defense Advanced Research Projects Agency","doi-asserted-by":"publisher","award":["BRASS contract 750-16-2-000"],"award-info":[{"award-number":["BRASS contract 750-16-2-000"]}],"id":[{"id":"10.13039\/100000185","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Parallel Comput."],"published-print":{"date-parts":[[2020,9,30]]},"abstract":"<jats:p>Nodes with multiple GPUs are becoming the platform of choice for high-performance computing. However, most applications are written using bulk-synchronous programming models, which may not be optimal for irregular algorithms that benefit from low-latency, asynchronous communication. This article proposes constructs for asynchronous multi-GPU programming and describes their implementation in a thin runtime environment called Groute. Groute also implements common collective operations and distributed work-lists, enabling the development of irregular applications without substantial programming effort. We demonstrate that this approach achieves state-of-the-art performance and exhibits strong scaling for a suite of irregular applications on eight-GPU and heterogeneous systems, yielding over 7\u00d7 speedup for some algorithms.<\/jats:p>","DOI":"10.1145\/3399730","type":"journal-article","created":{"date-parts":[[2020,6,22]],"date-time":"2020-06-22T02:38:56Z","timestamp":1592793536000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":18,"title":["Groute"],"prefix":"10.1145","volume":"7","author":[{"given":"Tal","family":"Ben-Nun","sequence":"first","affiliation":[{"name":"ETH Zurich, Z\u00fcrich, Switzerland"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Michael","family":"Sutton","sequence":"additional","affiliation":[{"name":"The Hebrew University of Jerusalem, Jerusalem, Israel"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Sreepathi","family":"Pai","sequence":"additional","affiliation":[{"name":"University of Rochester, Rochester, NY, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Keshav","family":"Pingali","sequence":"additional","affiliation":[{"name":"The University of Texas at Austin, Austin, TX, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2020,6,21]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"9th DIMACS Implementation Challenge.","author":"Demetrescu Camil"},{"key":"e_1_2_1_2_1","unstructured":"Groute Authors. 2017. Groute Runtime Environment Source Code. Retrieved from https:\/\/www.github.com\/groute\/groute.  Groute Authors. 2017. Groute Runtime Environment Source Code. Retrieved from https:\/\/www.github.com\/groute\/groute."},{"key":"e_1_2_1_3_1","unstructured":"Karlsruhe Institute of Technology. 2014. OSM Europe Graph. Retrieved from http:\/\/i11www.iti.uni-karlsruhe.de\/resources\/roadgraphs.php.  Karlsruhe Institute of Technology. 2014. OSM Europe Graph. Retrieved from http:\/\/i11www.iti.uni-karlsruhe.de\/resources\/roadgraphs.php."},{"key":"e_1_2_1_4_1","unstructured":"Andrew Adinetz. 2014. Optimized filtering with warp-aggregated atomics. Retrieved from http:\/\/devblogs.nvidia.com\/parallelfor all\/cuda-pro-tip-optimized-filtering-warp-aggregated-atomics\/.  Andrew Adinetz. 2014. Optimized filtering with warp-aggregated atomics. Retrieved from http:\/\/devblogs.nvidia.com\/parallelfor all\/cuda-pro-tip-optimized-filtering-warp-aggregated-atomics\/."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1090\/conm\/588"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2807591.2807611"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/3018743.3018756"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3078597.3078616"},{"key":"e_1_2_1_9_1","volume-title":"Proceedings of the IEEE International Symposium on Workload Characterization (IISWC\u201912)","author":"Burtscher M."},{"key":"e_1_2_1_10_1","volume-title":"Proceedings of the International Conference on Web and Social Media 10","author":"Cha Meeyoung","year":"2010"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192404"},{"key":"e_1_2_1_12_1","volume-title":"Proceedings of the IEEE 28th International Parallel and Distributed Processing Symposium. 349--359","author":"Davidson A."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2049662.2049663"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/857076.857078"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2370816.2370866"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2017.41"},{"key":"e_1_2_1_17_1","volume-title":"Proceedings of the IEEE International Parallel and Distributed Processing Symposium. 799--808","author":"West B.","year":"2015"},{"key":"e_1_2_1_18_1","volume-title":"Proceedings of the 26th International Conference on Parallel Architectures and Compilation Techniques (PACT\u201917)","author":"Hong Changwan"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.compfluid.2014.12.010"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1941553.1941590"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.14778\/3157794.3157799"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1137\/S1064827595287997"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2882903.2915204"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-48096-0_17"},{"key":"e_1_2_1_25_1","volume-title":"Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI\u201988)","author":"Liskov B."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1186\/s12859-015-0485-4"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2145816.2145832"},{"key":"e_1_2_1_28_1","volume-title":"Proceedings of the IEEE 27th International Symposium on Parallel Distributed Processing (IPDPS\u201913)","author":"Nasre R."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2442516.2442531"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522739"},{"key":"e_1_2_1_31_1","unstructured":"NVIDIA. 2016. NVIDIA Collective Communication Library (NCCL). Retrieved from http:\/\/www.github.com\/NVIDIA\/nccl\/.  NVIDIA. 2016. NVIDIA Collective Communication Library (NCCL). Retrieved from http:\/\/www.github.com\/NVIDIA\/nccl\/."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2984015"},{"key":"e_1_2_1_33_1","volume-title":"Owens","author":"Pan Yuechao","year":"2015"},{"key":"e_1_2_1_34_1","volume-title":"Proceedings of the IEEE International Parallel and Distributed Processing Symposium (IPDPS\u201917)","author":"Pan Yuechao"},{"key":"e_1_2_1_35_1","volume-title":"Proceedings of the ACM\/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis (SC\u201910)","author":"Pearce Roger","year":"2010"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993501"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-33078-0_9"},{"key":"e_1_2_1_38_1","volume-title":"Proceedings of the IEEE International Symposium on Parallel Distributed Processing, Workshops and Phd Forum (IPDPSW\u201910)","author":"Soman J."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2661229.2661250"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2018.00012"},{"key":"e_1_2_1_41_1","volume-title":"Adaptive work-efficient connected components on the GPU. CoRR abs\/1612.01178","author":"Sutton Michael","year":"2016"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/79173.79181"},{"key":"e_1_2_1_43_1","volume-title":"Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP\u201915)","author":"Wang Yangzihao"},{"key":"e_1_2_1_44_1","volume-title":"Proceedings of the 21st International Conference on Parallel and Distributed Computing (Euro-Par\u201915: Parallel Processing), Larsson Jesper Tr\u00e4ff","author":"Whang Joyce Jiyoung"},{"key":"e_1_2_1_45_1","unstructured":"Derek Wilson. 2009. Triple buffering: Why we love it. Retrieved from http:\/\/www.anandtech.com\/show\/2794.  Derek Wilson. 2009. Triple buffering: Why we love it. Retrieved from http:\/\/www.anandtech.com\/show\/2794."}],"container-title":["ACM Transactions on Parallel Computing"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3399730","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3399730","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3399730","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T21:31:49Z","timestamp":1750195909000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3399730"}},"subtitle":["Asynchronous Multi-GPU Programming Model with Applications to Large-scale Graph Processing"],"short-title":[],"issued":{"date-parts":[[2020,6,21]]},"references-count":45,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2020,9,30]]}},"alternative-id":["10.1145\/3399730"],"URL":"https:\/\/doi.org\/10.1145\/3399730","relation":{},"ISSN":["2329-4949","2329-4957"],"issn-type":[{"value":"2329-4949","type":"print"},{"value":"2329-4957","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,6,21]]},"assertion":[{"value":"2018-07-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-12-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-06-21","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}