Math 627 - Introduction to Parallel Computing

Spring 2010 - Matthias K. Gobbert


This page can be reached via my homepage at http://www.math.umbc.edu/~gobbert.

Companion Course

Math 627 assumes a fluency with C as well as the Linux operating system. Since the programming assignments start fairly basic and even the most sophisticated ones only use a limited number of C constructs, it is in fact possible to teach yourself C along with the class, in particular if you prepare over the winter break. However, it is also useful to gain experience with debugging and get feedback on programming projects. Therefore, during Spring 2010, I will offer a companion course that provides an introduction to Linux and C that is precisely coordinated with Math 627. Specifically, this course will include some of the same programming assignments as Math 627, but in serial and about a week before the due date of the parallel code. The course will also include discussions of the key featuers of Linux necessary to work on the cluster. Please see here for more information.


Basic Information


Overview

In recent years, parallel computing has become an almost ubiquitous way to perform computer simulations involving large amounts of data or intensive calculations. The basic purpose of using several processors is to speed up computations of large problems by distributing the work. But large problems typically involve vast quantities of data as well; by distributing the data across several processors, problems of previously unsolvable size can now be tackled in reasonable time.

This course will both introduce the basic aspects of parallel programming and the algorithmic considerations involved in designed scalable parallel numerical methods. The programming will use the Message Passing Interface (MPI), the most common library of parallel communication commands today for any type of parallel machine architecture. We will discuss several application examples in detail that show how parallel computing can be used to solve large application problems in practice.

Registered students in this course will gain access to the resources in the UMBC High Performance Computing Facility (HPCF; www.umbc.edu/hpcf). Installed in Fall 2009, the current machine is the 86-node distributed-memory cluster tara with two quad-core Intel Nehalem processors and 24 GB per node, an InfiniBand interconnect, and 160 TB central storage. This class is intended to familiarize students with this cluster, if you expect to use it for your research in the future. One of the side benefits of this class is to help in the creation of a user community of campus.


Learning Goals

By the end of this course, you should:

Other Information


UMBC Academic Integrity Policy

By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community in which everyone's academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong. Academic misconduct could result in disciplinary action that may include, but is not limited to, suspension or dismissal. To read the full Student Academic Conduct Policy, consult the UMBC Student Handbook, the Faculty Handbook, the UMBC Integrity webpage www.umbc.edu/integrity, or the Graduate School website www.umbc.edu/gradschool.


Copyright © 2001-2009 by Matthias K. Gobbert. All Rights Reserved.
This page version 0.3, November 2009.