Parallel Processing
Architectures

CIS*6100 (W10)
  [ SHARCNET logo ]
  High-Performance
Computing

MCSC 6030G (W10)
  [ SHARCNET logo ]
  High-Performance
Computing

MATH 5P21 (W10)


Course Outline

General Information

Regular classes: January 11, 2010 to April 9, 2010
Final Exam: N/A

Instructors : Deborah Stacey, School of Computer Science,
University of Guelph
[ REYN 222 | x52250 | e-mail: dastacey@uoguelph.ca ]

David McCaughan, SHARCNET
[ REYN 210 | x56467 | e-mail: dbm@sharcnet.ca ]

William Gardner, School of Computer Science,
University of Guelph
[ REYN 105 | x52696 | e-mail: wgardner@uoguelph.ca ]

Luciano Buono,
Faculty of Science, UOIT
[ (905) 721-3111 x2938 | e-mail: Pietro-Luciano.Buono@uoit.ca ]

Thomas Wolf,
Dept. of Mathematics, Brock University
[ Math J413 | x3803 | e-mail: twolf@brocku.ca ]

Advising : by appointment (or see one of us after class)
Lectures : F 0900--1200 UoG: REYN 312 | UOIT: UA 4080 | Brock: MCF 313
Discussion Forum : UoG CIS Moodle Server
Web Page : http://www.usrlocal.ca/~dbm/teaching/CIS6100/


Overview

This course is intended to provide current or prospective SHARCNET researchers from all disciplines with an opportunity to explore issues of parallel design and programming at considerably more depth than can be offered in a workshop style setting. Since courses such as this represent the front lines in training the next generation of HPC specialists, we also strive to consider cutting edge and non-traditional parallel architectures to maximize the breadth of experience offered to the student. Although designed with SHARCNET users in mind, any student wih an adequate computational background is welcome to enroll.

Students entering this course are expected to have a good grasp of basic procedural programming in a language such as C or FORTRAN. A comfort level with C is particularly desirable as FORTRAN is not well supported in the emerging technologies (whereas C++ is becoming increasingly common) and the option to use the FORTRAN language may not always be available. This will serve as the base upon which we construct a working knowledge of parallel computing models as well as theoretical issues related to efficient parallel program design and implementation in both cluster and shared memory environments. Program development will be explored on local development clusters using the Message Passing Interface (MPI), POSIX threads, and other programming models germane to topics under consideration (Pilot, GP-GPU, Cell API, UPC, etc.).

The course will cover the following topics:


Evaluation


Required Text

Barry Wilkinson and Michael Allen. Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers (2e). Prentice Hall, 2005 (ISBN 0-13-140563-2).


Suggested References

William Gropp, Ewing Lusk and Anthony Skjellum. Using MPI: Portable Parallel Programming with the Message-Passing Interface (2e). MIT Press, 1999.

Peter S. Pacheco. Parallel Programming with MPI. Morgan Kaufmann, 1997.

Bradford Nichols, Dick Buttlar, Jacqueline Proulx Farrell. PThreads Programming: A POSIX Standard for Better Multiprocessing. O'Reilly, 1996.

Raymond Greenlaw, H. James Hoover and Walter L. Ruzzo. Limits to Parallel Computation: P-Completeness Theory. Oxford Press, 1995.


Last Modified: 2010 / 10 / 07