|   | 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  |