HomeApplications of Parallel Computers

Applications of Parallel Computers


CS 267/E 233
Instructor:     DEMMEL, J W
Location:     MW 9-1030A, 290 HEARST MIN
demmel@cs.berkeley.edu
 
Course Description: This course covers parallel programming techniques, including parallel programming languages, libraries, and patterns; techniques for data partitioning, synchronization and load balancing; discussion of currently available parallel architectures (including multicore, GPUs, distributed memory clusters, supercomputers, and computers distributed over the internet), and fundamental algorithms for common operations including dense and sparse linear algebra, sorting, FFT, particle methods, graph algorithms such as partitioning, etc. These are important operations in computational science and engineering as well as other application areas. A variety of large-scale parallel applications, including how they are parallelized and remaining challenges, will be presented by outside experts.
 
In addition to introductory homework assignments to teach basic parallel programming skills and how to program for performance, there will be a final team project which is a detailed study and algorithm/program development of a medium sized application.
 
The course is intended both for students from diverse disciplines who want to learn parallel programming to use for their own research, and for students interested in analyzing and building parallel programming tools.