Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Towards Meta-Level Engineering and Tooling for Complex Concurrent Systems

Towards Meta-Level Engineering and Tooling for Complex Concurrent Systems

Stefan Marr

March 24, 2016
Tweet

More Decks by Stefan Marr

Other Decks in Research

Transcript

  1. ApplicaFons in the MulFcore Age 2 Concurrency Model: event-loops or

    actors User Interface asynchronous event-driven
  2. 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
  3. ApplicaFons in the MulFcore Age 4 Data Analysis and Processing

    performance sensiFve Concurrency Model: data-parallel queries, map/reduce, fork/join, …
  4. 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
  5. Research Challenges •  Debugger for MulFple Concurrency Models •  Minimizing

    Interference 7 How to Abstract from Concurrency Models?
  6. Subsystem uses TransacFons Subsystem B Thread A Thread B Thread

    A Thread B How did transacFons interact?
  7. Requirements •  High-level representaFon of concepts •  Move between abstracFon

    levels •  Enable – Observe AcFons (History) – Understand Dependencies – Interact and Explore 20
  8. Tradeoff: Precision vs. Interference •  How to minimize recorded data?

    – Maximize re-synthesized informaFon – ParFal re-execuFon? •  Independent of the concurrency model? 26
  9. Challenge: Support Wide Range of Concepts ConflicFng Goals – ImplementaFon Level:

    Use common abstracFons – Tool Level: Show expected semanFcs 31 EnFty Event causes influences * *
  10. 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
  11. 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
  12. Research Goals •  Debugger for MulFple Concurrency Models •  Minimizing

    Interference 34 How to Abstract from Concurrency Models?