8

I write codes in Fortran and C for various matrix algorithms. However, when I profile my codes using VTune, I usually run into some terminology that I cannot fully appreciate. Is there a good resource for learning profiling from scratch to a fairly advanced level?

Although I am looking forward to profiling numerical codes, I don't think (I might be wrong) that profiling other codes is any different. I want a tutorial on profiling and I would prefer an online (Free) PDF but wouldn't mind books or handbooks.

I have tried reading VTune's handbook but thats like trying to learn chinese by reading a chinese language book.

Further, is VTune the best way to go? I really like a GUI and since I use Intel MKL, I figured it would be better than Valgrind.

GertVdE
  • 6,179
  • 1
  • 21
  • 36
Inquest
  • 3,394
  • 3
  • 26
  • 44

3 Answers3

6

Another common choice is to use PAPI http://icl.cs.utk.edu/papi/ or TAU http://www.cs.uoregon.edu/Research/tau/home.php, Valgrind is great for finding memory errors.

Some slides from TACC:

http://www.tacc.utexas.edu/user-services/training/course-materials

http://www.tacc.utexas.edu/c/document_library/get_file?uuid=fc609b77-b727-4bff-81a4-d30caa4013d4&groupId=13601

aterrel
  • 3,644
  • 24
  • 26
  • Thanks for the great links. Can you also suggest a good tutorial in the form of PDF, book or otherwise to learn about profiling? – Inquest Mar 20 '12 at 15:03
  • I don't have any books but I will ask around. – aterrel Mar 20 '12 at 15:38
  • Okay after asking a few people, basically after you get past the easy things you have to know a lot about computer architecture. We were recently tripped up on silly things like how fast it is to load a word on an Intel Chip (getting around hardware prefetching is not as easy as it sounds). – aterrel Mar 24 '12 at 21:01
3

If you are interested in performance analysis of parallel codes I like the book: Scientific Parallel Computing, L. Ridgway Scott, Terry Clark, Babak Bagheri.

Also, here are some cool slides used in a summer school course given (PASI. Valparaíso, Chile. January 2011) by one of the authors, the material is based on the book.

fcruz
  • 1,068
  • 8
  • 9
1

I tool I have used extensively for profiling is valgrind (in combination with the graphical interface kcachegrind). Valgrind is a set of dynamic analysis tools: memory error detection, threading bug hunting and profiling.

Some references on Valgrind:

Unfortunately (depends on where you come from :-) ), valgrind doesn't run on Windows, only on Linux and Darwin based machines.

GertVdE
  • 6,179
  • 1
  • 21
  • 36