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.
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.
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.
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.
Change to the membench
directory and type
make
to create the membench
executable.
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.
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
.
When the program is done running, type make
membench.pdf
in order to make nice-looking plots of the raw
output file (membench.out
).
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.
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.