Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)
4995 Discussions

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

Jungsik_Choi
Beginner
373 Views

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
1 Solution
Peter_W_Intel
Employee
373 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

0 Kudos
3 Replies
Peter_W_Intel
Employee
373 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

0 Kudos
Jungsik_Choi
Beginner
373 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
0 Kudos
Peter_W_Intel
Employee
374 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
0 Kudos
Reply