CMSC 714 Midterm (Fall 2006)


(1)  This exam is closed book, closed notes, and closed neighbor.


(2)     You have 70 minutes to complete this exam.  If you finish early, you may turn in your exam at the front of the room and leave.  However if you finish during the last ten minutes of the exam please remain seated until the end of the exam so you don't disturb others.


(3)     Write all answers in the supplied exam booklet. Start each new problem (but not sub-problem) on a new page.


(4)     Partial credit will be given for most questions assuming I can figure out what you were doing.


(5)     Please write neatly. Print your answers if your handwriting is hard to read. If you write something, and wish to cross it out, simply put an X through it.

1. (25 points) Define and explain the following terms:

A. Super Linear Speedup

B. Weak Scaling

C. Split-phase Barrier

D. Happens Before Relationship

2. (15 points)  Explain how and why space filling curves can be used to improve locality at multiple levels of the memory hierarchy.

3. (20 points)  Hardware support can greatly help the performance of one-sided communication in MPI-2.

A. Explain how hardware can assist with one-sided communications.  Give examples of systems discussed in class that provide this assistance.

B. Explain how software could implement this feature without hardware assist.

4.(20 points) Runtime adaptation of computation is often useful to improve program performance.

A. Give two examples of things can be tuned at runtime and what is required from the application to allow these changes to be made.

B. Explain the tradeoffs between having humans in the runtime tuning loop and having this process fully automated.

5.(20 points) Blue Gene

A. Blue Gene has 5 different networks.  Describe three of them and explain why they are there and what topology they use.

B. Blue Gene runs a special purpose micro-kernel on the nodes.  Explain the advantages and disadvantages of this approach compared to running a conventional Unix style kernel on the compute nodes.