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

Multi-Paradigm Concurrent Debugger

Stefan Marr
September 07, 2016

Multi-Paradigm Concurrent Debugger

Stefan Marr

September 07, 2016

More Decks by Stefan Marr

Other Decks in Science


  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> .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. 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