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.

http://www.cs.uiowa.edu/~oliveira/C177-F11/22c177-fall2011.html

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:

Suggested Textbooks, references, and resources.

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.