Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader."— Presentation transcript:

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

2 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  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

3 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

4 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  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

5 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  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

6 UI Architecture ICDI IPCDI Platform Debug UI CDT Debug UI PTP Debug UI IPDebugger EventsCommands IPDebugEvent

7 Debug API public interface IPDebugger { public void stepOver(BitList set, int count) throws PCDIException;... } public interface IPDebugEvent { public BitList getSet();... } public interface IPDebugger { public void stepOver(BitList set, int count) throws PCDIException;... } public interface IPDebugEvent { public BitList getSet();... } 101011010111111101011111 000000000111111101011111

8 SDM Architecture 0 ParallelDebugger 1 3 2 48 59 6 7 Command Broadcast

9 SDM Architecture 0 ParallelDebugger 1 3 2 48 59 6 7 Event Aggregation

10 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  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

11 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  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

12 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  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

13 Demo


Download ppt "Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader."

Similar presentations


Ads by Google