CSPP 51085
Applied Parallel ProgrammingPrerequisites:
Catalog Description:
Long Description: Parallel computing allows multiple computers or processors to work together simultaneously on a common task. For certain types of applications, parallelization can increase execution time in proportion to the number of computers or processors used. This is a huge advantage for applications which have performance and/or memory bottlenecks, such as one typically encounters in physics, engineering, or other applied science applications.
This is an advanced, fast-paced applied programming course aimed at students with considerable prior development experience in either C, C++, or FORTRAN (at least 3 programming coures or equivalent). No prior knowledge of parallel computing is assumed. Students should, however, have both an interest and some previous experience in either numerical methods, applied mathematics, or perhaps any physics or engineering-type discipline. A brief overview of parallel computing will be presented at the outset, but the course will be less a review and focus more on algorithmic implementation and performance tuning.
The goal of the course is to give students experience in developing efficient, scalable parallel algorithms for both distributed and shared-memory architectures. Assignments will be designed with some flexibility to allow students to explore applying parallel techniques to applications in their own field of interest. After an introduction to MPI and OpenMP, some of the topics covered will include: parallel solutions of linear equations, sorting, interpolation, and integration of ODE's and PDE's.
Instructors: Andrew SiegelQuarter offered: AUT
Last Verified by Leo Irakliotis on 5 May, 2005.

