Due: Friday, Sep 16 by 11:59 pm.


The purpose of this homework is to make sure that you can function on the class cluster. You may ask for guidance from me, from others in the class, or from your fairy godmother, but please make sure that you understand how to do each of the tasks below for yourself. As evidence that you've actually tried this out, you should submit the files membench.out and membench.pdf (generated as described below) through CMS.

  1. Log into crocus. You may want to refer to the cluster info on the course web page. If you decide not to change your password, please at least copy it to a safe location; the file you received by Dropbox will become inaccessible after 14 days.

  2. Get membench.tgz into your crocus directory. You can do this either by downloading it to your machine and uploading it using sftp, or by typing wget http://www.cs.cornell.edu/~bindel/class/cs5220-f11/code/membench.tgz at the shell on crocus to download the file there directly.

  3. Unpack the membench program with the command tar -xzf membench.tgz. This will create a directory called membench that contains the program source, a Makefile, and a plotting script.

  4. Change to the membench directory and type make to create the membench executable.

  5. To run the program, type make run_sge. This will automagically create a script that runs membench on the cluster compute nodes. You should not run membench directly on the front-end node. Note that you should similarly use make run (or make run-basic, etc) to run the matrix multiply timers on the cluster compute nodes when you start the first project.

  6. The make run command will return almost immediately, but it will actually take a few moments to run membench on the compute nodes.
    Drum your fingers, make a sandwich, or go for a walk. You can see whether your job is waiting, running, or complete by typing qstat at the shell on crocus.

  7. When the program is done running, type make membench.pdf in order to make nice-looking plots of the raw output file (membench.out).

  8. Download membench.pdf and membench.out to your local machine. You might be interested in looking at membench.pdf. The cache line length is 64 bytes; if you look at the behavior at stride 64, can you see the four basic memory access times for a hit in L1, a hit in L2, a hit in L3, and an access to main memory? If you have a few free moments, you might amuse yourself by trying to identify how the features of the memory hierarchy (which are described on the cluster info page) show up in the plots.

  9. To complete the assignment, submit your membench.out (as results.txt, since CMS won't let me require two files that differ only in their extension) and membench.pdf on CMS.