Dear Eun-Sung,

Usually, we want to gather statistics for different phases of a workload. 
Flexus gathers statistics from regions and there is a tool named stat-manager, 
provided with Flexus, which
let us read the statistics, combine them, etc. Of course, there is an overhead 
associated with regions: the more regions in a simulation you have, the slower 
the simulation becomes. The
optimal number of regions is the minimum number of regions that give us all the 
statistics that we are interested in. A simple example of the usefulness of the 
regions is that they enable us
to separate the warm-up period from the measurement period. I will explain to 
you how we use the regions to gather separate statistics for the warm-up period 
and the measurement period:

#############
#Trace simulations#
#############

Execution: 200M Cycles
Region Size: 100M Cycles
Number of regions: 2

[=============================== 200 M ===============================]
[==========Region 0(100M)=============][============Region 1(100M)===========]

In this example, 100M instructions are enough to warm up the system and we only 
need 100M instructions for the measurement period. Therefore, the optimal 
number of regions is
two. (Region 0 covers the warm-up period while Region 1 covers the measurement 
period).

###############
#Flexpoint generation#
###############

Execution: 200M Cycles
Region Size: 200M Cycles
Number of regions: 1

[=============================== 200 M ===============================]
[=============================== 200 M ===============================]

We do not use flexpoint generation simulations for gathering statistics (the 
only goal in a to generate flexpoints) so the optimal number of regions is one.

##############
#Timing simulations#
##############

Execution: 150K Cycles
Region Size: 50K Cycles
Number of regions: 3

[======================== 150 K ========================]
[====Region 0(50K)====][====Region 1(50K)====][====Region 2(50K)====]

In a timing simulation, 100K cycles are used to warm up the system and 50K 
cycles are enough to measure the system. In this example the optimal number of 
regions is three, the first two cover
the warm-up period and the last one covers the measurement period.

Regards,

Javier
________________________________________
From: Eun-Sung Kim [[email protected]]
Sent: Thursday, February 17, 2011 10:57 PM
To: [email protected]
Subject: Optimal number of flexpoints and regions

Hi all,

Assume that a workload is executed 100M cycles.
Then, parameter are set up as follows. As a result after run_job for creating 
flexpoints, generated flexpoint and regions are shown,
cpu0.cycle-break/  flexus.set-region-interval (array set 
flexus_commands_flexpoint in .run_job.rc.tcl)  -> generated flexpoints/  
generated regions
100M/ 100M -> 1/  1
100M/  10M -> 1/ 10
100M/    5M -> 1/ 20

10M/ 10M -> 10/ 1
10M/   5M -> 10/ 2
10M/   1M -> 10/10     ..... etc.

How can I choice the optimal value of each 
parameter(cpu0.cycle-break/flexus.set-region-interval)?
I'm not sure whether more slices would be better.

--Kim

Reply via email to