Multilingual Debugging Support for Datadriven Parallel Languages - PowerPoint PPT Presentation

About This Presentation
Title:

Multilingual Debugging Support for Datadriven Parallel Languages

Description:

Charm , Java, threaded MPI, PVM, md ... Complements source level debuggers ... If you use Converse for your RTS, you will get this functionality for free... – PowerPoint PPT presentation

Number of Views:51
Avg rating:3.0/5.0
Slides: 22
Provided by: laxmika
Learn more at: http://charm.cs.uiuc.edu
Category:

less

Transcript and Presenter's Notes

Title: Multilingual Debugging Support for Datadriven Parallel Languages


1
Multilingual Debugging Support for Data-driven
Parallel Languages
  • Parthasarathy Ramachandran
  • Laxmikant Kale
  • Parallel Programming Laboratory
  • Dept. of Computer Science
  • University of Illinois at Urbana Champaign

2
Data driven execution motivation
  • Latency
  • openMP remote access
  • MPI a blocking receive
  • Response delay remote processor may be busy
  • Latency Tolerance
  • Basic idea have multiple items on your agenda
  • Overlap wait for data with useful computation

3
Data driven systems
  • Data flow machines
  • Functional and Logic languages (1983-)
  • Rediflow (Keller/Lindstrom), ..
  • Prolog Conery, Kale, ..
  • Actors
  • Charm/Chare Kernel 1987
  • first implementation on parallel machines
  • Multipol, Cid, Chant, Tulip, ..

4
What is data driven execution
  • Multiple entities per processor
  • Objects, threads, handlers,
  • Scheduled based on availability of data

5
Data driven execution
Scheduler
Scheduler
Message Q
Message Q
6
Data driven execution
  • Existence of scheduler DDE pre-requisite
  • Implicit control transfer
  • e.g. when a thread blocks for a recv, control
    transfers to a module of systems choice

7
Data driven execution
  • Advantages
  • Adaptive overlap of useful computation with idle
    time
  • Multiple modules efficiency and modularity
  • overlap idle time in one module with useful
    computation from another
  • MPI/PVM modules cant do this (as well), without
    sacrificing modularity

8
Debugging problem
  • Implicit control transfer leads to debugging
    difficulties
  • Unpredictable jumps
  • Need to observe schedulers queue
  • Need to use scheduling quanta
  • I.e. step to the next event
  • Here
  • A general purpose framework for debugging
    data-driven programs

9
Converse
  • Many data-driven languages/paradigms
  • Which one is right?
  • Acceptance barriers
  • Coexistence with monsters (MPI/openMP)
  • Our solution interoperability
  • Not the same as C/Fortran interoperabilty
  • Ability to integrate modules written in different
    paradigms in a single program
  • E.g. MPI, Charm, Chant

10
Converse
  • Supports multi-paradigm programming
  • Provides portability
  • Makes it easy to implement RTS for new paradigms
  • Several languages/libraries
  • Charm, Java, threaded MPI, PVM, md-perl, pc,
    Nexus, Path, Tempo, Cid, CC,..
  • More info http//charm.cs.uiuc.edu

11
Example application
12
Debugging Multi-paradigm Multi-lingual Programs
  • New problems
  • Scheduler entities belong to different languages
  • Need ability to set language specific breakpoints
  • Also
  • Integration with normal debugging methods
  • Source level debugging e.g. gdb
  • Need to freeze execution properly

13
Inadequacy of current methods
  • Can we use gdb? (for example)
  • Scheduler code inaccessible
  • Cannot focus on specific breakpoints
  • If we set a breakpoint in the scheduler
  • Scheduler entities belong to different languages
  • How to view them uniformly?
  • Need support for language implementors

14
Converse debugging framework
  • Freeze and Thaw
  • External intervention
  • Freeze schedulers (on one or all processors)
  • Ensure bookkeeping tasks continue
  • Scheduler processes debugging commands only
  • Scheduler level language-specific breakpoints
  • Language-specific viewing
  • of scheduler entries (e.g. method invocation,
    msg)
  • of resident entities (e.g. objects, threads)

15
Architecture
  • Uses converse client-server interface
  • Can inject messages into running programs
  • Can send responses via TCP sockets
  • Used for other purposes as well
  • E.g. Web based submission/monitoring

16
Architecture
  • Debugger client
  • Java based, GUI/communication
  • Debugger runtime library
  • A module in Converse runtime
  • Provides hooks for languages/libraries
  • GDB interface
  • Integrates source level debugging
  • Can customize for other debuggers

17
Viewing multilingual entities
  • Schedulers view
  • Each entry
  • The header contains a handler index
  • Handlers are registered by languages
  • Language runtimes register callback functions
  • showHeader returns a short string
  • showContent returns a long string with newLines
  • On freeze scheduler sends list of headers
  • On demand, sends the result of showContent

header
gibberish
18
Non scheduler entities
  • Objects and other data structures
  • Not in the schedulers queue
  • But still important to view
  • Same problem multiple languages
  • Solution
  • Each language registers each of its objects
  • For C object, use virtual inheritance
  • For others, registered callbacks

19
Breakpoints
  • Are language specific
  • Charm list of remotely invokable methods
  • Multipol handler function names, Chant Code
  • Each language supplies
  • A list of breakpoints (names and indices)
  • RTS maintains list of set breakpoints
  • note a handler may represent multiple
    breakpoints
  • Given a scheduler entry,
  • language RTS identifies breakpoint number

20
Optimizations
  • Data transfer between the runtime and client
  • Chunking send only a viewable screenful of
    information at a time
  • Caching
  • use idle time while user inspects data to collect
    and prepare information

21
Summary
  • Debugger is in operational use on
  • Workstation clusters
  • Parallel machines (Origin 2000, T3E)
  • Complements source level debuggers
  • Provides a useful functionality for all
    data-driven languages/libraries
  • If you use Converse for your RTS, you will get
    this functionality for free

http//charm.cs.uiuc.edu
Write a Comment
User Comments (0)
About PowerShow.com