13
Parallel Tools Platform Parallel Debugger Greg Watson Project Leader

Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

Embed Size (px)

DESCRIPTION

Programming Models  Message passing model  Distinct processes exchange data using messages  Explicit send/receive and collective operations  Shared memory model  Data structures are shared  Locking or atomic operations required  Currently targeting message passing, shared memory later  Message passing model  Distinct processes exchange data using messages  Explicit send/receive and collective operations  Shared memory model  Data structures are shared  Locking or atomic operations required  Currently targeting message passing, shared memory later

Citation preview

Page 1: Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

Parallel Tools PlatformParallel Debugger

Greg WatsonProject Leader

Page 2: Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

Design Considerations Parallel applications range from 2 to 128K processes Combined mult-process and threaded model is possible Some debug operations are performed on

All or a subset of processes Individual processes

Processes are typically dependent on each other Mixed language (e.g. C and Fortran) typical

Page 3: Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

Programming Models Message passing model

Distinct processes exchange data using messages Explicit send/receive and collective operations

Shared memory model Data structures are shared Locking or atomic operations required

Currently targeting message passing, shared memory later

Page 4: Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

Debugging Methodology Breakpoint across all processes to synchronize

In master/worker, breakpoint only workers Step all processes until error

Stepping one process typically not possible due to dependencies

Examine snapshot of data across all (or subset) of processes

Compare data from one process to another

Page 5: Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

Architecture Overview Eclipse UI front end

Reuse Debug and CDI where possible High level parallel debug API

Process sets used for efficiency Asynchronous command/event model Extension point to allow alternate backends

Backend (SDM) Startup Command broadcast Event aggregation MI only used for low level debug actions

Page 6: Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

UI Architecture

ICDI

IPCDI

Platform Debug UI

CDT Debug UIPTP Debug UI

IPDebugger

EventsCommands

IPDebugEvent

Page 7: Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

Debug APIpublic interface IPDebugger {

public void stepOver(BitList set, int count) throws PCDIException;

...}

public interface IPDebugEvent {public BitList getSet();...

}

101011010111111101011111

000000000111111101011111

Page 8: Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

SDM Architecture

0

ParallelDebugger

1

3

2 4 8

5 9 6

7

Command Broadcast

Page 9: Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

SDM Architecture

0

ParallelDebugger

1

3

2 4 8

5 9 6

7

Event Aggregation

Page 10: Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

AIF Architecture Independent Format for data Independent of endianness, word size, character size Fully represents data type and value Can be used to represent complex data structures, such as

linked lists Supports all C, C++ and Fortran types C and Java (partial) implementations Library operations:

Conversion to/from native format Logical and arithmetic Formatting and display

Page 11: Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

User Interface Parallel Debug View

Global view of processes and process sets Tooltips for fast variable access Regiser/unregister process to display in Debug View

Parallel Breakpoint Global - applies to all processes regardless of job or job size Set-based - applies to a set of processes for a particular job Color used to distinguish current set

Current line markers Multiple markers allowed Different markers for registered/unregistered processes Text highlighting colors

Page 12: Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

User Interface (cont…) Variable View

Supports AIF data Only fetches complex data types when variables are expanded

Array View Prototype using custom widget Allows 2-D view (slice) of multi-dimensional arrays Likely to move to memory view

Page 13: Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader

Demo