« Previous 1 2 3
Profiling application resource usage
Inside View
Summary
Knowing your application is one of the keys to being able to improve it and, perhaps most importantly, being able to judge which architecture (or architectures) you should be using. Essentially, "knowing yourself" from an application perspective is very important in the current climate, where non-x86 processors are on the rise and where accelerators are also becoming more commonplace and diverse.
Two basic approaches are available to help you understand your application: profiling, which gathers summary data when an application is run, and tracing, which presents a history of events as a function of time when the application is executed.
I believe both tools can be used to gather information about your application so that you can begin to paint a picture of how your application behaves and how it interacts with the system.
In my opinion, application profiling or tracing is not enough: You also need to profile and trace the system while the application is running so you get a much more complete picture of what the application is doing and what the system is doing to support the application or in response to it.
I hope this article has given you some starting points in finding tools and techniques to learn more about your application. My advice is to not be overwhelmed with the choices; rather, pick one or two of the tools and start using them. Once you become adept at using the tools you will learn more about your application and can use the other tools to further develop a behavior profile. It will truly be worth the effort.
Infos
- ARM architecture: http://en.wikipedia.org/wiki/ARM
- Loonson: http://en.wikipedia.org/wiki/Loongson
- Godson-3B: http://www.theregister.co.uk/2012/11/26/godson_mips_chip_isscc_preview/
- AMD APU: http://www.amd.com/us/products/desktop/processors/a-series/Pages/a-series-pib.aspx
- Profiling and tracing: http://www.open-mpi.org/faq/?category=perftools#prof-vs-trace
- Performance analysis tools: http://en.wikipedia.org/wiki/List_of_performance_analysis_tools
- gprof: http://en.wikipedia.org/wiki/Gprof
- gprof tutorial: http://www.thegeekstuff.com/2012/08/gprof-tutorial/
- GNU profiler tutorial: http://www.ibm.com/developerworks/library/l-gnuprof.html
- gprof quick start: http://web.eecs.umich.edu/%7Esugih/pointers/gprof_quick.html
- Valgrind: http://valgrind.org/
- Cachegrind: http://valgrind.org/docs/manual/cg-manual.html
- Callgrind: http://valgrind.org/docs/manual/cl-manual.html
- Valgrind/callgrind tutorial: http://matt.eifelle.com/2009/04/07/profiling-with-valgrind/
- PAPI: http://icl.cs.utk.edu/papi/
- Linux-perfctr: http://user.it.uu.se/%7Emikpe/linux/perfctr/
- Linux-perfctr and kernel version: http://icl.cs.utk.edu/papi/faq/index.html#46
- perf tutorial: https://perf.wiki.kernel.org/index.php/Tutorial
- OProfile: http://oprofile.sourceforge.net/news/
- OProfile cheatsheet: http://oprofile.sourceforge.net/docs/
- OProfile GitHub tutorial: http://ssvb.github.com/2011/08/23/yet-another-oprofile-tutorial.html
- Visual OProfile: http://www.stlinux.com/devel/stw/oprofile
- Sysstat utilities: http://sebastien.godard.pagesperso-orange.fr/
- System monitoring with sar and ksar: http://www.howtoforge.com/system-monitoring-with-sar-and-ksar
- ksar: http://sourceforge.net/projects/ksar/
- Sysstat how-to: http://www.linux.com/learn/tutorials/33766-sysstat-howto-a-deployment-and-configuration-guide-for-linux-servers
- SarCheck: http://www.sarcheck.com/
- Monitor Your Nodes with collectl: http://www.admin-magazine.com/HPC/Articles/Monitor-Your-Nodes-with-collectl
- MPE: http://www.mcs.anl.gov/research/projects/perfvis/download/index.htm#MPE
- Paraver: http://www.bsc.es/computer-sciences/performance-tools/paraver
- Scalasca: http://www.scalasca.org/
« Previous 1 2 3