Course objectives: This course provides graduate students in Computer Science and in other fields of science and engineering with broad understanding and experience of high-performance and parallel computing. It contains introductions to parallel computers and parallel computation. The course addresses architectures, languages, tools, environments, methods, techniques, and applications. Students are expected to gain hands-on experience and parallel programming skills on some parallel computers. The course is interdisciplinary and teaches students the concepts and skills that are necessary for a broad understanding the rapid evolving field of parallel and high-performance computing.
Catalog description: Introduction to parallel computers and parallel computation. The course addresses architectures, languages, tools, environments, methods, techniques, and applications. Note that we require that projects and homeworks to be individual effort, not group effort.
Prerequisite: Two 500 level computer science courses, or consent of the instructor. Some background on computer architectures and scientific computing. No previous experience with parallel computers is necessary. However, students will need programming skill in Fortran or C and will gain hands-on experience with parallel computers and learn parallel programming skills.
Introduction to Parallel Computing
by Vipin Kumar, Ananth Grama, Anshul Gupta, and George Karypis
Using MPI: Portable Parallel Programming with the Message-Passing Interface
by William Gropp, Ewing Lusk, and Anthony Skjellum
Laboratory work: Programming assignments using Message-Passing Interface (MPI) on the Power Challenge with 8 cpus.
Topical outline (tentative):
A student's grade will be determined by a weighted average of homework
assignments, midterm examination and final. A typical
Programming projects and homework assignments 40%
Midterm (October 31, Thursday) 30%
Letter Grade: A: 100 - 90, B: 89 - 76, C: 75 - 60, E: below 60.
Return to CS685-002 main page.