Computer Sciences Dept.

CS/ECE 757 Advanced Computer Architecture II Spring 2008 Section 1
Instructor Mark D. Hill and T. A. Jayaram Bobba
URL: http://www.cs.wisc.edu/~markhill/cs757/Spring2008/

Homework 3 // Due at Lecture Mon Mar 10

You should do this assignment alone. No late assignments.


Simulation is one of the most important research and development methods in computer architecture. In this assignment, you will gain hands-on experience using an execution-driven full-system multiprocessor simulator based on Wisconsin GEMS built on top of Virtutech Simics. The goal of this assignment is to give you a chance to feel how simulation works, how to use a typical simulator and to get a first-hand feeling about simulation capabilities.

Simulator Setup

Make sure your simulator is up and running by Mar 6.

Workload Setup


Problem 1 (15 points)

Simulate the 'eg_pthread' workload provided with this assignment. Use the 16-processor 'silver' machine checkpoints. Build Ruby with the CMP directory protocol 'MESI_CMP_filter_directory' and configure it dynamically using the parameters provided in 'eg_pthread.simics'. Plot the speedup of the workload with varying number of threads t = [1, 2, 4, 8, 16] relative to the t=1 case.

Problem 2 (15 points)

Modify your pthread Ocean program from homework 2 in order to simulate it with Ruby/Simics. Specifically, you need to instrument your Ocean program to break simulation before and after the parallel phase of simulation. You will only simulate and time the parallel phase of Ocean using Ruby. Since simulation takes a long time, you will simulate a smaller sized ocean for this problem. Run your program on a 258x258 ocean for 50 iterations. Again, plot the speedup of the workload with varying number of threads t = [1, 2, 4, 8, 16] normalized to the t=1 case.


What to handin

  • Plots for problem 1 and problem 2.
  • A short note on experience with setting up and running the workloads on the simulator.
  • The 20 lines preceeding "Ruby_cycles:" within each Ruby stats file.

Tips and Tricks

  • Start EARLY
  • If you have executed the steps in the two tutorials provided, you should have done most of Problem 1.
  • See $GEMS/ruby/config/rubyconfig.defaults for default parameters that configure the memory system.
  • Bug the TA early, if necessary. Do not wait till the morning the assignment is due.
  • Simulation can be done on any one of the following machines: clover-02.cs.wisc.edu, s1-01.cs.wisc.edu, s1-02.cs.wisc.edu. Workloads should be compiled on chianti.cs.wisc.edu
  • Use ONLY the machines indicated above. The other machines in the 'clover' and 's-' clusters are research machines allocated for batch scheduled jobs.

Important: Include your name on EVERY page.

 
Computer Sciences | UW Home