{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,14]],"date-time":"2026-03-14T09:50:31Z","timestamp":1773481831765,"version":"3.50.1"},"reference-count":45,"publisher":"Association for Computing Machinery (ACM)","issue":"5","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2020,1]]},"abstract":"<jats:p>Parsing is essential for a wide range of use cases, such as stream processing, bulk loading, and in-situ querying of raw data. Yet, the compute-intense step often constitutes a major bottleneck in the data ingestion pipeline, since parsing of inputs that require more involved parsing rules is challenging to parallelise. This work proposes a massively parallel algorithm for parsing delimiter-separated data formats on GPUs. Other than the state-of-the-art, the proposed approach does not require an initial sequential pass over the input to determine a thread's parsing context. That is, how a thread, beginning somewhere in the middle of the input, should interpret a certain symbol (e.g., whether to interpret a comma as a delimiter or as part of a larger string enclosed in double-quotes). Instead of tailoring the approach to a single format, we are able to perform a massively parallel finite state machine (FSM) simulation, which is more flexible and powerful, supporting more expressive parsing rules with general applicability. Achieving a parsing rate of as much as 14.2 GB\/s, our experimental evaluation on a GPU with 3 584 cores shows that the presented approach is able to scale to thousands of cores and beyond. With an end-to-end streaming approach, we are able to exploit the full-duplex capabilities of the PCIe bus and hide latency from data transfers. Considering the end-to-end performance, the algorithm parses 4.8 GB in as little as 0.44 seconds, including data transfers.<\/jats:p>","DOI":"10.14778\/3377369.3377372","type":"journal-article","created":{"date-parts":[[2020,2,19]],"date-time":"2020-02-19T18:58:53Z","timestamp":1582138733000},"page":"616-628","source":"Crossref","is-referenced-by-count":10,"title":["ParPaRaw"],"prefix":"10.14778","volume":"13","author":[{"given":"Elias","family":"Stehle","sequence":"first","affiliation":[{"name":"Technical University of Munich (TUM)"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Hans-Arno","family":"Jacobsen","sequence":"additional","affiliation":[{"name":"Technical University of Munich (TUM)"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2020,2,19]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"NVIDIA","author":"Architecture NVIDIA","year":"2017","unstructured":"NVIDIA Tesla V100 GPU Architecture . Whitepaper. Technical report , NVIDIA , 2017 . NVIDIA Tesla V100 GPU Architecture. Whitepaper. Technical report, NVIDIA, 2017."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2213836.2213864"},{"key":"e_1_2_1_3_1","volume-title":"Alenka - a gpu database engine. https:\/\/github.com\/antonmks\/Alenka","year":"2012","unstructured":"Alenka. Alenka - a gpu database engine. https:\/\/github.com\/antonmks\/Alenka , 2012 . Alenka. Alenka - a gpu database engine. https:\/\/github.com\/antonmks\/Alenka, 2012."},{"key":"e_1_2_1_4_1","volume-title":"https:\/\/arrow.apache.org","author":"Foundation Apache Software","year":"2019","unstructured":"Apache Software Foundation . Apache Arrow . https:\/\/arrow.apache.org , 2019 . Apache Software Foundation. Apache Arrow. https:\/\/arrow.apache.org, 2019."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3079856.3080231"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.14778\/3157794.3157801"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2588555.2612185"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/12.42122"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.14778\/3137765.3137782"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1982.1675982"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.14778\/3352063.3352100"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2588555.2593673"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375527.1375559"},{"key":"e_1_2_1_14_1","volume-title":"DaMoN","author":"Dziedzic A.","year":"2016","unstructured":"A. Dziedzic , M. Karpathiotakis , I. Alagiannis , R. Appuswamy , and A. Ailamaki . Dbms data loading: An analysis on modern hardware . DaMoN , 2016 . A. Dziedzic, M. Karpathiotakis, I. Alagiannis, R. Appuswamy, and A. Ailamaki. Dbms data loading: An analysis on modern hardware. DaMoN, 2016."},{"key":"e_1_2_1_15_1","volume-title":"On parsing context free languages in parallel environments. Technical report","author":"Fischer C. N.","year":"1975","unstructured":"C. N. Fischer . On parsing context free languages in parallel environments. Technical report , 1975 . C. N. Fischer. On parsing context free languages in parallel environments. Technical report, 1975."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/3299869.3319898"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2012.336"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2882903.2899389"},{"key":"e_1_2_1_19_1","volume-title":"Extended Log File Format. https:\/\/w3.org\/TR\/WD-logfile","author":"Hallam-Baker P. M.","year":"1996","unstructured":"P. M. Hallam-Baker and B. Behlendorf . Extended Log File Format. https:\/\/w3.org\/TR\/WD-logfile , 1996 . P. M. Hallam-Baker and B. Behlendorf. Extended Log File Format. https:\/\/w3.org\/TR\/WD-logfile, 1996."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/7902.7903"},{"key":"e_1_2_1_21_1","volume-title":"CIDR","author":"Idreos S.","year":"2011","unstructured":"S. Idreos , I. Alagiannis , R. Johnson , and A. Ailamaki . Here are my data files. here are my queries. where are my results ? CIDR , 2011 . S. Idreos, I. Alagiannis, R. Johnson, and A. Ailamaki. Here are my data files. here are my queries. where are my results? CIDR, 2011."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2484838.2484876"},{"key":"e_1_2_1_23_1","volume-title":"CIDR","author":"Johnson R.","year":"2013","unstructured":"R. Johnson and I. Pandis . The bionic dbms is coming, but what will it look like ? CIDR , 2013 . R. Johnson and I. Pandis. The bionic dbms is coming, but what will it look like? CIDR, 2013."},{"key":"e_1_2_1_24_1","volume-title":"Kaggle datasets. https:\/\/www.kaggle.com\/datasets","year":"2018","unstructured":"Kaggle. Kaggle datasets. https:\/\/www.kaggle.com\/datasets , 2018 . Kaggle. Kaggle datasets. https:\/\/www.kaggle.com\/datasets, 2018."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.14778\/2994509.2994516"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.14778\/2732977.2732986"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1973.5009159"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00778-019-00578-5"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.14778\/3115404.3115416"},{"key":"e_1_2_1_30_1","volume-title":"Logging Control In W3C httpd. https:\/\/www.w3.org\/Daemon\/User\/Config\/Logging.html","author":"Luotonen A.","year":"1995","unstructured":"A. Luotonen . Logging Control In W3C httpd. https:\/\/www.w3.org\/Daemon\/User\/Config\/Logging.html , 1995 . A. Luotonen. Logging Control In W3C httpd. https:\/\/www.w3.org\/Daemon\/User\/Config\/Logging.html, 1995."},{"key":"e_1_2_1_32_1","volume-title":"Parallel scan for stream architectures. Technical report","author":"Merrill D.","year":"2009","unstructured":"D. Merrill and A. Grimshaw . Parallel scan for stream architectures. Technical report , 2009 . D. Merrill and A. Grimshaw. Parallel scan for stream architectures. Technical report, 2009."},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.14778\/2556549.2556555"},{"key":"e_1_2_1_34_1","volume-title":"String Processing Instruction. https:\/\/groups.google.com\/forum\/embed\/#!topic\/comp.lang.c\/2HtQXvg7iKc","author":"Mycroft A.","year":"1987","unstructured":"A. Mycroft . String Processing Instruction. https:\/\/groups.google.com\/forum\/embed\/#!topic\/comp.lang.c\/2HtQXvg7iKc , 1987 . comp.lang.c. A. Mycroft. String Processing Instruction. https:\/\/groups.google.com\/forum\/embed\/#!topic\/comp.lang.c\/2HtQXvg7iKc, 1987. comp.lang.c."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.14778\/3236187.3236207"},{"key":"e_1_2_1_36_1","volume-title":"Rapids - open gpu data science. https:\/\/rapids.ai","author":"RAPIDS.","year":"2012","unstructured":"RAPIDS. Rapids - open gpu data science. https:\/\/rapids.ai , 2012 . RAPIDS. Rapids - open gpu data science. https:\/\/rapids.ai, 2012."},{"key":"e_1_2_1_37_1","volume-title":"https:\/\/tools.ietf.org\/html\/rfc4180","author":"Shafranovich Y.","year":"2005","unstructured":"Y. Shafranovich . RFC4180 - Common format and MIME type for comma-separated values (CSV) files. https:\/\/tools.ietf.org\/html\/rfc4180 , 2005 . Y. Shafranovich. RFC4180 - Common format and MIME type for comma-separated values (CSV) files. https:\/\/tools.ietf.org\/html\/rfc4180, 2005."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/2882903.2882918"},{"key":"e_1_2_1_39_1","volume-title":"Simantex - csvimporter. https:\/\/github.com\/Simantex\/CSVImporter","year":"2012","unstructured":"Simantex. Simantex - csvimporter. https:\/\/github.com\/Simantex\/CSVImporter , 2012 . Simantex. Simantex - csvimporter. https:\/\/github.com\/Simantex\/CSVImporter, 2012."},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/TEC.1960.5219822"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/3035918.3064043"},{"key":"e_1_2_1_42_1","volume-title":"Press release. https:\/\/www.sumologic.com\/press\/2018-02-27\/growth-milestones","author":"Logic Sumo","year":"2018","unstructured":"Sumo Logic . Press release. https:\/\/www.sumologic.com\/press\/2018-02-27\/growth-milestones , 2018 . Sumo Logic. Press release. https:\/\/www.sumologic.com\/press\/2018-02-27\/growth-milestones, 2018."},{"key":"e_1_2_1_43_1","unstructured":"Taxi and Limousine Commission. Tlc trip record data. http:\/\/www.nyc.gov\/html\/tlc\/html\/about\/trip_record_data.shtml 2016.  Taxi and Limousine Commission. Tlc trip record data. http:\/\/www.nyc.gov\/html\/tlc\/html\/about\/trip_record_data.shtml 2016."},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/2442516.2442539"},{"key":"e_1_2_1_45_1","volume-title":"Yelp Dataset Challenge. www.yelp.com\/dataset\/challenge","author":"Yelp Inc.","year":"2019","unstructured":"Yelp Inc. Yelp Dataset Challenge. www.yelp.com\/dataset\/challenge , 2019 . Yelp Inc. Yelp Dataset Challenge. www.yelp.com\/dataset\/challenge, 2019."},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/2791347.2791369"}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/3377369.3377372","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,28]],"date-time":"2022-12-28T09:31:46Z","timestamp":1672219906000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/3377369.3377372"}},"subtitle":["massively parallel parsing of delimiter-separated raw data"],"short-title":[],"issued":{"date-parts":[[2020,1]]},"references-count":45,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2020,1]]}},"alternative-id":["10.14778\/3377369.3377372"],"URL":"https:\/\/doi.org\/10.14778\/3377369.3377372","relation":{},"ISSN":["2150-8097"],"issn-type":[{"value":"2150-8097","type":"print"}],"subject":[],"published":{"date-parts":[[2020,1]]}}}