Aggregate Update Problem for Multi-clocked Dataflow Languages
| Title | Aggregate Update Problem for Multi-clocked Dataflow Languages |
| Publication Type | Conference Paper |
| Year of Publication | 2022 |
| Authors | Kallwies, H, Leucker, M, Scheffel, T, Schmitz, M, Thoma, D |
| Conference Name | 2022 IEEE/ACM International Symposium on Code Generation and Optimization (CGO) |
| Publisher | IEEE Computer Society |
| Keywords | aggregate update problem, compiler optimization, dataflow |
| Abstract | Dataflow languages have, as well as functional languages, immutable semantics, which is often implemented by copying values. A common compiler optimization known from functional languages involves analyzing which data structures can be modified in-place instead of copying them. This paper presents a novel algorithm to this so called Aggregate Update Problem for multi-clocked dataflow languages, i.e. those that allow streams to have events at disjoint timestamps, like e.g. Lucid, Lustre and Signal. Unrestricted multi-clocked languages require a static triggering analysis on how events and hence data values are read, written and replicated. We use TeSSLa as a generic stream transformation language with a small set of operators to develop our ideas. We implemented the solution in a TeSSLa compiler targeting the Java VM via Scala code generation which combines persistent data structures and mutable data structures for those data values which allow in-place editing. Our empirical evaluation shows considerable speedup for use cases where queues, maps or sets are dominant data structures. |
| URL | https://doi.ieeecomputersociety.org/10.1109/CGO53902.2022.9741275 |
| DOI | 10.1109/CGO53902.2022.9741275 |
@inproceedings {1408,
title = {Aggregate Update Problem for Multi-clocked Dataflow Languages},
booktitle = {2022 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)},
year = {2022},
publisher = {IEEE Computer Society},
organization = {IEEE Computer Society},
abstract = {<p>Dataflow languages have, as well as functional languages, immutable semantics, which is often implemented by copying values. A common compiler optimization known from functional languages involves analyzing which data structures can be modified in-place instead of copying them. This paper presents a novel algorithm to this so called Aggregate Update Problem for multi-clocked dataflow languages, i.e. those that allow streams to have events at disjoint timestamps, like e.g. Lucid, Lustre and Signal. Unrestricted multi-clocked languages require a static triggering analysis on how events and hence data values are read, written and replicated. We use TeSSLa as a generic stream transformation language with a small set of operators to develop our ideas. We implemented the solution in a TeSSLa compiler targeting the Java VM via Scala code generation which combines persistent data structures and mutable data structures for those data values which allow in-place editing. Our empirical evaluation shows considerable speedup for use cases where queues, maps or sets are dominant data structures.</p>
},
keywords = {aggregate update problem, compiler optimization, dataflow},
doi = {10.1109/CGO53902.2022.9741275},
url = {https://doi.ieeecomputersociety.org/10.1109/CGO53902.2022.9741275},
author = {Hannes Kallwies and Martin Leucker and Torben Scheffel and Malte Schmitz and Daniel Thoma}
}- News
- Research
- Teaching
- Staff
- Martin Leucker
- Diedrich Wolter
- Ulrike Schräger-Ahrens
- Mahmoud Abdelrehim
- Aliyu Ali
- Christopher Walther
- Phillip Bende
- Moritz Bayerkuhnlein
- Marc Bätje
- Tobias Braun
- Gerhard Buntrock
- Raik Dankworth
- Anja Grotrian
- Raik Hipler
- Elaheh Hosseinkhani
- Frauke Kerlin
- Karam Kharraz
- Mohammad Khodaygani
- Ludwig Pechmann
- Waqas Rehan
- Martin Sachenbacher
- Andreas Schuldei
- Mahdi Pourghasem
- Manuel Herbst
- Inger Struve
- Annette Stümpel
- Gesina Schwalbe
- Tobias Schwartz
- Daniel Thoma
- Sparsh Tiwari
- Lars Vosteen
- Open Positions
- Contact