CSE 597 – Spring 2018 – Applications of Parallel Computers – 3 credits
M-W 10:10 am – 12:05 pm – W205 Westgate Building
PSU CSE Sponsor: Prof. Daniel Kifer
Staff Instructors: Dr. Chuck Pavloski (PSU ICS), Dr. Adam Lavely (PSU ICS)
This is an online / laboratory course hosted from UC Berkeley (as CS267) but offered Nationally via remote sites, including Penn State University Park Campus.
This course teaches both graduate and advanced undergraduate students from diverse departments how use parallel computers both efficiently and productively, i.e. how to write programs that run fast while minimizing programming effort. The latter is increasingly important since essentially all computers are (becoming) parallel, from supercomputers to laptops. So beyond teaching the basics about parallel computer architectures and programming languages, we emphasize commonly used patterns that appear in essentially all programs that need to run fast. These patterns include both common computations (eg linear algebra, graph algorithms, structured grids,..) and ways to easily compose these into larger programs. We show how to recognize these patterns in a variety of practical problems, efficient (sometimes optimal) algorithms for implementing them, how to find existing efficient implementations of these patterns when available, and how to compose these patterns into larger applications. We do this in the context of the most important parallel programming models today: shared memory (eg PThreads and OpenMP on your multicore laptop), distributed memory (eg MPI and UPC on a supercomputer), GPUs (eg CUDA and OpenCL, which could be both in your laptop and supercomputer), and cloud computing (eg MapReduce and Hadoop). We also present a variety of useful tools for debugging correctness and performance of parallel programs. Finally, we have a variety of guest lectures by a variety of experts, including parallel climate modeling, astrophysics, and other topics.
This course also satisfies part of the course requirements for the Computational Science Graduate Minor (http://www.csci.psu.edu/minor.html).
Students completing the course will also receive a certificate of completion from XSEDE.
PSU ICS staff will be providing local technical help the students and will be proctoring the course.
This course 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.
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. 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 CSE 597 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.
Students in this class will also have access to some of the biggest HPC machines in the world through XSEDE (xsede.org) in order to work problems and projects for this class.
Materials from the 2017 spring offering of the course can be found here: https://sites.google.com/a/lbl.gov/cs267-spring-2017/
Help us build the future. Contact ICS at Penn State.
- email: email@example.com
- phone: ICS-ACI Support (i-ASK Center): 814-865-4275 | General Inquiries: 814-867-1467