CMSC 714 Midterm (similar to prior 714 exams, but more questions) (1) This exam is closed book, closed notes, and closed neighbor. (2) You have 75 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) Partial credit will be given for most questions assuming I can figure out what you were trying to do. (4) 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. Define and explain the following terms: A. SIMD Processor B. Distributed Memory C. Reduction Operation D. Collective Communication 2. Several of the parallel computers we looked at this semester provided globally shared memory but lacked cache coherence. A. Name one of those systems. B. What are the implications of having such an architecture on the programmer and programming model (for example which of the models we looked at would be well suited for this type of machine)? 3. A. Describe two differences between performance monitoring using tracing vs. profiling. B. Name two performance monitoring systems we discussed this semester. 4. Some proponents of shared memory programming models claim the major advantage of shared memory over message passing is that you don't have to worry about where your data is located since all memory is shared. Explain why this assumption is naive if performance matters. 5. Describe two advantages and two disadvantages of a custom parallel computer architecture (e.g., IBM Blue Gene/L) vs. one based on commodity components (i.e. a standard compute cluster).