Introduction to Parallel Computation
CS194-2: Fall 2007
Instructor:
Over the past two years, every major microprocessor manufacturer has introduced processor chips with multiple “cores,” with dual and quad core processors for desktop and laptops, and over a hundred cores available in some GPUs. The expectation is that the number of cores per chip will grow exponentially over the next several years while processor speed will be relatively flat. This makes parallel programming a concern for the entire computing industry. This course will provide an introduction to parallel programming with a focus on the techniques that are most appropriate for multicore architectures and the use of parallelism to improve program performance. The topics of the course include performance analysis and tuning, data and task parallelism, synchronization techniques, shared data structures, and load balancing. The course will be a hands-on project course, with 4-5 projects during the semester using new state-of-the-art multicore hardware.
Units: 4
Prerequisite: CS162 or equivalent