Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
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
560
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.6k
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
180
Other Decks in Research
See All in Research
社内データ分析AIエージェントを できるだけ使いやすくする工夫
fufufukakaka
1
1.1k
敵対生成プロンプト同時探索による内省型プロンプト最適化
kinoue_smarthr
0
180
Model Discovery and Graph Simulation: A Lightweight Gateway to Chaos Engineering
anatolykr
0
190
Ghost in the 7‑Zip: The Shadow of Residential Proxies Creeping into Your Life
nttcom
0
1.1k
「なんとなく」の顧客理解から脱却する ──顧客の解像度を武器にするインサイトマネジメント
tajima_kaho
10
7.6k
言語モデルから言語について語る際に押さえておきたいこと
eumesy
PRO
5
2.3k
Any-Optical-Model: A Universal Foundation Model for Optical Remote Sensing
satai
3
830
Research Engineerという仕事 / Research Engineering: Bridging Research and Business
chck
1
210
[チュートリアル] 電波マップ構築入門 :研究動向と課題設定の勘所
k_sato
0
480
NLP colloquium: AI Safety Survey
kanekomasahiro
0
550
Using our influence and power for patient safety
helenbevan
0
360
「AIとWhyを深堀る」をAIと深堀る
iflection
0
480
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
290
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
220
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
200
Bash Introduction
62gerente
615
220k
Raft: Consensus for Rubyists
vanstee
141
7.5k
Code Review Best Practice
trishagee
74
20k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
400
Joys of Absence: A Defence of Solitary Play
codingconduct
1
390
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
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?