skip to main content
10.1145/3656019.3676891acmconferencesArticle/Chapter ViewAbstractPublication PagespactConference Proceedingsconference-collections
research-article

A Transducers-based Programming Framework for Efficient Data Transformation

Published: 13 October 2024 Publication History

Abstract

Many data analytics and scientific applications rely on data transformation tasks, such as encoding, decoding, parsing of structured and unstructured data, and conversions between data formats and layouts. Previous work has shown that data transformation can represent a performance bottleneck for data analytics workloads. The transducers computational abstraction can be used to express a wide range of data transformations, and recent efforts have proposed configurable engines implementing various transducer models (from finite state transducers, to pushdown transducers, to extended models). This line of research, however, is still at an early stage. Notably, expressing data transformation using transducers requires a paradigm shift, impacting programmability.
To address this problem, we propose a programming framework to map data transformation tasks onto a variety of transducer models. Our framework includes: (1) a platform agnostic programming language (xPTLang) to code transducer programs using intuitive programming constructs, and (2) a compiler that, given an xPTLang program, generates efficient transducer processing engines for CPU and GPU. Our compiler includes a set of optimizations to improve code efficiency. We demonstrate our framework on a diverse set of data transformation tasks on an Intel CPU and an Nvidia GPU.

References

[1]
2023. Canterbury Cor. https://corpus.canterbury.ac.nz/.
[2]
2023. CUDA Toolkit. https://docs.nvidia.com/cuda/.
[3]
2023. Foma. https://fomafst.github.io/.
[4]
2023. GNU Scientific Library. https://www.gnu.org/.
[5]
2023. Intel MKL. https://www.intel.com/content/www/us/en/develop/documentation/get-started-with-mkl-for-dpcpp/top.html.
[6]
2023. Open GPU Data Science. https://rapids.ai/.
[7]
2023. openFST. https://www.openfst.org/twiki/bin/view/FST/WebHome.
[8]
2023. Pandas. https://pandas.pydata.org. https://pandas.pydata.org/
[9]
2023. Raleigh Open Data. https://data.raleighnc.gov/.
[10]
2023. thrax. https://www.openfst.org/twiki/bin/view/GRM/ThraxQuickTour.
[11]
2023. US Government Data. https://data.gov/.
[12]
Rajeev Alur and Jyotirmoy V. Deshmukh. 2011. Nondeterministic Streaming String Transducers. In Proceedings of the 38th International Conference on Automata, Languages and Programming - Volume Part II (Zurich, Switzerland) (ICALP’11). Springer-Verlag, Berlin, Heidelberg, 1–20.
[13]
Kevin Angstadt, Westley Weimer, and Kevin Skadron. 2016. RAPID Programming of Pattern-Recognition Processors(ASPLOS ’16). Association for Computing Machinery, New York, NY, USA, 593–605. https://doi.org/10.1145/2872362.2872393
[14]
Michela Becchi and Patrick Crowley. 2008. Efficient Regular Expression Evaluation: Theory to Practice. In Proceedings of the 4th ACM/IEEE Symposium on Architectures for Networking and Communications Systems (San Jose, California) (ANCS ’08). Association for Computing Machinery, New York, NY, USA, 50–59. https://doi.org/10.1145/1477942.1477950
[15]
Nathan Bell and Michael Garland. 2009. Implementing sparse matrix-vector multiplication on throughput-oriented processors. In Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis. 1–11. https://doi.org/10.1145/1654059.1654078
[16]
Benjamin C. Brodie, David E. Taylor, and Ron K. Cytron. 2006. A Scalable Architecture For High-Throughput Regular-Expression Pattern Matching. In Proceedings of the 33rd Annual International Symposium on Computer Architecture(ISCA ’06). IEEE Computer Society, USA, 191–202. https://doi.org/10.1109/ISCA.2006.7
[17]
Niccolo’ Cascarano, Pierluigi Rolando, Fulvio Risso, and Riccardo Sisto. 2010. INFAnt: NFA Pattern Matching on GPGPU Devices. SIGCOMM Comput. Commun. Rev. 40, 5 (oct 2010), 20–26. https://doi.org/10.1145/1880153.1880157
[18]
Matthew Casias, Kevin Angstadt, Tommy Tracy II, Kevin Skadron, and Westley Weimer. 2019. Debugging Support for Pattern-Matching Languages and Accelerators. In Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems (Providence, RI, USA) (ASPLOS ’19). Association for Computing Machinery, New York, NY, USA, 1073–1086. https://doi.org/10.1145/3297858.3304066
[19]
Paul Dlugosch, Dave Brown, Paul Glendenning, Michael Leventhal, and Harold Noyes. 2014. An Efficient and Scalable Semiconductor Architecture for Parallel Automata Processing. IEEE Transactions on Parallel and Distributed Systems 25, 12 (2014), 3088–3098. https://doi.org/10.1109/TPDS.2014.8
[20]
Yuanwei Fang, Tung T. Hoang, Michela Becchi, and Andrew A. Chien. 2015. Fast Support for Unstructured Data Processing: The Unified Automata Processor. In Proceedings of the 48th International Symposium on Microarchitecture (Waikiki, Hawaii) (MICRO-48). Association for Computing Machinery, New York, NY, USA, 533–545. https://doi.org/10.1145/2830772.2830809
[21]
Yuanwei Fang, Chen Zou, Aaron J. Elmore, and Andrew A. Chien. 2017. UDP: a programmable accelerator for extract-transform-load workloads and more. In Proceedings of the 50th Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 2017, Cambridge, MA, USA, October 14-18, 2017, Hillery C. Hunter, Jaime Moreno, Joel S. Emer, and Daniel Sánchez (Eds.). ACM, 55–68.
[22]
Emmanuel Filiot, Jean-François Raskin, Pierre-Alain Reynier, Frédéric Servais, and Jean-Marc Talbot. 2018. Visibly pushdown transducers. J. Comput. System Sci. 97 (2018), 147–181. https://doi.org/10.1016/j.jcss.2018.05.002
[23]
Bjørn Bugge Grathwohl, Fritz Henglein, Ulrik Terp Rasmussen, Kristoffer Aalund Søholm, and Sebastian Paaske Tørholm. 2016. Kleenex: Compiling Nondeterministic Transducers to Deterministic Streaming Transducers. SIGPLAN Not. 51, 1 (jan 2016), 284–297.
[24]
Svilen Kanev, Juan Pablo Darago, Kim Hazelwood, Parthasarathy Ranganathan, Tipp Moseley, Gu-Yeon Wei, and David Brooks. 2016. Profiling a Warehouse-Scale Computer. IEEE Micro 36, 3 (2016), 54–59. https://doi.org/10.1109/MM.2016.38
[25]
Marat F. Khairoutdinov and David A. Randall. 2001. A cloud resolving model as a cloud parameterization in the NCAR Community Climate System Model: Preliminary results. Geophysical Research Letters 28, 18 (2001), 3617–3620. https://doi.org/10.1029/2001GL013552 arXiv:https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/2001GL013552
[26]
Kornilios Kourtis, Vasileios Karakasis, Georgios Goumas, and Nectarios Koziris. 2011. CSX: An Extended Compression Format for Spmv on Shared Memory Systems. SIGPLAN Not. 46, 8 (feb 2011), 247–256. https://doi.org/10.1145/2038037.1941587
[27]
Daniel Langr and Pavel Tvrdík. 2016. Evaluation Criteria for Sparse Matrix Storage Formats. IEEE Transactions on Parallel and Distributed Systems 27, 2 (2016), 428–440. https://doi.org/10.1109/TPDS.2015.2401575
[28]
Hongyuan Liu, Mohamed Assem Ibrahim, Onur Kayiran, Sreepathi Pai, and Adwait Jog. 2018. Architectural Support for Efficient Large-Scale Automata Processing. In 51st Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 2018, Fukuoka, Japan, October 20-24, 2018. IEEE Computer Society, 908–920. https://doi.org/10.1109/MICRO.2018.00078
[29]
Weifeng Liu and Brian Vinter. 2015. CSR5: An Efficient Storage Format for Cross-Platform Sparse Matrix-Vector Multiplication. In Proceedings of the 29th ACM on International Conference on Supercomputing (Newport Beach, California, USA). Association for Computing Machinery, New York, NY, USA, 339–350. https://doi.org/10.1145/2751205.2751209
[30]
Jan Van Lunteren, Christoph Hagleitner, Timothy Heil, Giora Biran, Uzi Shvadron, and Kubilay Atasu. 2012. Designing a Programmable Wire-Speed Regular-Expression Matching Accelerator. In 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture. 461–472. https://doi.org/10.1109/MICRO.2012.49
[31]
Konstantinos Mamouras, Mukund Raghothaman, Rajeev Alur, Zachary G. Ives, and Sanjeev Khanna. 2017. StreamQRE: Modular Specification and Efficient Evaluation of Quantitative Queries over Streaming Data. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation (Barcelona, Spain) (PLDI 2017). Association for Computing Machinery, New York, NY, USA, 693–708. https://doi.org/10.1145/3062341.3062369
[32]
Alexander Meduna. 2000. Automata and languages: theory and applications. Springer.
[33]
Abhishek Mitra, Walid Najjar, and Laxmi Bhuyan. 2007. Compiling PCRE to FPGA for Accelerating SNORT IDS. In Proceedings of the 3rd ACM/IEEE Symposium on Architecture for Networking and Communications Systems (Orlando, Florida, USA) (ANCS ’07). Association for Computing Machinery, New York, NY, USA, 127–136. https://doi.org/10.1145/1323548.1323571
[34]
Tri Nguyen and Michela Becchi. 2022. A GPU-accelerated Data Transformation Framework Rooted in Pushdown Transducers. In 2022 IEEE 29th International Conference on High Performance Computing, Data, and Analytics (HiPC). 215–225. https://doi.org/10.1109/HiPC56025.2022.00038
[35]
Marziyeh Nourian, Tri Nguyen, Andrew A. Chien, and Michela Becchi. 2022. Data Transformation Acceleration using Deterministic Finite-State Transducers. In 2022 IEEE International Conference on Big Data (Big Data). 141–150. https://doi.org/10.1109/BigData55660.2022.10020756
[36]
Kay Ousterhout, Ryan Rasti, Sylvia Ratnasamy, Scott Shenker, and Byung-Gon Chun. 2015. Making Sense of Performance in Data Analytics Frameworks. In 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI 15). USENIX Association, Oakland, CA, 293–307.
[37]
[37] Apache Parquet. [n. d.]. https://parquet.apache.org/.
[38]
Elaheh Sadredini, Reza Rahimi, Vaibhav Verma, Mircea Stan, and Kevin Skadron. 2019. eAP: A Scalable and Efficient In-Memory Accelerator for Automata Processing. In Proceedings of the 52nd Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 2019, Columbus, OH, USA, October 12-16, 2019. ACM, 87–99. https://doi.org/10.1145/3352460.3358324
[39]
R. Sidhu and V.K. Prasanna. 2001. Fast Regular Expression Matching Using FPGAs. In The 9th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM’01). 227–238.
[40]
Patrick Stuedi, Animesh Trivedi, Bernard Metzler, and Jonas Pfefferle. 2014. DaRPC: Data Center RPC. In Proceedings of the ACM Symposium on Cloud Computing (Seattle, WA, USA) (SOCC ’14). Association for Computing Machinery, New York, NY, USA, 1–13. https://doi.org/10.1145/2670979.2670994
[41]
Bor-Yiing Su and Kurt Keutzer. 2012. ClSpMV: A Cross-Platform OpenCL SpMV Framework on GPUs. In Proceedings of the 26th ACM International Conference on Supercomputing (San Servolo Island, Venice, Italy) (ICS ’12). Association for Computing Machinery, New York, NY, USA, 353–364. https://doi.org/10.1145/2304576.2304624
[42]
Texas A&M University. [n. d.]. SuiteSparse Matrix Collection. https://sparse.tamu.edu/
[43]
Margus Veanes, Pieter Hooimeijer, Benjamin Livshits, David Molnar, and Nikolaj Bjorner. 2012. Symbolic Finite State Transducers: Algorithms and Applications. In Proceedings of the 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Philadelphia, PA, USA) (POPL ’12). Association for Computing Machinery, New York, NY, USA, 137–150. https://doi.org/10.1145/2103656.2103674
[44]
Jack Wadden, Kevin Angstadt, and Kevin Skadron. 2018. Characterizing and Mitigating Output Reporting Bottlenecks in Spatial Automata Processing Architectures. In IEEE International Symposium on High Performance Computer Architecture, HPCA 2018, Vienna, Austria, February 24-28, 2018. IEEE Computer Society, 749–761. https://doi.org/10.1109/HPCA.2018.00069
[45]
Xiaodong Yu and Michela Becchi. 2013. GPU Acceleration of Regular Expression Matching for Large Datasets: Exploring the Implementation Space. In Proceedings of the ACM International Conference on Computing Frontiers (Ischia, Italy) (CF ’13). Association for Computing Machinery, New York, NY, USA, Article 18, 10 pages. https://doi.org/10.1145/2482767.2482791
[46]
Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauly, Michael J. Franklin, Scott Shenker, and Ion Stoica. 2012. Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing. In 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI 12). USENIX Association, San Jose, CA, 15–28.
[47]
Yuan Zu, Ming Yang, Zhonghu Xu, Lin Wang, Xin Tian, Kunyang Peng, and Qunfeng Dong. 2012. GPU-Based NFA Implementation for Memory Efficient High Speed Regular Expression Matching(PPoPP ’12). Association for Computing Machinery, New York, NY, USA, 129–140. https://doi.org/10.1145/2145816.2145833

