15-740 Fall '97
Notes on Assignments
In the following, the term HOME740 refers to the home directory for the course, namely
/afs/cs.cmu.edu/academic/class/15740-f97/public.
The following information is in reverse order of assignment, i.e., the most recent assignment appears firsrt.
Assignment 6
Assignment 6 will be handed out in three parts. All parts are due on the last day of class: Friday, December 5. They are as follows:
- Part I: Cilk programming
Available in Postscript.
- Note the following typographic error: Questions 4.2(e) and 4.2(f) refer to "part (a)". These should refer to "part (d)".
- Instructions on installing CILK on your machine are available in
Postscript.
- If your program crashes with the error message stating that malloc failing to allocate memory (this happened to Bruce on cuff.link for 3 or more processors), try running the test program as
testall -heap 512 -nproc 4
- Part II: Directory-based cache coherence.
Available in Postscript.
- Note that the fragment of the protocol described here extends the
one presented in class (Nov. 24) by allowing a processor holding a
shared block to get exclusive access.
- Part III: Protocol verification with SMV
Available in Postscript.
-
The files for this part of the assignment are in the
cache subdirectory.
- Problem 1, behavior 3 should read as follows:
"A cache gives up ownership of a block due to a write miss by another processor."
[Note: The original notification of this correction stated it was for behavior 2. Behavior 2 should remain as in the original document].
Assignment 5
Assignment 5 will be handed out in two parts. Both parts are due on Monday, November 17. The first part is available in
Postscript.
The second part
is available as a separate document in
Postscript.
Assignment 4
Assignment 4 will be handed out in two parts.
Both parts are due on Monday, November 3. The first part, on memory
system performance is available in
Postscript.
The second part
is available as a separate document in
Postscript.
For measuring memory system performance, it is useful to express performance in units of clock cycles per word transferred.
For measuring disk performance, it is important to measure ``wall''
time (i.e., the time you'd measure by looking at a clock on the wall),
rather than user CPU time. Otherwise, you'll get unrealistically
short timings, since CPU time doesn't count the time your process
cannot proceed waiting for a disk access. A special version of the
ftime package has been created for this. The files ftime.h and ftime.c
in the
assignment directory define a function fwtime to
provide this timing information.
Assignment 3
Assignment 3 was handed out on Monday, October 6. It is due on Friday, October 17.
The assignment document is available in Postscript.
You will want to copy the file csr.tar in the directory
HOME740/asst/asst3
into your local directory and ``untar'' it using the command
tar xvf files.tar.
You will need to select a platform to tune your code for. For each of the following possibilities,
an article is available giving an overview of the internal architecture. Each of these is
available in both Postscript (.ps) and Adobe Acrobat (.pdf) form.
Out of deference to their copyrights, there is no direct link to them from any WWW page. Instead
you should retrieve them from the directory HOME740/platform.
- p6 Intel P6, the basis of the PentiumPro and the Pentium II.
- ppc604 PowerPC 604.
- 21164 Digital Alpha 21164
- r10000 MIPS R10000
- r5000 MIPS R5000
- ultrasparc SUN UltraSparc
Here is more Information on Publicly-Available Machines
Important Change. Announced on October 10. In the original assignment, you were asked to report your code performance for just one set of experimental parameters. Instead, report it for the following:
- 5 20X20 matrices with density 0.25 (as originally requested)
- 5 20X20 matrices with density 0.5
- 1 20X20 matrices with density 1.0
Assignment 2
Assignment 2 was handed out Wed., September 24 and is due on Monday,
Oct. 6. This is one of the more difficult assignments of the course,
so get started early!
The
assignment document is available in:
Working executable version of the simulator are available as follows:
- For Unix machines, you can try out a working version of the
simulator solve_tk in the directory
HOME740public/sim/.
- Installations have been made for many of the standard machine types on
campus. You can tell if your machine is supported by attempting to
execute the command ./solve_tk. If you get a message about a file not
being found, then that indicates the code has not been compiled for
your machine yet.
- Try using one of the Andrew servers, e.g., sun4.andrew or
hp.andrew.
- If you use one of the servers, you'll need to enable that machine (the "client") to
open an X window on your machine (the "server"). To do this,
determine the name of the server (e.g., unix26.andrew.cmu.edu), and
give the command to the console of your own machine:
xhost unix26.andrew.cmu.edu
You can test for X window problems by attempting to execute the
command xterm on the remote machine.
- If you really want the code to run on your machine, notify Randy.Bryant@cs.cmu.edu, giving the result of executing the command sys on your machine.
Included in this directory are subdirectories containing tests cases:
- demos containing the demonstration examples from the Feb. 20 class.
- exc containing the demonstration examples for the Feb. 25 class on exception handing.
- tests containing the demonstration examples for the Feb. 25 class on exception handing.
-
For Macintosh's (PowerPC only), there is an executable version
available as a Binhex'ed
self-extracting archive. Included with this distribution are the
demoX.O and excX.O code examples.
You will want to copy the file files.tar in the directory
HOME740/asst/asst2
into your local directory and ``untar'' it using the command
tar xvf files.tar.
Getting the GUI version of the simulator running requires compiling
and linking the Tcl/Tk code libraries. Try find a machine with
these libraries installed. In one machine I tried, the libraries were
installed in /usr/local/lib, but the files tk.h
and tcl.h were nowhere to be found. So, I put copies of
them in the class include directory. Here would be the
proper incantation:
make mips_tk INC=-I/afs/cs.cmu.edu/academic/class/15740-f97/public/include
Note, however, that this works only if the installed libraries are the
same version as the include files.
Assignment 1
Assignment 1 was issued on Sept. 15 and
due on Wed., Sept. 24. A copy of the assignment is available in
postscript format.
The files you need for this assignment can be found in the directory
/afs/cs.cmu.edu/academic/class/15740-F97/public/asst/asst1/.
The following document, retrieved from the
MIPS WWW site.
describes the MIPS instruction set. It
describes 4 generations of the instruction set definition, labeled I
through IV. For this course, we will stick with the original (MIPS I)
version:
Note that, contrary to the directions in the course syllabus, we
require only one written solution for each project group. Clearly
indicate the names of all group members on this document.