22C:177/ 22M:178 High Performance and Parallel Computing.
Instructor
Prof Suely Oliveira
Room MLH 101H, ph: 335-0731, email: oliveira@cs.uiowa.edu
Time & Locations: Tu and TH 12:30-1:15
LAB
301 MLH and
1:15-1:45
113
MLH
Office hours: 9:00 - 10:30A Tu and Th (MLH 101H)
Computer Science DEO: Prof. Alberto
Segre.
Description
Parallel
computing has become especially important lately with the widespread
adoption of multicore processors and the use of Graphics Processing
Units (GPUs) for mainstream computation. Now it is not only
possible, but vital, that parallel programming techniques and issues
are used and understood in programming standard desktop and laptop
computers
The core of this class is parallel algorithms. With the widespread
adoption of multicore processors and the use of Graphics Processing
Units (GPUs) for mainstream computation, parallel programming
techniques can and should be used in research and also by the
general programmer using standard desktop and laptop computers.
We will study parallel algorithms for diverse problems in various types
architectures and platforms; algorithms include numerical integration
(trapezoidal rules), PDE solvers (Laplace equation), and matrix-matrix
multiplication for example. We will cover message
passing algorithms for distributed memory using MPI, shared memory, and
multicore algorithms using threads and OpenMP, and algorithms and
implementations for general programming on GPUs using either CUDA or
OpenCL. The implementations will be done during lectures
and also through programming assignments. Sequential issues such
as memory access, temporal and spatial locality, and floating point
arithmetic issues will be also be addressed. Half of the lectures will
be in the computer lab where we will introduce the implementation
approaches and develop programs using the new tools.
This course can be used as a Math course or Computer Science. There are
no prerequisites, previous programming experience with any language
(including Matlab) is fine. It is also good class if you are a student
wanting more programming experience but is not
ready to jump into an object oriented class such as 22C021 or 22C022. A
C programming tutorial will be available for students not familiar with
C yet and some Labs will address basic and advanced issues related to
the C language before we start programming in Parallel.
Some
topics we will cover:
- OpenMP for shared memory and multicore computing,
- CUDA for GPU programming
- MPI for distributed memory
- Scientific Programming and Software Development
Suggested Textbooks, references, and resources.
- Using OpenMP, Chapman,
Jost and van der Pas, MIT Press (2008)
- Art of Concurrency, Clay
Breshears (2009)
- CUDA by Example: An
Introduction to General-Purpose GPU Programming, Sanders &
Kandrot (2010)
- Programming Massively Parallel
Computers, Kirk & Hwu, Morgan Kauffman (2010)
- Writing Scientific Software,
Oliveira
&
Stewart,
Cambridge University Press (2006)
- Parallel Programming with MPI,
Pacheco,
Morgan
Kauffman
(1996)
This is an ICON course: all
grades will be posted there, along with course information and updates.
Assessment
Assessment for this course will be based a midterm(30%) and a final
project(30%)
Attendance and completion of programming homeworks count as 40%.
----------------------------------------------------------------------------------------
University Administrative Rules
The College of Liberal Arts and Sciences is the administrative home of
this course and governs matters such as the add/drop deadlines, the
second-grade-only option, and other related issues. Different colleges
may have different policies. Questions may be addressed to 120
Schaeffer Hall, or see the CLAS Student Academic Handbook.
Electronic Communication
University policy specifies that students are responsible for
all official correspondences sent to their University of Iowa e-mail
address (@uiowa.edu). Faculty and students should use this account for
correspondences. (Operations Manual, III.15.2.
Scroll
down
to
k.11.)
Accommodations
for
Disabilities
A student seeking academic accommodations
should first register with Student Disability Services and then meet
privately with the course instructor to make particular arrangements.
See www.uiowa.edu/~sds/
for more information.
Academic Fraud
Plagiarism and any other activities when students present work
that is not their own are academic fraud. Academic fraud is a serious
matter and is reported to the departmental DEO and to the Associate
Dean for Undergraduate Programs and Curriculum. Instructors and DEOs
decide on appropriate consequences at the departmental level while the
Associate Dean enforces additional consequences at the collegiate
level. See the CLAS Academic Fraud section of the Student
Academic Handbook.
CLAS Final
Examination Policies
Final exams may be offered only during
finals week. No exams of any kind are allowed during the last week of
classes. Students should not ask their instructor to reschedule a final
exam since the College does not permit rescheduling of a final exam
once the semester has begun. Questions should be addressed to the
Associate Dean for Undergraduate Programs and Curriculum.
Making a Suggestion or a Complaint
Students with a suggestion or complaint should first visit the
instructor, then the course supervisor, and then the departmental DEO.
Complaints must be made within six months of the incident. See the CLAS
Student
Academic Handbook.
Understanding Sexual Harassment
Sexual harassment subverts the mission of
the University and threatens the well-being of students, faculty, and
staff. All members of the UI community have a responsibility to uphold
this mission and to contribute to a safe environment that enhances
learning. Incidents of sexual harassment should be reported
immediately. See the UI Comprehensive
Guide
on
Sexual
Harassment for assistance, definitions, and the
full University policy.
Reacting Safely to Severe Weather
In severe weather, class members should seek appropriate
shelter immediately, leaving the classroom if necessary. The class will
continue if possible when the event is over. For more information on
Hawk Alert and the siren warning system, visit the Public Safety web
site.
*These CLAS policy and procedural statements have been summarized from
the web pages of the College of
Liberal Arts and Sciences and The University of Iowa Operations
Manual.