Index Terms

  1. A Transducers-based Programming Framework for Efficient Data Transformation
          Index terms have been assigned to the content through auto-classification.

          Recommendations

          Comments

          Information & Contributors

          Information

          Published In

          cover image ACM Conferences
          PACT '24: Proceedings of the 2024 International Conference on Parallel Architectures and Compilation Techniques
          October 2024
          375 pages
          ISBN:9798400706318
          DOI:10.1145/3656019
          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Sponsors

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          Published: 13 October 2024

          Permissions

          Request permissions for this article.

          Check for updates

          Qualifiers

          • Research-article
          • Research
          • Refereed limited

          Funding Sources

          Conference

          PACT '24
          Sponsor:

          Acceptance Rates

          Overall Acceptance Rate 121 of 471 submissions, 26%

          Contributors

          Other Metrics

          Bibliometrics & Citations

          Bibliometrics

          Article Metrics

          • 0
            Total Citations
          • 59
            Total Downloads
          • Downloads (Last 12 months)59
          • Downloads (Last 6 weeks)4
          Reflects downloads up to 17 Feb 2025

          Other Metrics

          Citations

          View Options

          Login options

          View options

          PDF

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          HTML Format

          View this article in HTML Format.

          HTML Format

          Figures

          Tables

          Media

          Share

          Share

          Share this Publication link

          Share on social media