Meta-level Engineering and Tooling for Complex Concurrent Systems
Meta-level Engineering and Tooling for Complex Concurrent Systems
Bilaterale Ausschreibung: Belgien
Disciplines
Computer Sciences (100%)
Keywords
-
Concurrency,
Language Implementation,
Debugging,
Meta-Interaces,
Instrumentation,
Optimization
During the last decade, multicore processors have become commonplace in phones, tablets, laptops, and servers. As a result, software developers use concurrent programming techniques to utilize these processors. Especially in complex software systems, we see a wide range of these techniques being used, for instance to perform computations in parallel. This is problematic, because in contrast to classic programming techniques, concurrent programming has a pervasive influence on the whole system rather than being nicely confined to isolated parts. This makes concurrent systems hard to understand and debug. Unfortunately, todays debugging tools for concurrent programs work on the lowest abstraction level, e.g., on memory accesses instead of the high-level concurrency concepts that developers used to build the systems, which makes it even harder to understand the software. To support the development of such complex systems, we propose to investigate how to abstract from the wide range of concurrent programming techniques. The goal is to devise a common mechanism to build tools that are able to represent the high-level concurrency concepts to the developers so that they can better understand the software they build. Furthermore, we need to investigate how to implement such a common mechanism, because existing techniques affect the way programs behave and can hide the concurrency bugs a software developer might try to understand. So far, the question of how to build tools for the wide range of concurrent programming techniques has not been investigated. While others have focused on specific techniques, for the complex software systems we see today, this is not enough. To approach this problem, we propose to combine the unique expertises of the Software Languages Lab at the Vrije Universiteit Brussel, Belgium and the Institute for System Software of the Johannes Kepler University Linz, Austria. We will investigate how to design a common meta-level interface for tools from the high-level perspective of concurrent programming techniques, as well as the low-level perspective of the fundamental performance issues for its implementation to minimize interference with program execution. For our research, we will rely on Truffle, a novel language implementation framework that allows us to build prototypes and experiments with state-of-the-art performance while using the existing infrastructure of Java virtual machines. Based on this technical foundation, we will investigate in an iterative approach support for message-passing, shared-state, and declarative concurrency to devise a meta-level interface that abstracts from the specific concurrency models. Furthermore, we will investigate how to efficiently support time- travelling debugging in such a setting to provide tools and thereby developers with the information on high-level concurrency concepts of their software system and the ability to examine and understand how a bug occurred.
Moore's law, according to which the performance of processors doubles every 1.5 years, has reached its limit. As a result, our computers and smartphones increasingly have 4, 8 or 16 processors instead of just one. To make use of these processors, programs are parallelised so that parts of them run concurrently on different processors. However, parallelisation brings new problems. The interaction between parallel processes is inherently non-deterministic. Errors often occur sporadically and are usually difficult to reproduce, since they are only noticeable in very specific interactions. In addition, there are different concurrency models, which are increasingly combined in one and the same program. The topic of our research was therefore the development of a novel software infrastructure which allows parallel programs to be better analysed at runtime and thus sporadically occurring problems to be localised. The idea behind our approach is to record the behaviour of the programs and their interactions and to analyse these "traces" afterwards. The challenge here was to reconcile different concurrency models, i.e. to find a uniform recording technique for all these models that on the one hand allows parallel programs to be replayed in such a way that the same interactions occur as in the original execution, and on the other hand to make these recordings as compact and efficient as possible so that the execution of the programs is slowed down as little as possible. This record & replay approach was successfully implemented and published in 22 papers in international journals and conferences. The software infrastructure and the tools based on it were made available in an open source repository and now serve other researchers as a basis for further investigations. The required efficiency was achieved-among other things-by novel dynamic optimisation techniques. To ensure continuous recording of long-running programs, a snapshotting technique was developed with which a program's state can be captured at certain points in time, so that the analysis can start at these snapshots without having to consider earlier program traces. The project was a cooperation between the Johannes Kepler University Linz and the Vrije Universiteit Brussel. While the Linz group was mainly concerned with the efficient recording of parallel programs and their subsequent analysis, the Brussels group mainly researched parallelisation models and analysis tools, for example to be able to replay parallel programs forwards and backwards while analysing them.
- Universität Linz - 100%
Research Output
- 109 Citations
- 39 Publications
- 2 Methods & Materials
- 2 Software
- 3 Disseminations
- 1 Scientific Awards
-
2021
Title Capturing High-level Nondeterminism in Concurrent Programs for Practical Concurrency Model Agnostic Record & Replay DOI 10.22152/programming-journal.org/2021/5/14 Type Journal Article Author Aumayr D Journal The Art, Science, and Engineering of Programming Link Publication -
2019
Title Asynchronous snapshots of actor systems for latency-sensitive applications DOI 10.1145/3357390.3361019 Type Conference Proceeding Abstract Author Aumayr D Pages 157-171 Link Publication -
2019
Title Debugging support for multi-paradigm concurrent programs DOI 10.1145/3359061.3361074 Type Conference Proceeding Abstract Author Aumayr D Pages 38-40 -
2016
Title Efficient and thread-safe objects for dynamically-typed languages DOI 10.1145/3022671.2984001 Type Journal Article Author Daloze B Journal ACM SIGPLAN Notices Pages 642-659 Link Publication -
2016
Title GEMs: shared-memory parallel programming for Node.js DOI 10.1145/3022671.2984039 Type Journal Article Author Bonetta D Journal ACM SIGPLAN Notices Pages 531-547 Link Publication -
2016
Title Cross-language compiler benchmarking: are we fast yet? DOI 10.1145/2989225.2989232 Type Conference Proceeding Abstract Author Daloze B Pages 120-131 -
2016
Title Cross-language compiler benchmarking: are we fast yet? DOI 10.1145/3093334.2989232 Type Journal Article Author Marr S Journal ACM SIGPLAN Notices Pages 120-131 Link Publication -
2016
Title Building efficient and highly run-time adaptable virtual machines DOI 10.1145/3093334.2989234 Type Journal Article Author Chari G Journal ACM SIGPLAN Notices Pages 60-71 Link Publication -
2016
Title Building efficient and highly run-time adaptable virtual machines DOI 10.1145/2989225.2989234 Type Conference Proceeding Abstract Author Chari G Pages 60-71 Link Publication -
2017
Title A Concurrency-Agnostic Protocol for Multi-Paradigm Concurrent Debugging Tools DOI 10.48550/arxiv.1706.00363 Type Preprint Author Marr S -
2017
Title A Study of Concurrency Bugs and Advanced Development Support for Actor-based Programs DOI 10.48550/arxiv.1706.07372 Type Preprint Author Lopez C -
2017
Title Proceedings of the 13th ACM SIGPLAN International Symposium on on Dynamic Languages, DLS 2017 DOI 10.1145/3133841 Type Journal Article Link Publication -
2016
Title GEMs: shared-memory parallel programming for Node.js DOI 10.1145/2983990.2984039 Type Conference Proceeding Abstract Author Bonetta D Pages 531-547 Link Publication -
2016
Title Towards Advanced Debugging Support for Actor Languages - Studying Concurrency Bugs in Actor-based Programs Type Other Author Marr S. Conference Work-in-progress Talk, AGERE! Workshop Link Publication -
2016
Title Towards Meta-Level Engineering and Tooling for Complex Concurrent Systems Type Conference Proceeding Abstract Author Gonzalez Boix E. Conference Arbeitstagung Programmiersprachen, ATPS'16 Pages 91-95 Link Publication -
2016
Title Efficient and thread-safe objects for dynamically-typed languages DOI 10.1145/2983990.2984001 Type Conference Proceeding Abstract Author Daloze B Pages 642-659 Link Publication -
2018
Title Efficient and deterministic record & replay for actor languages DOI 10.1145/3237009.3237015 Type Conference Proceeding Abstract Author Aumayr D Pages 1-14 Link Publication -
2018
Title A Study of Concurrency Bugs and Advanced Development Support for Actor-based Programs DOI 10.1007/978-3-030-00302-9_6 Type Book Chapter Author Torres Lopez C Publisher Springer Nature Pages 155-185 -
2018
Title Parallelization of dynamic languages: synchronizing built-in collections DOI 10.1145/3276478 Type Journal Article Author Daloze B Journal Proceedings of the ACM on Programming Languages Pages 1-30 Link Publication -
2018
Title Fully Reflective Execution Environments: Virtual Machines for More Flexible Software DOI 10.1109/tse.2018.2812715 Type Journal Article Author Chari G Journal IEEE Transactions on Software Engineering Pages 858-876 Link Publication -
2018
Title A flexible framework for studying trace-based just-in-time compilation DOI 10.1016/j.cl.2017.07.005 Type Journal Article Author Vandercammen M Journal Computer Languages, Systems & Structures Pages 22-47 Link Publication -
2018
Title Efficient and Deterministic Record & Replay for Actor Languages DOI 10.48550/arxiv.1805.06267 Type Preprint Author Aumayr D -
2017
Title Fully-Reflective VMs for Ruling Software Adaptation DOI 10.1109/icse-c.2017.144 Type Conference Proceeding Abstract Author Chari G Pages 229-231 -
2017
Title A concurrency-agnostic protocol for multi-paradigm concurrent debugging tools DOI 10.1145/3170472.3133842 Type Journal Article Author Marr S Journal ACM SIGPLAN Notices Pages 3-14 Link Publication -
2017
Title Garbage collection and efficiency in dynamic metacircular runtimes: an experience report DOI 10.1145/3170472.3133845 Type Journal Article Author Pimás J Journal ACM SIGPLAN Notices Pages 39-50 -
2017
Title A principled approach towards debugging communicating event-loops DOI 10.1145/3141834.3141839 Type Conference Proceeding Abstract Author Lopez C Pages 41-49 Link Publication -
2017
Title A concurrency-agnostic protocol for multi-paradigm concurrent debugging tools DOI 10.1145/3133841.3133842 Type Conference Proceeding Abstract Author Marr S Pages 3-14 Link Publication -
2017
Title Garbage collection and efficiency in dynamic metacircular runtimes: an experience report DOI 10.1145/3133841.3133845 Type Conference Proceeding Abstract Author Pimás J Pages 39-50 Link Publication -
2017
Title Trace Register Allocation Policies DOI 10.1145/3132190.3132209 Type Conference Proceeding Abstract Author Eisl J Pages 92-104 Link Publication -
2017
Title Applying Optimizations for Dynamically-typed Languages to Java DOI 10.1145/3132190.3132202 Type Conference Proceeding Abstract Author Grimmer M Pages 12-22 Link Publication -
2017
Title Kóµpo? DOI 10.1145/3079368.3079378 Type Conference Proceeding Abstract Author Marr S Pages 1-2 Link Publication -
2017
Title Toward Virtual Machine Adaption Rather than Reimplementation: Adapting SOMns for Grace Type Other Author Marr S. Link Publication -
2017
Title A Metaobject Protocol for Optimizing Application-Specific Run-Time Variability DOI 10.1145/3098572.3098577 Type Conference Proceeding Abstract Author Chari G Pages 1-5 Link Publication -
0
DOI 10.1145/2989225 Type Other -
0
DOI 10.1145/2983990 Type Other -
0
DOI 10.1145/3098572 Type Other -
0
DOI 10.1145/3141834 Type Other -
0
DOI 10.1145/3132190 Type Other -
0
DOI 10.1145/3079368 Type Other
-
2017
Link
Title SOMns: A Platform for Research on Concurrent Programming Models and Tooling Type Improvements to research infrastructure Public Access Link Link -
2016
Link
Title Are We Fast Yet Benchmark Suite DOI 10.1145/10.1145/2989225.2989232 Type Improvements to research infrastructure Public Access Link Link
-
2020
Link
Title smarr/ReBench: 1.0.0 Foundations DOI 10.5281/zenodo.3782861 Link Link -
2019
Link
Title SOMns: A Newspeak for Concurrency Research DOI 10.5281/zenodo.3270909 Link Link
-
2017
Link
Title MoreVMs Workshop Series Type Participation in an activity, workshop or similar Link Link -
2016
Link
Title Virtual Machine Meetup Type A talk or presentation Link Link -
2016
Link
Title Meta: Workshop Series on Meta-Programming Techniques and Reflection Type Participation in an activity, workshop or similar Link Link
-
2019
Title 2nd place at the Student Research Competition (Graduate Category) at the SPLASH'19 Doctoral Symposium Type Research prize Level of Recognition Continental/International