View topic | Edit | WYSIWYGAttachPrintable
r12 - 18 Sep 2013 - 11:16:12 - DavidAcremanYou are here: Astrophysics Wiki >  Zen Web  >  CodeDevelopment > ParallelDebugging

Compiler Flags

The Intel compilers have several flags which can help with detecting errors (e.g. out of bounds array access). ifort has a -check all option which enables run-time checking; this slows the code down significantly but can be very useful when debugging. Adding -g -traceback flags will tell you where the error is occurring. See the ifort man page for more details of the available flags. For checking MPI you can use the -check_mpi flag (version 4.0 and later), see the CheckingMPI page for more details.

Segmentation Faults

If your code is generating a segmentation fault this advice from Intel may be useful.

Intel Debugger

The intel debugger (idb) is available, with the graphical interface also available on zen-viz. Use idb to start the graphical interface or idbc to start the command line interface. idb will work with OpenMP but not MPI at present. For MPI codes you can use DDT.

Distributed Debugging Tool (DDT)

We have a license for ddt from Allinea. To start it load the ddt module and type ddt.

Submitting a job to the queue using DDT

You will need a modified job submission file to allow your job to run in the queue using DDT.

Copy the template PBS file (/usr/local/examples/ddt/example-ddt.qtf) into the directory where your job will run and edit as required (e.g. to change into the required working directory). You do not need to specify the executable in the mpirun line as this is set up from DDT.

Specify the location of the job submission file in DDT (session -> options -> Job submission)

You can now use DDT to submit your job to the queue.

When using fewer than 8 MPI processes per node you need to change the value of PROCS_PER_NODE_TAG to the number of MPI processes per node. This can be found from the run window by clicking the Change button (on the MPI implementation line) and selecting the Job submission tab.

When debugging an OpenMP application you will need to select threaded memory checking. From the Advanced section of the run window click the Settings button next to Enable Memory Debugging. From the Language menu select C/Fortran, threads.

-- JohnRowe - 28 Jan 2008

View topic | Edit |  | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r14 < r13 < r12 < r11 < r10 | More topic actions...

key Log In or Register

Main Web Users Groups Index Search Changes Notifications Statistics Preferences

Webs Main Sandbox TWiki Zen Information

Main Web Users Groups Index Search Changes Notifications Statistics Preferences

Webs Main Sandbox TWiki Zen

Astrophysics Wiki

Edit Wysiwyg Attach Printable
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Astrophysics Wiki? Send feedback