Mon/Wed 10:30am-12pm, 306 Soda Hall
CS267 is designed to teach students how to program parallel computers to efficiently solve challenging problems in science and engineering, where high performance computers or clusters are required either to perform complex simulations or to analyze enormous datasets. It is intended to be useful for students from many departments and with different backgrounds, although we will assume reasonable programming skills in a conventional (non-parallel) language, as well as enough mathematical skills to understand the problems and algorithmic solutions presented. CS267 satisfies part of the course requirements for the Designated Emphasis ("graduate minor") in Computational Science and Engineering.
But the course also addresses the broader issue that since the mid 2000's: not only are the fastest computers parallel, but nearly all computers are parallel, because the physics of semiconductor manufacturing will no longer lets conventional sequential processors get faster year after year, as they had historically. So all programs that need to run faster will have to become parallel programs. The types of processors is also changing towards smaller simpler processors and more complex memory architectures in an effort to continue boosting performance. For background on these trends, see the Berkeley View report. These changes are not limited to science and engineering but affect the entire computing industry, which has depended on selling new computers by running their users' programs faster without the users having to reprogram them. Today computers from mobile phones and embedded devices to supercomputer and cloud data centers are parallel, and programmers faced with performance goals for software need to understand how to take advantage of various types of parallelism.
Students in CS267 will get the skills to use some of the best existing parallel programming tools, will learn how to analyze and tune for performance, and will get an overview of parallel architectures, algorithms, and applications as well a number of open research questions.