Using ITAC with non Intel MPI stacks

Using ITAC with non Intel MPI stacks

imagem de drMikeT

Hello,

I was wondering if the latest ITAC trace analyzer can be used with non-Intel MPI stacks which however have been compiled with the Intel compiler set (13.1). If this is possible could someone show the link command line or point to the libaries which ITAC needs to link the executable with in order to be able to collect traces that can be worked on with the traceanalyzer?

Thanks ...

Michael

R/D High-Performance Computing and Engineering
6 posts / 0 new
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.
imagem de James Tullos (Intel)

Hi Michael,

There are still possible incompatibilities.  The easiest way to check for compatibility is to use the test program provided with Intel® Trace Analyzer and Collector.  It is located at <installpath>/examples/mpiconstants.c.  Compile this with your MPI implementation, and compare the output to the constants provided in the Intel® Trace Collector Reference Guide.  If everything matches, then you should have a compatible MPI.

The library you want is libVT.so, found in <installpath>/itac/slib_impi4.  You should also source the environment variable script <installpath>/intel64/bin/itacvars.sh.

Sincerely,
James Tullos
Technical Consulting Engineer
Intel® Cluster Tools

imagem de drMikeT

Quote:

James Tullos (Intel) wrote:

Hi Michael,

There are still possible incompatibilities.  The easiest way to check for compatibility is to use the test program provided with Intel® Trace Analyzer and Collector.  It is located at <installpath>/examples/mpiconstants.c.  Compile this with your MPI implementation, and compare the output to the constants provided in the Intel® Trace Collector Reference Guide.  If everything matches, then you should have a compatible MPI.

The library you want is libVT.so, found in <installpath>/itac/slib_impi4.  You should also source the environment variable script <installpath>/intel64/bin/itacvars.sh.

Sincerely,
James Tullos
Technical Consulting Engineer
Intel® Cluster Tools

Hi James, 

thanks for the prompt reply ... 

I will check with this code to see if everything checks out.

Can I trace H/W performance counter information using ITAC for my code? I saw the '-trace' option with the compilers which allows you to also specify what to trace (functions and loops I believe). Can I though let the tracing system collect perf counter information which I may then view via the traceanalyzer GUI along, say, the time axis on the charts?

thanks!

Michael

R/D High-Performance Computing and Engineering
imagem de James Tullos (Intel)

Hi Michael,

Not really.  ITAC collects function entry/exit information, along with MPI parameters for MPI calls, or other user-specified parameters if you're using the API.  To get hardware counters in ITAC, you'd need to collect them in your program and use the API to add them to the trace.  You'll do much better to use a different product, Intel® VTune™ Amplifier XE.  It will collect hardware performance information.

Using -trace is an option for the Intel® MPI Library compiler scripts, which will link to libVT.so for you.  But with a different implementation, you'll most likely need to do that linking directly.

James.

imagem de Gergana Slavova (Intel)

Actually, ITAC does have the capability to record some hardware information both on the OS level and via the PAPI interface.  To make this work, you have to link with the libVTsample.a library instead:

mpiicc test.o -lVTsample -lVT -lpapi -o test.exe

You'll have to create the libVTsample library first, based on your local configuration.  There's a Makefile provided in <installpath>/itac/lib.

Once you have that ready, just enable counter tracing via your VT_CONFIG configuration file by enabling:

COUNTER <counter name> ON

Since this covers only some of the basics, I would suggest you taking a look at sections 3.9 Recording Hardware Performance Information and 3.10 Recording OS Counters in the Intel® Trace Collector Reference Manual.

And, of course, James is 100% correct that VTune would give you that and a lot more hardware info for your application so we recommend using it if it's available on your cluster.  It does work under MPI as well.

Regards,
~Gergana

Gergana Slavova
Technical Consulting Engineer
Intel® Cluster Tools
E-mail: gergana.s.slavova_at_intel.com
imagem de drMikeT

Quote:

Gergana Slavova (Intel) wrote:

Actually, ITAC does have the capability to record some hardware information both on the OS level and via the PAPI interface.  To make this work, you have to link with the libVTsample.a library instead:

mpiicc test.o -lVTsample -lVT -lpapi -o test.exe

You'll have to create the libVTsample library first, based on your local configuration.  There's a Makefile provided in <installpath>/itac/lib.

Once you have that ready, just enable counter tracing via your VT_CONFIG configuration file by enabling:

COUNTER <counter name> ON

Since this covers only some of the basics, I would suggest you taking a look at sections 3.9 Recording Hardware Performance Information and 3.10 Recording OS Counters in the Intel® Trace Collector Reference Manual.

And, of course, James is 100% correct that VTune would give you that and a lot more hardware info for your application so we recommend using it if it's available on your cluster.  It does work under MPI as well.

Regards,
~Gergana

Hi Gergana,

thanks for the pointer. I will take a look at the reference to see how much h/w perf counter info I can collect and use with ITAC. 

take care

Mike

R/D High-Performance Computing and Engineering

Faça login para deixar um comentário.