Difference between revisions of "Profiling your binary"

From ScientificComputing
Jump to: navigation, search
 
Line 1: Line 1:
 
<noinclude>==Introduction==</noinclude><includeonly>===Introduction===</includeonly>
 
<noinclude>==Introduction==</noinclude><includeonly>===Introduction===</includeonly>
 +
Profiling a binary is a way to dynamically analyze a program at runtime in order to identify the parts where its performance can be boosted/improved.
  
Profiling a binary is a way to dynamically analyse a program and identify parts where it can be boosted/improved.
+
On our HPC clusters, we support the following tools:  
 
 
ETH Zurich HPC clusters supports the following tools:  
 
  
 
* gprof [http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html gprof]  
 
* gprof [http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html gprof]  
Line 11: Line 10:
 
<noinclude>==Gprof==</noinclude><includeonly>===Gprof===</includeonly>
 
<noinclude>==Gprof==</noinclude><includeonly>===Gprof===</includeonly>
  
A good quick tutorial for <tt>gprof</tt> is available in [http://www.cs.duke.edu/~ola/courses/programming/gprof.html gprof quick tutorial]
+
You can find a good quick tutorial for <tt>gprof</tt> at [http://www.cs.duke.edu/~ola/courses/programming/gprof.html gprof quick tutorial]
  
 
<noinclude>==PAPI==</noinclude><includeonly>===PAPI===</includeonly>
 
<noinclude>==PAPI==</noinclude><includeonly>===PAPI===</includeonly>
  
PAPI provides an interface that developers can use to instrument their code and therefore profile it. PAPI provides ways to get performance counter hardware, which is found in the ETH HPC Clusters. Documentation on how to use PAPI is provided in [http://icl.cs.utk.edu/projects/papi/files/documentation/ PAPI doc]
+
PAPI provides you an interface that you can use to instrument and profile your code. PAPI provides ways to get performance counter hardware, which is found in our HPC Clusters. Please have a look at [http://icl.cs.utk.edu/projects/papi/files/documentation/ PAPI doc] for a documentation about PAPI.
  
 
<noinclude>==Intel Vtune amplifier xe==</noinclude><includeonly>===Intel Vtune amplifier xe===</includeonly>
 
<noinclude>==Intel Vtune amplifier xe==</noinclude><includeonly>===Intel Vtune amplifier xe===</includeonly>
  
<tt>Vtune</tt> amplifier is a tool that helps developers to optimize their program by providing profiling analysis. It supports command line and graphical user interface (GUI), which requires [[Accessing_the_clusters#X11|X11-forwarding]] to be configured. Tutorials on how to use it are available in the Intel website [https://software.intel.com/en-us/articles/intel-vtune-amplifier-tutorials vtune]
+
<tt>Vtune</tt> amplifier is a tool that helps you to optimize your program by doing a profiling analysis. It supports command line and graphical user interface (GUI), which requires [[Accessing_the_clusters#X11|X11-forwarding]] to be configured. Tutorials on how you can use it are available in the Intel website [https://software.intel.com/en-us/articles/intel-vtune-amplifier-tutorials vtune]
  
To use <tt>Vtune</tt> you need to first have an interactive job running on a compute node. This will be used to run the program to be profiled.  
+
To use <tt>Vtune</tt>, you need to start an interactive job running on a compute node in order to run the program that you would like to profile.  
 
* CLI: on the compute node of the interactive job
 
* CLI: on the compute node of the interactive job
 
  [leonhard@e1001 ~]$ amplxe-cl <-action> program
 
  [leonhard@e1001 ~]$ amplxe-cl <-action> program

Latest revision as of 09:08, 17 November 2016

Introduction

Profiling a binary is a way to dynamically analyze a program at runtime in order to identify the parts where its performance can be boosted/improved.

On our HPC clusters, we support the following tools:

Gprof

You can find a good quick tutorial for gprof at gprof quick tutorial

PAPI

PAPI provides you an interface that you can use to instrument and profile your code. PAPI provides ways to get performance counter hardware, which is found in our HPC Clusters. Please have a look at PAPI doc for a documentation about PAPI.

Intel Vtune amplifier xe

Vtune amplifier is a tool that helps you to optimize your program by doing a profiling analysis. It supports command line and graphical user interface (GUI), which requires X11-forwarding to be configured. Tutorials on how you can use it are available in the Intel website vtune

To use Vtune, you need to start an interactive job running on a compute node in order to run the program that you would like to profile.

  • CLI: on the compute node of the interactive job
[leonhard@e1001 ~]$ amplxe-cl <-action> program
[leonhard@euler05 ~]$ amplxe-gui

and the GUI of intel Vtune will start.