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
