SoftwareCompilersLibraries Applications Tools & Utilities Software by PlatformFranklinSeaborg Bassi Jacquard DaVinci PDSF HPSS Affiliated CollectionsACTS Collection |
DDT on FranklinDistributed Debugging Tool (DDT) from Allinea Software is the new parallel debugger for Franklin. Contents
IntroductionDDT is a parallel debugger which can be run on Franklin with up to 1024 processors. Totalview users will find DDT has very similar functionality and an intuitive user interface. All of the primary parallel debugging features from Totalview are available with DDT. Please let us know how you like DDT and report any questions or problems to consult@nersc.gov The Allinea DDT web page and users guide is a good resource for learning more about some of the advanced DDT features. Loading the DDT ModuleTo use DDT at NERSC, first load the DDT module to set the correct environment settings with the following command: Franklin% module load ddt
Compiling Code to run with DDTIn order to use DDT, code must be compiled with the -g option. We also recommend that you do not run with optimization turned on, flags such as -fast. A Fortran example: Franklin% ftn -g -o testDDT_ex testDDT.f Franklin% cc -g -o testDDT_ex testDDT.c Starting a Job with DDTBe sure to log into Franklin with an X window forwarding enabled. This could mean using the -X or -Y option to ssh. The -Y option often works better for Mac OSX. % ssh -X username@Franklin.nersc.gov Franklin% ddt testDDT_ex
Basic Debugging FunctionalityThe DDT GUI interface should be intuitive to anyone who has used a parallel debugger like Totalview before. Users can set breakpoints, step through code, set watches, examine and change variables, dive into arrays, dereference pointers, view variables across processors, step through processors etc. Please see the DDT Users Guide if you have trouble with any of these basic features.Useful New DDT FeaturesProcess GroupsWith DDT, the user can easily change the debugger to focus on a single process or group of processes. If Focus on Processor is chosen, then stepping through the code, setting a breakpoint etc will occur only for a given processor. If Focus on Group is chosen then the entire group of processors will advance when stepping forward in a program and a breakpoint will be set for all processors in a group. In addition, a user can create new sub-groups of processors by right clicking in the Process Group Window and then dragging the desired processors to the group. Groups can also be created more efficiently using sub-groups from the Parallel Stack View described below. The below image shows 3 different groups of processors, the default All group, a group with only a single master processor Root and a group with the remaining Worker processors.
Parallel Stack ViewA new feature which should help users debug at high concurrencies is DDT's Parallel Stack View window which allows the user to see the position of all processors in a code at the same time from the main window. A program is displayed as a branching tree with the number and location of each processor at each point. Instead of clicking through windows to determine where each processor has stopped, the Parallel Stack View presents a quick overview which easily allows users to identify stray processes. Users can also create sub-groups of processors from a branch of the tree by right clicking on the branch. A new group will appear in the Process Group Window at the top of the GUI.
Memory DebuggingDDT has a memory debugging tool which shows heap memory usage across processors. In order to use memory debugging, a user must link with the following option -Bstaticddt. Memory debugging is fully enabled for C codes and more functionality should be available for Fortran codes soon. Franklin% cc -g testDDT.c -Bstaticddt |
![]() |
Page last modified: Fri, 04 Jan 2008 22:23:28 GMT Page URL: http://www.nersc.gov/nusers/systems/franklin/software/ddt.php Web contact: webmaster@nersc.gov Computing questions: consult@nersc.gov Privacy and Security Notice |
![]() |