Math 627 - Introduction to Parallel Computing
Spring 2009 - Matthias K. Gobbert
Section 0101 - Schedule Number 4100
This page can be reached via my homepage at
Presentations of the Class Projects
The presentations of the class projects will be held on
Friday, May 15, 2009 starting at 02:30 p.m. in SOND 206.
Please follow the link to the Program
for the titles and abstracts.
Just like for seminar talks, everybody is welcome to attend!
- Matthias K. Gobbert,
Math/Psyc 416, (410) 455-2404, firstname.lastname@example.org,
office hours: MW 04:00-05:00 or by appointment
- Classes: (changed to) SOND 206, MW 02:30-03:45;
see the detailed schedule for more information.
- Prerequisites: Math 630,
fluency in programming either C or Fortran and
proficiency in using the Unix/Linux operating system,
or instructor approval
- Copies of the following books are on reserve in the library.
- Grading policy:
| Homework and Quizzes
|| Class Project
Additional details or changes will be announced as necessary.
See also general policies and procedures
for more information.
The homework includes
the computer assignments that are vital to understanding
the course material.
A late assignment accrues a deduction of 10% of the possible score
for each day late until my receiving it;
I reserve the right to exclude any problem from scoring
on late homework, for instance, if we discuss it in class.
The quizzes will generally be unannounced and brief and
will include the use of learning groups assigned by the instructor.
For instance, they may be designed to initiate class discussion
or to give me feedback on your learning.
They may be technical or non-technical in nature.
The graded participation component rewards
your professional behavior and active involvement
in all aspects of the course.
Examples of expected professional behavior include
attending class regularly,
reading assigned material when requested,
cooperating with formal issues such as
submitting requested material on time, and
participating actively in class, specifically in group work.
In this course, professional behavior also includes
adhering to good user behaviors on the shared
computing facilities that you will work on.
It is increasingly important
at this point in your education to learn
how to work on a larger project on your own
(with guidance by the instructor)
and to present your results in the form of a
professional-grade type-set report
and a prepared oral class presentation.
The class project will include all these components:
substantial work on an individual project;
a written report (in the form of a technical report);
and an oral class presentation.
is a course management system that allows for posting
and communicating among registered participants of a course.
To log in, I suggest to go to myUMBC
and then use the Blackboard link on the left.
Then look for this course under "My Courses".
We will actively only use the "Course Documents" area.
I will post PDF files of the lectures for each class and
possibly appropriate additional notes in this area.
I will also use Blackboard to send e-mail to the class,
which goes to your UMBC account by default.
Therefore, you must either check your UMBC e-mail regularly
or have the mail forwarded to an account that you check frequently.
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.
Students in this course will gain access the distributed-memory cluster
hpc.rs in the UMBC High Performance Computing Facility
This cluster has currently 32 nodes with two dual-core AMD Opteron
processors and 13 GB of memory, connected by a state-of-the-art
InfiniBand interconnect network.
This class is intended to familiarize students to 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.
By the end of this course, you should:
understand and remember the key ideas, concepts, definitions,
and theorems of the subject.
Examples include understanding the purpose of parallel computing
and why it can work, being aware of potential limitations,
and knowing the major types of hardware available.
This information will be communicated in class and in the
textbook, but also in additional reading.
--> This information will be discussed in the lecture as well as
in the textbook and other assigned reading.
have experience writing code for a Linux cluster using MPI in C, C++,
and/or Fortran that correctly solves problems in scientific computing.
The sample problems are taken from mathematics and your code has to
compile without error or warning, run without error,
and give mathematically correct results first of all.
In addition, it needs to run on a Linux cluster without error
and you need to be able to explain its scalability, i.e.,
why or why not it executes faster on several processors than in serial.
We will have problems stated in different ways and from various
sources to provide you with exposure to as many issues as possible.
--> This is the main purpose of the homework and most
learning will take place here.
have gained proficiency in delivering code written by you to others
for compilation and use.
This includes the concept of providing a README file that gives
instructions how to compile and run the code as well as
of providing a sample output file to allow the user to check the results.
We will work together in class to discuss best practices to transfer code
for homework problems of increasing complexity.
--> You will submit your homework code by e-mail to the instructor
and it needs to compile and run in parallel for credit; this is
complemented by a report that shows and explains your results.
have some experience how to learn information from a research paper
and to discuss it with peers.
Group work requiring communication for effective collaboration
with peers and supervisors is a vital professional skill,
and the development of professional skills is a declared learning goal
of this course.
--> I will supply some research papers carefully
selected for their readability and relevance to the course.
Learning from research papers is a crucial skill to develop.
have experience with independent work and presenting it both
in a written report and in an oral presentation.
It is vital to gain experience with setting your own goals,
estimating a realistic time line, working with peers and supervisors
on regular updates and giving and receiving suggestions,
submitting and editing a written report to standards of a research paper,
and presenting your results in an oral presentation as part of a
--> The class project will cover all of these components,
and we will discuss the various steps necessary in class.
Reading the research papers above will give you a frame of reference
for how the report should look like.
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
or the Graduate School website
Copyright © 2001-2009 by Matthias K. Gobbert. All Rights Reserved.
This page version 1.2, May 2009.