Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Jungsik_Choi
Beginner
62 Views

how to calculate the parallelization ratio on an Intel Xeon 5500 or i7

Jump to solution

Dear. everyone~

Idon't know how to calculate the parallelization ratio.

In the case of 45nm Intel Core microarchitecture, the following equation is used to calculate the parallelization ratio.

====================================================
Equation: 1 - ( CPU_CLK_UNHALTED.NO_OTHER / CPU_CLK_UNHALTED.BUS )
Ideal: 1
====================================================

I want to know how to calculate the parallelization ratioon an Intel Xeon 5500 or Core i7 using VTune.
Thank you.

From. CHOI

0 Kudos

Accepted Solutions
Peter_W_Intel
Employee
62 Views
Hello Choi,

Is there any different?

1. If you use VTune Analyzer's EBS to get performance data, and used formula (last time my posted)- that is for overall view of Instruction Level Parallelism of the program - Processes Report. If you narrow down to Threads Report, you can use formula to get parallelism for specific thread.

2. Intel Thread Profiler and Intel Parallel Amplifier can provide the user info -
a)Cruise (execution) time - how many percentages are in idle, in serial, in parallel, etc. That is overall data for your application.
b) Narrow down to each thread's Profiler, to know how many percentages in serial, in parallel. That is overall data for specific thread. Does itmeanas you saidThread Level Parallelism?

What is the benefit from Intel Thread Profiler and Intel Parallel Amplifier for the user? No need to use formula to get Parallelism. Tools tell you truth directly.

Regards, Peter

View solution in original post

3 Replies
Peter_W_Intel
Employee
62 Views

I don't know the formula you mentioned on Intel Core 2 -
1 - ( CPU_CLK_UNHALTED.NO_OTHER / CPU_CLK_UNHALTED.BUS

I suppose onCore2 processors -
Parallelism = CPU_CLK_UNHALTED.CORE_P / CPU_CLK_UNHALTED.TOTAL_CYCLES * Number-of-Cores
Note that I assumed that running code is nothalted, or says notina sleep state.It meansthat CPU frequency is constant during code running.

I can't find similar CPU event like as CPU_CLK_UNHALTED.TOTAL_CYCLES on i7 processors, the user may measure TSC value at the beginning and end of program, with _rdtsc() in ia32intrin.h (installed Intel C++ compiler)
Unused cycles== tsc_begin tsc_end CPU_CLK_UNHALTED.REF)
Parallelism = 1 - (Unused cycles / CPU_CLK_UNHALED.REF)

You can getparallelism (or cpu utilization) data directly if you use other Intel Tools: Intel Thread Profiler, or Intel Parallel Amplifier

Regards, Peter

Jungsik_Choi
Beginner
62 Views
Hello Peter.
Thank you for your attention.
But, I can't yet understand whether your parallelize ratio is a Instruction Level Parallelism(ILP) or Thread Level Parallelism(TLP).
========================================
Parallelism = 1 - (Unused cycles / CPU_CLK_UNHALED.REF)
========================================

If it is a TLP, please explain the your formula to me.
Thank you.
From. CHOI
Peter_W_Intel
Employee
63 Views
Hello Choi,

Is there any different?

1. If you use VTune Analyzer's EBS to get performance data, and used formula (last time my posted)- that is for overall view of Instruction Level Parallelism of the program - Processes Report. If you narrow down to Threads Report, you can use formula to get parallelism for specific thread.

2. Intel Thread Profiler and Intel Parallel Amplifier can provide the user info -
a)Cruise (execution) time - how many percentages are in idle, in serial, in parallel, etc. That is overall data for your application.
b) Narrow down to each thread's Profiler, to know how many percentages in serial, in parallel. That is overall data for specific thread. Does itmeanas you saidThread Level Parallelism?

What is the benefit from Intel Thread Profiler and Intel Parallel Amplifier for the user? No need to use formula to get Parallelism. Tools tell you truth directly.

Regards, Peter

View solution in original post