Intel® MPI Library
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.
2161 Discussions

Profiling and the product "intel Cluster Toolkit"


We have a little cluster with the Intel Cluster Toolkit. On the cluster we are using our programs developed in our labor:
- it is a code to solve Fluid-Structure Interaction: so we have a code for the fluid part, a code for the solid part and a coupling program
- the program for the fluid part is written in Fortran.
- the program for the solid part is written in C++.
- the coupling program is written in C++.

We would like to optimize them. Particularly the program for the fluid part (Fortran).

I have found that in the Intel Cluster Toolkit there are 2 possible products, which could be useful:
- Intel Trace collector
- Intel Trace analyzer
Are these products relevant for my problem ? Or are they useful just for tracking MPI problem ?

With the key word "profiling" I found the "-p" option combined with the "gprof" command. It gives interesting results, but is there a way to restrict the profiling just to a part of a subroutine (in order to get an idea where are the problems) ?

I found the Intel Vtune product too. What do you think ? Could this product be interesting for my problem ? or gprof or others tools are enough ?

Thx a lot,
Best regards,
0 Kudos
3 Replies
Honored Contributor III
Trace collector/analyzer is primarily for analyzing performance of your MPI layer.
Gprof isn't particularly suited to a multi-rank cluster application, but it's useful for finding the time spent by a single rank in various functions (including the MPI library).
For profiling at the loop level inside your functions, VTune is excellent. The closest open source tool would be oprofile.
0 Kudos

Thx for your answer. I have installed Vtune for evaluation. it's really great! but I don't find really detailled documentation...I will post on the corresponding forum.

Thx for the oprofile tip. I will take a look too.

0 Kudos
Hi Cuillaume,

Intel Trace Collector is just a tool which helps you to collect information about all MPI functions and communications in your program. If you don't call MPI functions it's useless (well, strictly speaking there is an API which can help you with any application). Intel Trace Analyzer helps you to analyze collected data. This is a graphical tool and using different charts you can find imbalance of your application.

Also you can use option '-tcollect' of the Intel compiler. In this case all functions will be instrumented.

Furthermore, there is a tool called itcpin using which you can instrument any application even if you have executable only.

0 Kudos