[parsec-users] Simics commands for simulating blackscholes

Muhammad abid Mughal mabidm_pieas at yahoo.com
Thu Jun 17 20:05:20 EDT 2010


i connect my timing model (ie memory hierarchy) after 1st magic breakpoint(just before the start of ROI) then i run simulation for number of
inst to warm up caches,etc.so for me this was the cold checkpoint

if you have already connected your timing model then you may call it warm checkpoint.But i do recommend that take warm checkpoint
after running simulation for number of inst in the ROI.




________________________________
From: Mahmood Naderan <nt_mahmood at yahoo.com>
To: PARSEC Users <parsec-users at lists.cs.princeton.edu>
Sent: Friday, June 18, 2010 2:46:48
Subject: Re: [parsec-users] Simics commands for simulating blackscholes


Hi,
I think I got it. One thing that confuse me is the measurement phase that you said in your first reply (The question may not related to PARSEC itself. So sorry Chris.... :) )
 
You said:
  >   c)measurement
  >      #read cold checkpoint
  >      read-configuration  warmcheckpoint_filename
 
I think the comment statement is wrong and whould be "#read warm checkpoint". Am I right?
Thanks,
 
// Naderan *Mahmood;




________________________________
 From: Muhammad abid Mughal <mabidm_pieas at yahoo.com>
To: PARSEC Users <parsec-users at lists.cs.princeton.edu>
Sent: Thu, June 17, 2010 8:07:23 PM
Subject: Re: [parsec-users] Simics commands for simulating blackscholes


hi,
     You are taking cold checkpoint after running the whole benchmark, so this is useless.
you should take cold checkpoint when benchmark is about to enter in ROI. so in your case you should take it at step 4

Regards
Muhammad abid



________________________________
 From: Mahmood Naderan <nt_mahmood at yahoo.com>
To: PARSEC Users <parsec-users at lists.cs.princeton.edu>
Sent: Thursday, June 17, 2010 2:11:35
Subject: Re: [parsec-users] Simics commands for simulating blackscholes


Hi,
Please correct if I am doing wrong. This the procedure I took:
1- run simics to boot the os. After that, os is in the prompt and waiting to capture the command (simics is in continue mode).

2- using ctrl+c, I go back to simics console and enter:
simics> magic-break-enable
simics> c
 
3- Now I am in the os. Then I enter:
# ./blackscholes 1 in_4K.txt out_4K.txt
PARSEC Benchmark Suite Version 2.1
[HOOKS] PARSEC Hooks Version 1.2
Num of Options: 4096
Num of Runs: 100
Size of data: 163840
 
4- It is backed to the simics prompt because the magic break is run just before entering ROI:
[cpu0] v:0x00000000ff3807bc p:0x0000e8507bc  magic (sethi 0x40000, %g0)
simics>
 
5- I enter 'c' again:
simics> c
and in the os, I see:
[HOOKS] Entering ROI
 
6- After about 2 second, just before leaving ROI, magic break is called again and I enter the simics prompt:
[cpu0] v:0x00000000ff3806e8 p:0x0000e8506e8  magic (sethi 0x40000, %g0)
simics>
 
7- I enter 'c' again:
simics> c
and in the os, I see:
[HOOKS] Leaving ROI
[HOOKS] Total time spent in ROI: 2.426s
[HOOKS] Terminating
# 
 
8- Now I have to use ctrl+c in the terminal to enter the simics console and then write the configuration:
^C[cpu0] v:0x000000000105f8fc p:0x00008c5f8fc  jmpl [%o1 + %g0], %o7
simics> write-configuration /home/mahmood/checkpoints/blackscholes-cold.check
simics> quit
 
Is that true?
 
// Naderan *Mahmood;




________________________________
 From: Muhammad abid Mughal <mabidm_pieas at yahoo.com>
To: PARSEC Users <parsec-users at lists.cs.princeton.edu>
Sent: Sun, June 13, 2010 5:42:44 AM
Subject: Re: [parsec-users] Simics commands for simulating blackscholes


