Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Towards Meta-Level Engineering and Tooling for ...
Search
Stefan Marr
March 24, 2016
Research
1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Towards Meta-Level Engineering and Tooling for Complex Concurrent Systems
Stefan Marr
March 24, 2016
More Decks by Stefan Marr
See All by Stefan Marr
Actors! And now? An Implementer's Perspective onHigh-level Concurrency Models,Debugging Tools,and the Future of Automatic Bug Mitigation
smarr
0
590
How do we do Benchmark?Impressions from Conversations with the Community
smarr
0
11k
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "Unoptimizable" Using Old Ideas
smarr
1
3.7k
Few Versatile vs. Many Specialized Collections: How to design a collection library for exploratory programming?
smarr
0
3.2k
Multi-Paradigm Concurrent Debugger
smarr
0
190
Other Decks in Research
See All in Research
SAM3を用いたコマ・吹き出しの 領域検出と分割構造からの読み順推定
kzmssk
0
200
ふとした出会いで生まれたSkillが、 社内利用1位になるまで
mikimhk
22
25k
ros2-perf-multihost: 分散システムにおける客観的なアーキテクチャ評価フレームワーク
takasehideki
0
300
Evaluating LLM Reliability Across Facts, Evidence, and Cultures
yukiar
0
210
GeoAgent勉強会 論文紹介と強い推論モデルが与えるインパクト
satai
5
400
HackSick vol.7 LT資料【LLMアーキテクチャ入門・事前学習時の躓き所解説】 スパースなAttention・状態空間モデル
rikkabotan7
0
220
[WebDB2026]セレンディピティ指向推薦システム再考 ―セレンディピティの原義・類型・発生過程に基づく設計指針―
recsyslab
PRO
0
210
2025年度秋葉原ウォーカブルプロジェクト調査報告 「アキバらしいウォーカブル」とは何か
izumiyama_lab
1
260
Être éleveur dans un monde en transition : Comprendre les changements pour mieux les accompagner
institutdelelevage
PRO
0
140
最先端NLP勉強会2026 論文紹介:Reasoning with Sampling: Your Base Model is Smarter Than You Think (ICLR 2026 paper)
kogoro
4
730
[CV勉強会@関東 CVPR2026] PSDesigner: Automated Graphic Design with a Human-Like Creative Workflow / kantocv 67th CVPR 2026
shunk031
0
380
XDPerf: A High-Performance Traffic Generator Built with WASM and eBPF
takehaya
1
350
Featured
See All Featured
A better future with KSS
kneath
240
18k
Building an army of robots
kneath
307
47k
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
Typedesign – Prime Four
hannesfritz
42
3.2k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
830
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
440
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Crafting Experiences
bethany
1
390
Transcript
Stefan Marr, Elisa Gonzalez Boix, Hanspeter Mössenböck Towards Meta-Level Engineering
and Tooling for Complex Concurrent Systems
ApplicaFons in the MulFcore Age 2 Concurrency Model: event-loops or
actors User Interface asynchronous event-driven
ApplicaFons in the MulFcore Age 3 ~/Library/Mail$ sqlite3 EnvelopeIndex SQLite
version 3.7.7.1sqlite> .schema CREATE TABLE addresses (ROWID int, address, comment); CREATE TABLE messages (ROWID int, message_id, document_id, in_reply_to, remote_id int, sender int…); Data Storage consistency required transacFonal backends Concurrency Model: transacFonal operaFons
ApplicaFons in the MulFcore Age 4 Data Analysis and Processing
performance sensiFve Concurrency Model: data-parallel queries, map/reduce, fork/join, …
And, This is Real! hUp://stefan-marr.de/ 2014/07/why-is-concurrent- programming-hard/ 5 Tasharofi, S.;
Dinges, P. & Johnson, R. E. Why Do Scala Developers Mix the Actor Model with other Concurrency Models? ECOOP 2013. Apple Mail
How to provide tooling for all of them? 6
Research Challenges • Debugger for MulFple Concurrency Models • Minimizing
Interference 7 How to Abstract from Concurrency Models?
A DEBUGGER FOR SUCH APPLICATIONS SupporFng a Wide Range of
Concurrency Models. 8
Subsystems as CommunicaFng Event Loops 9 Actor A Actor B
Actor Principle
Subsystems as CommunicaFng Event Loops 10 Actor A Actor B
In Theory: One Message at a Time
Subsystems as CommunicaFng Event Loops 11 Actor A Actor B
Actors Contain Objects
Subsystems as CommunicaFng Event Loops 12 Actor A Actor B
Which message cause which changes?
Subsystems as CommunicaFng Event Loops 13 Actor A Actor B
caused? caused?
Subsystem uses TransacFons 14 Actor A Subsystem B
Subsystem uses TransacFons 15 Subsystem B
Subsystem uses TransacFons 16 Subsystem B
Subsystem uses TransacFons Subsystem B Thread A Thread B
Subsystem uses TransacFons Subsystem B Thread A Thread B Thread
A
Subsystem uses TransacFons Subsystem B Thread A Thread B Thread
A Thread B How did transacFons interact?
Requirements • High-level representaFon of concepts • Move between abstracFon
levels • Enable – Observe AcFons (History) – Understand Dependencies – Interact and Explore 20
MINIMIZING INTERFERENCE Research Challenge 21
Shared Resource in Message-based System 22 Synchro nizer Shared “Mutable”
Resource Added later, forgot about synchronizer
Shared Resource in Message-based System 23 Synchro nizer Shared “Mutable”
Resource 75% probability 25% probability
AUaching Debugger 24 Synchro nizer Shared “Mutable” Resource Debugger
With Debugger 25 Synchro nizer Shared “Mutable” Resource Debugger 99%
probability 1% probability
Tradeoff: Precision vs. Interference • How to minimize recorded data?
– Maximize re-synthesized informaFon – ParFal re-execuFon? • Independent of the concurrency model? 26
HOW TO ABSTRACT FROM CONCURRENCY MODELS? Research Challenge 27
What are common properFes for debugging? 28
Causality: Control & Data Dependencies 29 Details different for each
Concurrency Model
Scheduling Dependencies 30 Async message sends, rendevous semanFcs, blocking semanFcs,
...
Challenge: Support Wide Range of Concepts ConflicFng Goals – ImplementaFon Level:
Use common abstracFons – Tool Level: Show expected semanFcs 31 EnFty Event causes influences * *
SOMns: A Smalltalk with Actors 32 • • JavaScript, Node.js
5.4.0 JavaScript, GraalJS Ruby, JRuby+Truffle SOMns, Newspeak Java, 1.8.0_66 1 2 3 4 5 6 7 8 9 10 11 12 Runtime Factor, normalized to Java 1.8.0_66 (lower is better) Dynamic Language Research Planorm Faster than V8
Actor Performance On Par with JVM Frameworks 33 Chameneos ConcurrentSorted
LinkedList Counting ForkJoinThroughput PingPong RadixSort ThreadRing Geo Mean 0 1 2 3 4 5 6 7 8 Runtime factor over Scalaz lower is better Akka Jetlang SOMns Scalaz
Research Goals • Debugger for MulFple Concurrency Models • Minimizing
Interference 34 How to Abstract from Concurrency Models?