Parallel Debugging

Charm++ offers a variety of parallel debugging options, from the extremely basic to the extremely sophisticated. The traditional debugging methods, such as logging (via the CkPrintf routine) and interactive debugging (via the "++debug" command line option) are supported under Charm++.

In addition, Charm++ offers several additional features designed to simplify application development. Linking with "-memory paranoid" checks all dynamic heap allocation calls for common errors, such as double-delete, random-delete, read-after-delete, buffer over- and under-write errors. Charm++, when compiled without "-DCMK_OPTIMIZE", contains hundreds of assertations to catch invalid parameters and unintialized data passed to API routines.

We are working on a sophisticated parallel debugger, with the ability to set breakpoints, examine variables, objects, and messages across the entire machine. The design of this debugger is described in the paper below.
 

People
Papers
  • 04-04    Rashmi Jyothi, Orion Sky Lawlor and L. V. Kale,  Debugging Support for Charm++,  Proceedings of PADTAD Workshop, held as part of IPDPS 2004, IEEE Press, page 294.
  • 03-13    Rashmi Jyothi,  Debugging Support for Charm++,  University of Illinois Computer Science 2003 Master's Thesis
  • 99-04    Parthasarathy Ramachandran and Laxmikant V. Kale ,  Mulitlingual Debugging Support for Data-driven and Thread-based Parallel Languages,  Lecture Notes in Computer Science: Proc. of 12th International Workshop on Languages and Compilers for Parallel Computing (LCPC '99), pages 236-250

This page maintained by Filippo Gioachin. Back to the PPL Research Page