understanding cilkview output

understanding cilkview output

I wrote a program to a calculate and analyze FFT. When I use cilkview to analyze the program it throws me the following out:Statistics for fftp_out1) Parallelism Profile Work : 4208964828 instructions Span : 102287518 instructions Burdened span : 104256627 instructions Parallelism : 41.15 Burdened parallelism : 40.37 Number of spawns/syncs: 286721 Average instructions / strand : 4893 Strands along span : 129 Average instructions / strand on span : 792926 Total number of atomic instructions : 10692 Frame count : 74096612) Speedup Estimate2 procs: 1.92 - 2.004 procs: 3.55 - 4.008 procs: 6.18 - 8.0016 procs: 9.81 - 16.0032 procs: 13.88 - 32.00Whole Program Statistics:Cilkview Scalability Analyzer V1.1.0, Build 85031) Parallelism Profile Work : 8,099,110,662 instructions Span : 3,992,433,352 instructions Burdened span : 3,994,402,461 instructions Parallelism : 2.03 Burdened parallelism : 2.03 Number of spawns/syncs: 286,721 Average instructions / strand : 9,415 Strands along span : 259 Average instructions / strand on span : 15,414,800 Total number of atomic instructions : 6,229,955 Frame count : 74096642) Speedup Estimate 2 processors: 1.09 - 2.00 4 processors: 1.14 - 2.03 8 processors: 1.16 - 2.03 16 processors: 1.18 - 2.03 32 processors: 1.19 - 2.03My question is why is parallelism so much different from the first output than the second? Secondly, I don't really understand what these two different outputs refer to, any help will be greatly appreciated.

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

Just figured out the answer. I was doing a dump using cilkview object inside the code. So the first bit represents the statistics calculated from just a part of my code that is parallel.The complete program statistics also includes everthing else inside main.Also the huge difference is primarily because of a file write I was doing in main.

That's correct. Only the first half is the code that you identified as being significant. The second part is output (albeit without a graph) even if you don't explicitly identifyany of your code with start(), stop() and dump().

Login to leave a comment.