Note: I am using LINUX with following specifications, g++ (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1.
Installing SESC first time, then follow this post SESC Simulator: First Time Installation for instructions.
Installing SESC first time, then follow this post SESC Simulator: First Time Installation for instructions.
Building SESC:
Make new directory ‘build’ in ‘sesc’ folder;
Simulator can be configured as many set of operations, so recommendation is to create different ‘build’ directory for each configuration.
> mkdir build
> cd build
Configuring SESC For SMP:
> ../sesc/configure --enable-smp --enable-power
Executable SESC with SMP:
> make
’sesc.smp’ is the executable file for further testing.
Configuration File:
In case, you want to test simulator with SMP configurations without changing any parameter, there is one file ‘smp.conf’ present in ‘/sesc/confs/’ folder.
Copy smp.conf and shared.conf file in the build folder;
> cp ../sesc/confs/smp.conf /home/user/build/
> cp ../sesc/confs/shared.conf /home/user/build/
Rename ‘smp.conf’ with ‘sesc.conf’.
Compilation SESC with Power Model:
‘cactify’ and ‘wattchify’, two executables are required for power and energy calculation.
- 'cactify'; for clock frequency, capacitance and power calculation
- 'wattchify'; for energy calculation
To generate executable, following commands are required;
> make cactify
> make wattchify
To obtain, power model based on the configuration file;
> ./wattchify sesc.conf tmp.conf
> ./cactify tmp.conf power.conf
‘power.conf’ is the simulator output file.
Running Benchmark:
There are few benchmark applications are available in ‘/sesc/tests/’ folder to test previously build simulator. While running this test simulation, crafty benchmark is used.
> ./sesc.smp -h0x800000 -cpower.conf ../sesc/tests/crafty < ../sesc/tests/tt.in
Output:
The generated simulator output file will be with the name ‘sesc_crafty.xxxxxx’. The extension ‘xxxxxx’ is random and will be different every time benchmark is tested.
static[0x1008db40-0x101b3dd4] heap[0x101b4000-0x109b4000] stack[0x109b4000-0x111ac000] -> [0xb6000000-0xb711e4c0]
Crafty v14.3
sesc_simulation_mark 0 (simulated) @32112426
White(1): sesc_simulation_mark 1 (simulated) @32183488
White(1): pondering disabled.
sesc_simulation_mark 2 (simulated) @32269704
White(1): noise level set to 0.
sesc_simulation_mark 3 (simulated) @32297868
White(1): search time set to 99999.00.
sesc_simulation_mark 4 (simulated) @32423267
White(1): verbosity set to 5.
sesc_simulation_mark 5 (simulated) @32447392
White(1): sesc_simulation_mark 6 (simulated) @32908293
White(1): search depth set to 2.
sesc_simulation_mark 7 (simulated) @32920437
White(1):
clearing hash tables
depth time score variation (1)
1 ###.## -0.67 axb5 c6xb5
1 ###.## -0.08 a4a5
sesc_simulation_mark 8 (simulated) @37373970
1-> ###.## -0.08 a4a5
2 ###.## -- a4a5
2 ###.## -0.65 a4a5 f6f5
2 ###.## -0.58 axb5 c6xb5 Ne4c5
2 ###.## -0.46 Rf1c1 f6f5
2 ###.## -0.43 Ra1c1 f6f5
sesc_simulation_mark 9 (simulated) @41424941
2-> ###.## -0.43 Ra1c1 f6f5
time:### cpu:### mat:-1 n:833 nps: ####
ext-> checks:18 recaps:4 pawns:0 1rep:6
predicted:0 nodes:833 evals:372
endgame tablebase-> probes done: 0 successful: 0
hashing-> trans/ref:17% pawn:83% used:w0% b0%
White(1): Ra1c1
time used: ###.##
sesc_simulation_mark 10 (simulated) @42650164
Black(1): execution complete.
Segmentation fault
Generating Report:
There is ‘report.pl’ script file located in ‘/sesc/scripts/’ folder, is to view the outcome of the benchmark.
Keep in mind that we are still in build directory, that we created in the start. So, by executing the following command;
> ../sesc/scripts/report.pl -last
Customization of Configuration File:
Th configuration file ('sesc.conf') contain design parameters; which can be changed to test simulation performance, for example;
- Number of Processors [2-32]
- Processor Issue Width [1-8]
- L1 Instr. Cache Size [2048-16384]
- L1 Data Cache Size [2048-16384]
- L2 Private Cache Size [32768-262144]
- L1 Instr. Cache Associativity [1-8]
- L1 Data Cache Associativity [1-8]
- L2 Data Cache Associativity [1-8]
- I/D/L2 Cache Block Size [16-32]
> ./wattchify sesc.conf tmp.conf
> ./cactify tmp.conf power.conf
SPLASH2 Benchmarks:
SPLASH2 Benchmark consists of different applications that can be run on SESC Simulator in order to evaluate cycles, power, and energy performance according to the parameters set in configuration file (sesc.conf).
Download Splash2 Benchmark Kernels Applications.
Other Links:
Have a look at this page too
ReplyDeleteParallel Processing using Linux: http://cobweb.ecn.purdue.edu/~pplinux/
Hi.
ReplyDeleteWhen I create the directory "build" and run "make", I get the following error:
.../src/misc/mkdep.cpp:767: return type for `main' changed to `int'
make: ***[/root/sesc/sesc/build/obj/Linux_obj/mkdep] Error 1
plz help me.
THANKS
Hello Mohsen!!
ReplyDeleteSorry for being late, I am busy in finalizing my thesis work.
Please have a look http://manio.org/sesc-tutorial-1-instaall-whole-sesc-step-by-step-577.html for detailed instructions. Apart from this, before make you have to configure sesc with /esesc/configure --help option.
If you need help, I will be happy to help you out.
:)
Hi. Thank you for useful help. I have a question on running the benchmarks on SESC. I can not find "-p" neither in any .conf file nor another file. How can I find all the parameters?
ReplyDeleteBesides, I have a big problem with spec2000 benchmarks. Some of them need an input while some does not.
Meantime, for some benchmarks when I enter "-p4" at the end of the command, there are no changes comparing with "-p1".
I would be thankful if you helped me.
Mohsen!!
ReplyDelete-p switch relates with processor per node, which you specified in configuration file for computation.
So, if -p2 then you have to specify procsPerNode = 2 in your configuration file, if -p4 then procsPerNode = 4, and vice versa.
Whenever you changed this parameter then you have re-run the execution.
I hope you were asking about this and it solves the problem. There is a possibility to have not too many changes in other parameters as well.
wow, this information has been so useful to me, thxs so much for your generous contribution! see u ;)
ReplyDeleteOyee mi amorrr
ReplyDeleteHi. sth is weird. When I run a certain command on two differenct computers, I get two different "ClockTicks". I think it should not be like this. "ClockTick" does not rely on the PC we run simulator on!!!!!
ReplyDeletePlease help me...
Hi,
ReplyDeleteI follow this instructions and i build sesc with power & smp.
No errors during the make, everything is fine.
But when I run make testsim or any application I got segmentation fault.
.................................................................................
.
.
.
sesc_simulation_mark 10 (simulated) @42650508
Black(1): execution complete.
/bin/sh: line 1: 7524 Segmentation fault ./sesc.smp -h0x800000 -cpower.conf /home/stelios/esesc/build_power_smp/../tests/crafty < /home/stelios/esesc/build_power_smp/../tests/tt.in
make: *** [testsim] Error 139
.................................................................................
I am using ubuntu 9.10
Please help me...
Hi,
ReplyDeleteI am getting an error as shown below when i try to execute 'make cactify'... need help urgently..!
make[2]: `sesc.smp' is up to date.
make: *** No rule to make target `/root/sesc/build_smp/obj/Linux_obj/cacmain.o', needed by `cactify'. Stop.
hi,
ReplyDeleteHow can one execute a program in SPEC2000 benchmark instead of crafty in SESC ..?
Also can anyone give one simple program which can be executed in SESC... I actually want to know the performance of the program.I am working on thread level speculation and need help.
hi.
ReplyDeleteHow can one run a sample program on SESC.. Also can anyone give a sample program to run on it.
I am using ubuntu 10.04..... need help... I ve already installed sesc.I am working on Thread level speculation.
hey.. thanks for this.. i want to know something more.. i want to configure for cmp with power enabled.. so i did:
ReplyDelete../sesc/configure --enable-cmp --enable-power
now.. if i have a .config file for which i want to run the simulator.. what do i do for that.. for example, in the original sesc folder, there is a folder "config", that has few example config files.. lets consider "cmp.config".... if i want to run simulations for that configuration file with cmp and power enabled, what should i do?
Hello!!
ReplyDeleteIn case of on Chip Multiprocessor configuration, the procedure would be the same. You need to have configuration file with specific parameters you want to test. The rest of the procedure should be the same. The important thing is you are aware of parameters that you want to test under power model (Energy and Power).
I didn't test myself but it should be the same, apart from running simulator for SMP or CMP. If you still have problems, then I can test myself as well.
Have good day.
My reply is too late, but I sent you some sample programs in email :)
ReplyDeleteHi,
ReplyDeleteI too am facing the same problem. Were you able to find a solution?
Hello!
ReplyDeleteI am sorry, now I am using Fedora and I have some issues with gcc-3.4. Apart from this, I am busy in other things so couldn't spent enough time for this. But for sure I will do it later for my learning, and on getting update I will post it.
For now :(
Hi,
ReplyDeleteCan you also send me some sample programs about the thread level applications ? Thanks.
Hello!!
ReplyDeleteI can send some applications but you have to configure SMP that how many threads you wan to run on the application.
:)
Hello!!
ReplyDeleteToday I installed ubuntu 11.04 again to verify the issues.
I made some corrections in the article as well. After reading one blog that gcc fixed limits.h bug in the current version so I checked that it works without any errors.
For >>make testsim, below are my results
hashim@Hashim-Ubuntu:~/sesc/build$ make testsim
make[1]: `sesc.mem' is up to date.
Generating sesc.conf from: /home/hashim/sesc/build/../confs/mem.conf
cp /home/hashim/sesc/build/../confs/mem.conf sesc.conf
cp /home/hashim/sesc/build/../confs/shared.conf .
./sesc.mem -h0x800000 -csesc.conf /home/hashim/sesc/build/../tests/crafty [0x41000000-0x4211e4c0]
Crafty v14.3
sesc_simulation_mark 0 (simulated) @30176723
White(1): sesc_simulation_mark 1 (simulated) @30226228
White(1): pondering disabled.
sesc_simulation_mark 2 (simulated) @30297451
White(1): noise level set to 0.
sesc_simulation_mark 3 (simulated) @30321004
White(1): search time set to 99999.00.
sesc_simulation_mark 4 (simulated) @30423213
White(1): verbosity set to 5.
sesc_simulation_mark 5 (simulated) @30448564
White(1): sesc_simulation_mark 6 (simulated) @30749611
White(1): search depth set to 2.
sesc_simulation_mark 7 (simulated) @30765916
White(1):
clearing hash tables
depth time score variation (1)
1 ###.## -0.67 axb5 c6xb5
1 ###.## -0.08 a4a5
sesc_simulation_mark 8 (simulated) @33088401
1-> ###.## -0.08 a4a5
2 ###.## -- a4a5
2 ###.## -0.65 a4a5 f6f5
2 ###.## -0.58 axb5 c6xb5 Ne4c5
2 ###.## -0.46 Rf1c1 f6f5
2 ###.## -0.43 Ra1c1 f6f5
sesc_simulation_mark 9 (simulated) @37835568
2-> ###.## -0.43 Ra1c1 f6f5
time:### cpu:### mat:-1 n:833 nps: ####
ext-> checks:18 recaps:4 pawns:0 1rep:6
predicted:0 nodes:833 evals:372
endgame tablebase-> probes done: 0 successful: 0
hashing-> trans/ref:17% pawn:83% used:w0% b0%
White(1): Ra1c1
time used: ###.##
sesc_simulation_mark 10 (simulated) @38876275
Black(1): execution complete.
This comment has been removed by the author.
DeleteHello Hashim,
DeleteI tried to install SESC on ubuntu 12.04.
And I occurred the same problem as you met before.
I executed the configure with --enable-power and --enable-smp and make correctly.
But when I executed "make testsim", I met Segmentation fault error. how do you solve this problem? Whether Just change gcc version or not?
Please give me a help. Thanks a lot.
Hello!!
ReplyDeleteToday I installed ubuntu 11.04 again to verify the issues.
I made some corrections in the article as well. After reading one blog that gcc fixed limits.h bug in the current version so I checked that it works without any errors.
>>../sesc/configure –enable-cmp –enable-power (I configured simulator with CMP and works fine atleast without any error)
I am not sure you already solved the issues or not? If yes, please share with me.
Thanks to you.
Hello!
ReplyDeletewhen I configure sesc with smp and power, It gave no error. but when I run any application I got segmentation fault. could you help me to solve this segmentation fault?
thanks alot
Hello!
ReplyDeleteWould you please send me your application and configuration files in mail. I would like to check myself because segmentation fault normally occur while accessing out of bound memory.
Although, I don't have any segmentation fault on my side.
I am not sure if you already solved the issue or not? But still I am willing to help.
Cheers
hi
ReplyDeletei have installed sesc using steps from manio.org.
I am working on cache coherency .I'm new to this simulator.can you help me to run a sample program.I need to know how to run a bench mark program and also how we can change the cache parameters
thanks
Hi,
ReplyDeleteThanks for the useful information you've posted here. I also have the segmentation fault problem and would greatly appreciate it if you can send me the .conf file that you are using so that I can compare it with mine.
I'm also trying to collect a thermal trace from a multicore system with SESC. I'd be great if you can tell me if you have been able to achieve this?
Thanks,
Bardia
Hello!
ReplyDeleteTruly speaking, I just got one time the segmentation fault because I was running LINUX as virtual OS. But later I never get segmentation fault. I am using Ubuntu 10.10 and SESC binary files downloaded from the above defined webpage. Secondly, in order to verify initial installation of SESC, I used the already present configuration files.
I'll let you know in some days. Today i run thermal configurations first time and having few errors. I'll fix and let you know.
Have patience :)
Hello
ReplyDeleteI am a new user with SESC, I am trying to use
a CMP configuration where L1 and L2 cache is private,
L2 caches are kept consistent by MESI protocol. and I want
to add new state to that protocol. I read the SESC manual in
doc folder but I don't know how can I start with SESC,
Could you help me please. I need to work with SESC for my
Thesis,In SESC for CMP configuration, L2 cache is shared,
Do you know how can I change the cmp.conf code to create L2
cache that is private and what related code must modify by this change?
Can you help me please.If you have any manual or help documet
could you send to me please?
thank you for your help
hi
ReplyDeletethanks for useful information, Actually I made power.conf and I run benchmarks with this cinfig file with no error. But there is no power in output file and I also used report.pl and it diesn't show any power there too. :( what should I do now?
thanks for your help
Hi Hashim...Is there any way by which I can check how much power a particular instruction is taking while execution?? Please help me...
ReplyDeleteHi! pls guide me how to run an algorithm after Black(1): execution complete.is successful. which files should be given as input to sesc along with the algo?
ReplyDeleteHi Pallavi, seems like no one is active in Sesc community. Have you created your conf files? Do you want to run a benchmark or run a code written by you?
DeleteP.S-> I am also new to Sesc and have just started....may be we can help each other in our thesis