| 313 | |
| 314 | |
| 315 | |
| 316 | --------------------------------------------------------- |
| 317 | = Code Debugging / Profiling = |
| 318 | |
| 319 | Users are encouraged to debug their codes on a local machine. |
| 320 | |
| 321 | GDB is the standard debugger. |
| 322 | |
| 323 | [http://www.gnu.org/software/gdb/documentation/] |
| 324 | |
| 325 | For profiler, |
| 326 | |
| 327 | [https://sourceware.org/binutils/docs/gprof/] |
| 328 | |
| 329 | 'valgrind' can detect memory management and threading bugs. |
| 330 | |
| 331 | [http://valgrind.org/docs/manual/index.html] |
| 332 | |
| 333 | All tools above are available on cypress. |
| 334 | |
| 335 | Also there are powerful Intel products installed on cypress. |
| 336 | |
| 337 | == Intel® Inspector XE == |
| 338 | Memory and Thread Debugger: |
| 339 | * Debug memory errors like leaks and allocation errors and threading errors like data races and deadlocks. |
| 340 | |
| 341 | === Setting Environment and Compiling your code === |
| 342 | Load module to setup Intel compilers and tools. |
| 343 | {{{#!bash |
| 344 | [fuji@cypress1 ~]$ module load intel-psxe/2015-update1 |
| 345 | }}} |
| 346 | Compiling codes with '-g' option to tells the compiler to generate full debugging information in the object file. |
| 347 | {{{#!bash |
| 348 | [fuji@cypress1 ~]$ icc -g -o mytest mytest.c |
| 349 | }}} |
| 350 | |
| 351 | |
| 352 | |
| 353 | == Intel® Advisor XE == |
| 354 | Threading design and prototyping tool for software architects: |
| 355 | * Analyze, design, tune and check your threading design before implementation |
| 356 | * Explore and test threading options without disrupting normal development |
| 357 | * Predict threading errors & performance scaling on systems with more cores |
| 358 | |
| 359 | == Intel® VTune™ Amplifier 2015 == |
| 360 | * Intuitive CPU & GPU performance tuning, multi-core scalability, bandwidth and more |
| 361 | * Quick performance insight with advanced data visualization |
| 362 | * Automate regression tests and collect data remotely |