Computer Science 258

Title Parallel Processors
Units 3
Prerequisites 252.
Description In-depth study of the design, engineering, and evaluation of modern parallel computers. Fundamental design: naming, synchronization, latency, and bandwidth. Architectural evolution and technological driving forces. Parallel programming models, communication primitives, programming and compilation techniques, multiprogramming workloads and methodology for quantitative evaluation. Latency avoidance through replication in small-scale and large-scale shared memory designs; cache-coherency, protocols, directories, and memory consistency models. Message passing: protocols, storage management, and deadlock. Efficient network interface, protection, events, active messages, and coprocessors in large-scale designs. Latency tolerance through prefetching, multithreading, dynamic instruction scheduling, and software techniques. Network design: topology, packaging, k-ary n-cubes, performance under contention. Synchronization: global operations, mutual exclusion, and events. Alternative architectures: dataflow, SIMD, systoltic arrays.
Sections Instructor Teaching Effectiveness How worthwhile was this course?
Spring 2008 John Kubiatowicz 5.0 / 7 5.3 / 7
Spring 2002 John Kubiatowicz 6.2 / 7 5.8 / 7
Spring 1999 David Culler 6.0 / 7 6.3 / 7
Spring 1995 David Culler 6.0 / 7 5.8 / 7
Spring 1990 Abhiram Ranade 4.9 / 7 5.3 / 7
Fall 1988 Abhiram Ranade 3.3 / 7 4.0 / 7
Overall Rating Teaching Effectiveness How worthwhile was this course?
5.2 / 7 5.4 / 7
[Email HKN about this data] [Info about this page]