CISC 367 Introduction to Parallel Programming
Course Outline
(Spring 1998)
Course Topics:
- Introduction - What is parallel computing?
- Overview of parallel architectures and parallel programming models
- How do I write a simple parallel program?
- The MIMD and SPMD models
- What are the problems unique to parallel programs?
- How do I deal with these problems?
- How do I debug parallel programs?
- How do I measure the goodness of my parallel program?
- The process of designing good parallel programs:
- How do I break up the problem?
- Some basic techniques of parallel algorithm design
- How do I get processes to pass data around in effective ways?
- How much overhead have I created for the sake of parallelism?
- How can I improve the parallel program in terms of communication overhead?
MPI Concepts:
- Basic Send and Recv
- Collective Communication
- Communicators and Groups
- Topologies
- Derived Data Types
- Advanced Point-to-Point Communication
- Timing and Profiling MPI Programs