Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29254 Discussions

IVF and VTune and never the twain shall meet

g_f_thomas
Beginner
955 Views

This has been discussed here and on the VTune forum several times in the past without clear resolution.

As of now, free based IVF projects aren't instrumented byVTune so the Tuning Assistant is of little help. The call graph is cute but ultimately useless. All of the samples that come with VTune, including the online swf tutorial, relate to C/C++ only. Likewisefor the Thread Profiler add-in.

Ascribing the fault to the linker is strawmanesque rhetoric that doesn't wash any more than the exaggerated claims made on VTune's behalf vis-a-vis its alleged support for other common languages such as Fortran.

This being so and without prospect to change anytime soon, how about IVF makingPGO more accessible through the VS IDE? A concrete working demo would be an additional boon.

Gerry

0 Kudos
8 Replies
Steven_L_Intel1
Employee
955 Views
Gerry, I'm unfamiliar with the usage issues you raise. Got a pointer to a discussion? I've used VTune with IVF many times myself. I'm uncertain what you mean by "free based".

More samples are always a good idea and I'll chat with the VTune folk about it.

PGO through the IDE, eh? How would you envision that looking from the user perspective? Couldn't you do this with two configurations, one for prof_gen and one for prof_use?
0 Kudos
jimdempseyatthecove
Honored Contributor III
955 Views

Gerry,

Have you tried AMD's CodeAnalyst?

You can run timer based profiling with CA on an Intel processor. Event based profiling in CA will only work on AMD processors. But for the first level of profiling timer based profiling is quite adequate.

Jim Dempsey

0 Kudos
TimP
Honored Contributor III
955 Views
In my limited experience with oprofile based profilers (e.g. CodeAnalyst), IPO and similar transformations create as much or more havoc than they do under VTune. It is even more confusing when used with pgf90 than with ifort. It is not realistic to get local association of events with IPO.
Even inter-loop transformations such as ifort -O3 gives make it difficult to associate events to source code lines, but they should not invalidate events by subroutine for these profilers.
You may have noticed on the WhatIf forum there is an Intel produced alternative to VTune called PTU.
I find these profiling tools far more satisfactory for large applications when run on linux x86-64 than on Windows 32-bit. Of course, on linux, you may prefer gprof for preliminary timer profiling and call graph. It's just not feasible to make an old 32-bit Windows jump through all the hoops which may be possible with a newer OS.
0 Kudos
g_f_thomas
Beginner
955 Views

MADsblionel:
Gerry, I'm unfamiliar with the usage issues you raise. Got a pointer to a discussion?

Sure, here's a few:

http://software.intel.com/en-us/forums//topic/40088

http://software.intel.com/en-us/forums//topic/41907

http://software.intel.com/en-us/forums//topic/41419

MADsblionel:
I've used VTune with IVF many times myself.

Could you post a zip of a small IVF sample with its VTune folder?

MADsblionel:
I'm uncertain what you mean by "free based".

This is just Linker/Advanced/Fixed Base Address (=NO by default, ie, not fixed but free to relocate). This isrequiredfor VTune to be of any use with IVF source codecontaining line numbering anddebug symbols. As of the latest releases of IVFand VTune, the latter claims that Fixed Base Address = NO is YES and does nothing.

MADsblionel:
More samples are always a good idea and I'll chat with the VTune folk about it.

That would be great but impress upon them that it must be Fortran so as to lend credence to marketing hype concerning VTune's applicability and usefulness to IVF users.

MADsblionel:
PGO through the IDE, eh? How would you envision that looking from the user perspective? Couldn't you do this with two configurations, one for prof_gen and one for prof_use?

Yes, that's an idea as you have to run PGO multiple times. Use of the IDE is ergonomically attractive and efficient: Configuration Manager and Property PagesFortran and Linker would feature as would the built xml editor.

Gerry

0 Kudos
g_f_thomas
Beginner
955 Views

Jim,

I've had only a cursory go at CodeAnalyst but intend to have a closer view in time. Here right now it's 'spend it or loose it' season once again so coming to terms with VTune and cohorts (they are quite pricey as you know) is top of the heap.

Gerry

0 Kudos
Steven_L_Intel1
Employee
955 Views
I'm out of the office this week (have been at Supercomputing in Reno), but will take a look at this when I return on Monday.
0 Kudos
jimdempseyatthecove
Honored Contributor III
955 Views

Gerry,

If you have the $$$ go for the tools (VTune and others) but also consider using CodeAnalyst (it is free) as well. Then you will have the right tool for the task at hand.

I was too cheap to spend the $$ on VTune for my desktop system (P4) and laptop (P4). My production system has AMD Opteron processors so CA was a better choice for me. I use CA on my P4 systems.

I do a fair amount of mixed language programming. I found CA to work quite well in this environment. I've never had a problem with alignment issues as mentioned by Steve.

Not having VTune I cannot comment on it's strengths or weaknesses. What I've found particularly interesting with CodeAnalyst is for a sampling run you can look at the complete system sample information so you can tell what portion of the computation resources is spent not only by your application but also of all the .DLL's, CRTL, drivers, etc.. as well as for all processes on the system.

Then by doublclicking on an item of interest, usualy your application, but it could be anything you want. If the debug symbol tables are available and source code (e.g. Debug build of Windows, and/or if you have the VS SDK) a source viewer with statistics shows up. Showing a list of modules and sample data. You can then expand the module name and get the charts for the line numbers. Then if you can click on the line number of interest and get a source view with sample data.

Once CA is setup for an application I find it relatively easy to use.I did have problems at first in performing thesetup. The dialog boxes, though easy to use, are not as intuitive as they should be. It would help if they had context sensitive helper text displayed in the dialog box as does many of the Visual Studion tools.

Jim Dempsey

0 Kudos
g_f_thomas
Beginner
955 Views

Jim,

I appreciate you sharing your experience with and adviseon CodeAnalyst usage. I intend giving ita spin on the weekend if I can squeeze it in. Like yourself, I mainly do mixed language stuff after protyping on Matlab, so a tool that handles Fortran and C/C++ would be of great value. I recall as I write that Oscar Wilde once remarked that a cynic (thekeeper of the piggy bank) knows the price of everything and the value of nothing.

Gerry

0 Kudos
Reply