Category Archives: Profiler

Review of Intel Parallel Advisor (part of Parallel Studio 2011)

After my review of Intel Parallel Studio and then my post of Advisor Lite, I had the opportunity of doing the beta of Intel Advisor and then the final version of Parallel Studio.

The review will not be as thorough as the one on Advisor Lite, because Advisor is an update of Advisor Lite. It has some additional features, and that’s what I’d like to focus on.

I won’t dwell into the details of Intel’s new offer, suffice to say that Intel took the opportunity of changing some offers name and of incorporating some parts of Parallel Studio in its other products, and of course on Linux (which was left alone until then).

Continue reading Review of Intel Parallel Advisor (part of Parallel Studio 2011)

Book review: The Art of Concurrency: A Thread Monkey’s Guide to Writing Parallel Applications

Free lunch is over, it’s time to go concurrent. The Art of Concurrency addresses the need for a workflow to develop concurrent/parallel applications.
Continue reading Book review: The Art of Concurrency: A Thread Monkey’s Guide to Writing Parallel Applications

Parallel Studio: Using Advisor Lite

After reviewing Parallel Studio, I’ve decided to look after Advisor Lite. Intel offers it for free, before the actual Advisor is released with a future Parallel Studio version. It aims at steering multithreaded development with Parallel Studio.
Continue reading Parallel Studio: Using Advisor Lite

Profiling with Visual Studio Performance Tool

After presenting Valgrind as an emulation profiler, I will present Microsoft solution, Visual Studio Performance Tool. It is available in the Team Suite editions, and offers a sampling- and an instrumentation-based profiler. Of course, it is embedded in Visual Studio IDE and accessible from a solution.
Continue reading Profiling with Visual Studio Performance Tool

Profiling with Valgrind/Callgrind

Profiling comes in three different flaviors. The first is emulation, where a processor behavior is emulated, the second is sampling, where at regular intervals, the profiler samples the status of a program, and fianlly instrulentation, where the profiler gets information when a subroutine is called and when it returns. As with the Heisenberg uncertainty, profiling changes the exact behavior of your program. This is something you have to remember when analyzing a profile.

Valgrind is an Open Source emulation profiler. It is freely available on standard Linux platforms. As it is an emulation, it is far slower than the actual program. This means that the I/O are underestimated. The advantage is that you can have every detail on the memory behavior (cache misses for instance). Valgrind does not emulate all processors, but you can tweak it to approach your own one.
Continue reading Profiling with Valgrind/Callgrind