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

Multi-Paradigm Concurrent Debugger

B207c84229c3cc91fa26369bc374d2eb?s=47 Stefan Marr
September 07, 2016

Multi-Paradigm Concurrent Debugger

B207c84229c3cc91fa26369bc374d2eb?s=128

Stefan Marr

September 07, 2016
Tweet

Transcript

  1. Carmen Torres Lopez, Stefan Marr, Elisa Gonzalez Boix, Hanspeter Mössenböck

    Lille, September 7, 2016 Mul$-paradigm concurrent debugger Phase 1: Debugging actor-based languages
  2. For a brief bit of history: ENIAC’s recessive gene Marcus

    Mitch, and Akera Atsushi. Penn Printout (March 1996) hGp://www.upenn.edu/compuMng/printout/archive/v12/4/pdf/gene.pdf ENIAC's main control panel, U. S. Army Photo
  3. Concurrency & Parallellism in your pocket! Samsung Galaxy S7 (March

    2016) Processor: Octa Core Snapdragon 820, Exynos 8890, 64 bit Chipset 3
  4. Applica$ons in the Mul$core Age 4 Concurrency Model: event-loops or

    actors User Interface asynchronous event-driven
  5. Applica$ons in the Mul$core Age 5 ~/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 transacMonal backends Concurrency Model: transacMonal operaMons
  6. Applica$ons in the Mul$core Age 6 Data Analysis and Processing

    performance sensiMve Concurrency Model: data-parallel queries, map/reduce, fork/join, …
  7. Many Different Concurrency Models… •  Shared Memory models •  Threads

    •  Sobware TransacMonal Model •  Message Passing models •  CommunicaMng sequenMal processes •  Actors •  Processes-based actors •  AcMve Objects •  Event-loop concurrency ...and developers start to be combined in one single applicaMon S. Tasharofi et al. “Why Do Scala Developers Mix the Actor Model with Other Concurrency Models?,” ECOOP 2013. 7
  8. hGp://ssw.jku.at/Research/Projects/MetaConc/ 1.  How to abstract concurrent models into a common

    meta-level interface with a minimal performance overhead? 2. How to provide debugging tools that can adapt their features to the concurrency model at use? Project MetaConc: Towards Meta-Level Engineering and Tooling for Complex Concurrent Systems Research Challenges
  9. Event-loop Concurrency in a Nutshell session<-upload(song) myLib ‘local’ object message

    queue event loop ‘remote’ object myLib.add(song) 9 M. Miller, D. Tribble, and J. Shapiro, “Concurrency Among Strangers Programming in E as Plan CoordinaMon,” 2005.
  10. def buyerP := actor: { ... def teller := nil;

    def go(inventory, creditBureau, shipper) { teller := makeAsyncAnd.new(3, object: { def run(answer) { system.println("Got answer: " + answer); } }); inventory<-partInStock("partNo", teller); creditBureau<-checkCredit("name", teller); shipper<-canDeliver("profile", teller); } } def checkoutShoppingBasket(){ buyerP<-go(productP, accountP, shipperP); } REME-D: An Ambient-oriented Debugger 10 go buyerP A breakpoint on a message send... ...halts execuMon of the method invocaMon at receiver actor
  11. REME-D: Relevant Features •  State inspecMon •  Causal link browsing

    •  Breakpoint catalog E. G. Boix, C. Noguera, and W. De Meuter, “Distributed debugging for mobile networks,” The Journal of Systems & Sobware, 2014. actor view editor debug element view console 11
  12. REME-D’s Breakpoint Catalog 206 CHAPTER 10. DEBUGGING IN THE FACE

    OF PARTIAL FAILURES M ethod breakpoints Sym bol breakpoints Code breakpoints Conditional breakpoints Sender breakpoints Receiver breakpoints On entry breakpoints On exit breakpoints M essage breakpoints M essage resolution breakpoints M essage conditional breakpoints Role Designation Objective Figure 10.5: REME-D ’s breakpoint catalog provided to users. 12
  13. Stepping commands as breakpoints •  Step Over •  Step Into

    •  Step Return •  Step UnMl Step Into = Receiver breakpoint + halt on entry + code breakpoint 13
  14. Kómpos debugger for SOMNS SOMNS : A Fast Newspeak with

    Actors on Truffle + Graal •  CommunicaMng event loop based language •  Debugging features: Ø  Inspect actor and message state Ø  Tracking causality of messages Ø  No disMncMon on designaMon: all breakpoints work with AST node Ø  Extension of REME-D breakpoint catalog 14
  15. Extension of REME-D breakpoint catalog 15

  16. Message breakpoint: sender 16

  17. Message breakpoint: receiver 17

  18. Method breakpoint: asynchronous call 18

  19. Promise breakpoint Implicit resoluMon: <-: or whenResolved 19

  20. Promise breakpoint Explicit resoluMon: resolve 20

  21. Carmen Torres Lopez, Stefan Marr, Elisa Gonzalez Boix, Hanspeter Mössenböck

    Lille, September 7, 2016 Mul$-paradigm concurrent debugger Phase 1: Debugging actor-based languages