See simics user guide.
As you know simics is a full-system functional simulator, but we can augment it to add timing models.
Simics internally uses STCs to enhance performance by caching info about data/inst fetch.
Since i have added my timing model , so i don't want Simics to cache that info.I want to see every access (Data/Ifetch) made to memory hierarchy.Thats why i disabled STCs.We do this when we are warming caches or doing detailed simulation.
Typically you fast forward simulation until certain point(ie where u take cold checkpoint).Until that point we are not interested in any performance of a program so we don't disable STCs. 

type  at simics prompt

simics>help instruction-fetch-mode

to know about this command


Regards
Muhammad abid





________________________________
 From: Mahmood Naderan <nt_mahmood at yahoo.com>
To: PARSEC Users <parsec-users at lists.cs.princeton.edu>
Sent: Saturday, June 12, 2010 17:51:44
Subject: Re: [parsec-users] Simics commands for simulating blackscholes


Thanks for your information. I am using Flexus and will try to map your ideas to that. Thing that I still want to know is: from where you know that  you have to disable "simulator translation caches" by those two commands? I mean maybe blackscholes need them... or for example you set "instruction-fetch-mode instruction-fetch-trace" in your workload, however maybe there is no need to do such thing in blackscholes simulation. 
 
I hope that I wrote my question meaningful.
Thanks,
 
// Naderan *Mahmood;




________________________________
 From: Muhammad abid Mughal <mabidm_pieas at yahoo.com>
To: PARSEC Users <parsec-users at lists.cs.princeton.edu>
Sent: Sat, June 12, 2010 1:17:41 PM
Subject: Re: [parsec-users] Simics commands for simulating blackscholes


hi,
     We perform detailed simulation for ROI.
1) what you have to do is that fast-forward simulation until the begining of ROI(i  assume u have compiled ur workload using MAGIC_BREAKPOINT and using GEMS simulator)
     a) start simics    ./simics
       then at simics prompt type
       simics>magic-break-enable
       simics>c
     b)now you can run PARSEC benchmark
     c)simics will stop execution when it executes magic inst.
     d)now write checkpoint using "write-configuration"

  this is known as "Cold checkpoint".

2)warming up caches
 #read cold checkpoint
 read-configuration  coldcheckpoint_filename
# enable IFETCH
instruction-fetch-mode instruction-fetch-trace
#Disable simulator translation caches  
istc-disable
dstc-disable

# always use 1 for better parallelism
@conf.sim.cpu_switch_time = 1
# sync CPUs after changing switch time
@run("c %d"%(old_switch_time)) 
# enable breakpoint
magic-break-enable
#load timing model
load-module ruby 
ruby0.init
#start simulation
c 1
ruby0.tracer-output-file "/mnt/sdc1/abid/eight-cores/simics-3.x/rmsworkloads/warm_tracer-output-file/ruby/blackscholes-simsmall.warmup"
c 10000000
write-configuration /mnt/sdc1/abid/eight-cores/simics-3.x/rmsworkloads/warm_tracer-output-file/blackscholes-simsmall.check
q

now this is known as "Warm checkpoint" 

c)measurement
  #read cold checkpoint
 read-configuration  warmcheckpoint_filename
# enable IFETCH
instruction-fetch-mode instruction-fetch-trace
#Disable simulator translation caches  
istc-disable
dstc-disable

# always use 1 for better parallelism
@conf.sim.cpu_switch_time = 1
# sync CPUs after changing switch time
@run("c %d"%(old_switch_time)) 
# enable breakpoint
magic-break-enable
#load timing model
load-module ruby 
ruby0.init
ruby0.load-caches filename_writtenby_ruby0.tracer-output-file_command_during_warmup
c
ruby0.dump-stats  filename
q


  

Regards,
Muhammad abid
   




________________________________
 From: Mahmood Naderan <nt_mahmood at yahoo.com>
To: PARSEC <parsec-users at lists.cs.princeton.edu>
Sent: Saturday, June 12, 2010 14:26:56
Subject: [parsec-users] Simics commands for simulating blackscholes


Hi,
I want to setup blackscholes as a workload (from the beginning of roi to the end of roi) but I have not enough information how to set simics parameters correctly. For example I don't know should I use "istc-disable" or not? Or as another example should I use "instruction-fetch-mode instruction-fetch-trace" or not.

Is there any sample?

 
// Naderan *Mahmood;

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.princeton.edu/pipermail/parsec-users/attachments/20100617/27336286/attachment.html>


More information about the parsec-users mailing list