[parsec-users] Simics commands for simulating blackscholes

Mahmood Naderan nt_mahmood at yahoo.com
Thu Jun 17 05:11:35 EDT 2010


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/1ecdaa0b/attachment.htm>


More information about the parsec-users mailing list