Using Cilkview Performance Analyzer

Using Cilkview Performance Analyzer

In one of the Cilk documents that discusses the Cilkview performance analyzerit shows how to use Cilkview to determine the speedup with multiple processors at different counts.I beleive the example is using a fibonacci sequnce.

It also shows how to modify a program's loops to setit up for parallel processing.In the examples there is usually oneloopmodified anf then the Cilkview Performance Analyzer is run giving the diagramif gnuplot is installed.

What if the program is far more complicated than one loop? What if there several loops and several subprograms (functions, etc). Let us say the program consists of dozens of functions and dozens of loops. This is usuualy the case in a software program that is used in engineering. How does one analyze it using the Cilkview performance analyzer? It seems that then it becomes far more difficult to analyze the program for performance improvement when going to multicore.


2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi Newport_j,

Cilkview will calculate parallelism for any part of the program you instrument, no matter how complex. Real-world scalability is more than just parallelism, of course, but as far as parallelism is concerned, complexity is a non-issue.

Parallelism is measured by calculating the work and span (span = critical path)of the instrumented code. Work and span are measurable properties in Cilk++. Burden is measured by factoring in the cost of scheduling if all parallelism is realized (which is a lower bound since parallel constructs in Cilk++ are opportunities for parallelism but are not obligatory).

The examples are simple so that it's easy to see.

Leave a Comment

Please sign in to add a comment. Not a member? Join today