Parallel and High Performance Computing
3 credits
NEEP 602, Section 4
(Meets with CS 838, Section 2)
Fall Semester 2000
TR 9:30-10:45
Location: Mat Sci 235
Instructor:
Timothy J. Tautges
Adjunct Professor, Engineering Physics
Office: 425 ERB
Phone: 608-263-8485
Email: tjtautg@sandia.gov
Office Hours:
Thursdays 11:00-12:00, in my office (425 ERB)
Description:
Over the last ten years, individual processors have become more complex, due to hierarchical and parallel design elements as well as increasing chip speeds. Massively parallel computers use many of the same principles, as well as parallelism, to achieve Teraflops performance. Such performance is only possible if applications are developed which can exploit these advanced design elements. This course will teach techniques for cache performance analysis and tuning, partitioning applications into parallel tasks, load balancing, parallel numerical libraries, and parallel programming with MPI. These techniques will be reinforced with programming assignments on high performance serial and parallel architectures.
Course Homepage:
http://courses.engr.wisc.edu/ecow/get/neep/602/tautges/
Texts:
Dowd & Severence, "High Performance Computing", 2nd edition, O'Reilley, 1998
Notes & papers (compiled by instructor)
Grading:
6 homework/programming assignments 75%
final project 20%
class discussions 5%*
* - the course will include several discussions of various issues covered in class; these discussions will be an opportunity to demonstrate your grasp of the subject. This portion of class will not be necessary for receiving an ‘A’ in the class, but could help determine grades for those on a borderline between two grades.
Programming Assignments:
Programming assignments will be given to demonstrate the use of techniques taught in this course. Assignments can be implemented in C, C++ or FORTRAN. For serial programming, any cache-based architecture can be used. For parallel programming, machines at NPACI will be used (a separate handout will be distributed for that).
Prerequisites*:
- Math 340 or equivalent (linear algebra)
- CS 302, equivalent, or experience with high-level programming language
(e.g. C, C++ or FORTRAN)
* - Programming assignments will involve the solution to common engineering simulation problems, e.g. heat conduction, N-body force problems, Fast Fourier Transforms, or Eigenvalue problems. Numerical methods for solving these problems will be given in class by the instructor; students will only be responsible for implementing some of these and for studying the performance of the resulting codes. Specifically, numerical methods expertise is NOT a prerequisite for this course.
Updated: 09/05/00 1:10 PM