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

Towards Meta-Level Engineering and Tooling for ...

Towards Meta-Level Engineering and Tooling for Complex Concurrent Systems

Avatar for Stefan Marr

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?