Debugging Support for Charm++ Rashmi Jyothi 11/19/2003 Parallel Programming Laboratory
Support in Charm: Overview Ability to freeze/unfreeze the program Set/remove breakpoints View contents of array elements, messages in queues, readonlies, registration tables Attach processes on specified number of processor elements to a sequential debugger during program execution Basic record/replay functionality 11/19/2003 Parallel Programming Laboratory
Parallel Programming Laboratory Debugger: Approach Uses the CCS module in Charm The program to be debugged is the parallel server while the debugger is the client Parallel Debugger Charm++ program ccs_set_break_point ccs_debug_startgdb . 11/19/2003 Parallel Programming Laboratory
Debugger: Approach (contd) CpdList allows to retrieve the contents of the chare table, messages in queues etc of a running program . Ccs handler written which returns the pupped data for a particular CpdList, to the client Lists registered to retrieve items in chare table, entry table, CmiLocalQueue, CsdSchedQueue etc At time of initialization, pup function to be used for each of the CpdLists registered. PUP::toText & PUP::sizerText used to return displayable strings 11/19/2003 Parallel Programming Laboratory
Parallel Programming Laboratory Record Replay This mechanism is useful to find bugs that occur due to the order in messages are processed Program linked with –tracemode recordreplay <srcpe env-size sequence no> written to a file for each pe when +record runtime option used +replay reruns the program with the same message ordering sequence. Tested for cases not using migration. 11/19/2003 Parallel Programming Laboratory
Parallel Programming Laboratory Thank you 11/19/2003 Parallel Programming Laboratory