Policies
Notes
Project
Messages
|
Homework/Problem Sets
Running the Simulator
In this course, we will be complementing traditional "textbook"
problems with experiments using a detailed processor simulator. You will
need access to a Linux machine (we have tested on Red Hat Linux (32- and
64-bit versions); it should work on other distros but your mileage may
vary). You can use the standard CoC course labs (Intel Cluster/CCB103 and
Undergraduate Project Lab/CCB107). If you do not have an account that
works on these machines, use the onine form at
http://www.cc.gatech.edu/tso/forms/account_form.shtml
to apply for an account.
Once you have successfully logged on to a Linux machine, copy the simulator
archive from /net/hc299/class/6290/fall06/mase.tar.bz2 to your own
directory.* Then, "tar xvfj mase.tar.bz2", which should result in
a "mase" directory. Then, cd into the directory and do
"make sim-mase". After a bunch of compiler commands (which
includes a few warnings that you can ignore), a binary file named
"sim-mase" will be produced. Then, "make cs6290" which
simply sets up symbolic links named "configs" and
"traces" to the directories where the config-files and
application traces used in this course reside.
For a quick test of the simulator, type "./sim-mase traces/fib.eio.gz".
This should generate (1) a dump of the default simulator settings, (2) the
program output which lists the first 16 numbers from the Fibonacci
sequence, and then (3) a dump of the processor execution statistics.
Now you're up and running! The simulator simulates an N-way superscalar
processor with dynamic instruction scheduling, branch prediction, caches,
and more. This makes the simulator run relatively slowly.
Besides the fib toy-program, the traces directory contains execution
samples from four applications. To run one of these, type "sim-mase
-max:inst 10000000 traces/tracefilename". The
"-max:inst" option tells the simulator to stop after 10 million
instructions (this takes about a half minute on my 3.2GHz Pentium-4).
The benchmark anagram generates anagrams from an input string
and a dictionary, eon is a ray-tracer from the SPEC
CPU2000 suite, g721 is a audio decompressor from the
MediaBench suite,
and rsynth is a voice synthesizer from the
MiBench embedded benchmark
suite. When running anagram, you might want to include a
">/dev/null" to omit all of the output (the simulator's output
(as opposed to the simulated output) is dumped to stderr). These are
only short execution samples, and so the other benchmarks do not generate any
user-visible output.
*If your version of tar doesn't support the `j' flag for bzip2
compression, do "bunzip2 mase.tar.bz2" followed by "tar xvf mase.tar".
|