Homework and Solutions
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".


Gabriel H. Loh, © 2007
Last generated 3 Jan '07