CPSC 330 - Spring 2011 Study Guide for Final Exam The final will be approximately 42.5% on Exam 1 material, 42.5% Exam 2 material, and 15% on parallel processing. Amdahl's Law, MIPS, and MFLOPS will be counted in the Exam 1 material. 1. Be able to define or match these terms coarse-grained parallelism fine-grained parallelism compute-dominant workload communication-dominant workload embarrassingly parallel Flynn notation (SISD, SIMD, MIMD) single-instruction-multiple-data (SIMD) - muliple processor units operating in lockstep (historical) - subword parallelism in a partitioned ALU (such as MMX/SSE) shared memory distributed memory non-uniform memory access (NUMA) cache-coherent non-uniform memory access (CC-NUMA) massively parallel processing (MPP) multicore symmetric multiprocessor (SMP) vector processor GPU (graphics processing unit) cluster OpenMP MPI (message passing interface) 2. Be able to: A. Identify and explain several different ways in which a computer system exploits parallelism. For example, this includes but is not limited to: - parallel-by-bit in a parallel adder versus a serial adder - subword parallelism in a partitioned adder - instruction processing overlap in pipelines, superscalars, VLIWs - wide buses versus narrower buses with shared address/data lines - burst transfers to/from interleaved memory modules - nonblocking caches - multicore processors - GPUs - clusters B. Identify and compare relative amounts of computation and communication in code segments. C. Identify a multicore, cluster, or other computer systems as UMA, NUMA, CC-NUMA or NORMA. D. Identify a multicore, cluster, or other computer systems as SISD, SIMD, MISD, or MIMD. E. Explain how a cluster differs from an SMP in terms of ld/st memory accesses and processor interconnections. F. Identify OpenMP, MPI, or other programming style as being based on a shared memory model (UMA/NUMA) or distributed memory model (NORMA).