# COP-4520 Introduction to Parallel Computing

(Spring 2018)

## General Information

**Meeting Time and Place:**

**Lectures:**Mon/Wed 6:25PM – 7:40PM, ECS 135

**Instructor: Jason Liu**

**Office:**ECS 363**Email:**liux*@*cis.fiu.edu**Phone:**305-348-1625**Web:**http://www.cis.fiu.edu/~liux/

**Office Hours (subject to change):**

- Mon 3:00PM – 6:00PM, Wed 4:00PM -6:00 PM
- Students are welcome to stop by and ask questions as long as the instructor is available at the time. Office hours are designated time for students, but students are recommended to make an appointment before coming to the office hour in order to guarantee more exclusive access.

## Course Information

**Course Description: **

This course introduces the field of parallel computing. The students will be taught how to design efficient parallel programs and how to use parallel computing techniques to solve scientific problems.

**Learning Outcomes:**

- Be familiar with parallel architectures.
- Be familiar with parallel algorithm design.
- Be familiar with parallel performance analysis.
- Master MPI programming.
- Master multi-threaded programming.
- Be familiar with OpenMP programming.
- Be familiar with GPU/CUDA programming.
- Be exposed to Hadoop programming.
- Be exposed to parallel applications.

**Major Topics: **

- Parallel computing concepts:
- Parallel computers, programming paradigms, applications
- Parallel programming (primarily using C/C++ in Unix environment):
- MPI, multi-threading, OpenMP, GPU/CUDA

- Parallel algorithm foundation and performance analysis
- Task/channel model
- Foster’s design methodology
- Speedup and efficiency
- Amdahl’s Law, Gustafson-Barsis’s Law, Karp-Flatt Metric, isoefficiency

- Parallel computing applications:
- Sorting, shortest-path algorithm
- Solving linear equations, matrix multiplications
- Monte Carlo methods, parallel discrete-event simulation
- Finite difference methods

**Course Moodle:**

We use Moodle (https://moodle.cis.fiu.edu/v3.1/course/view.php?id=1682) for disseminating information and collect homework assignments. The grades will also be put on moodle as well.

**Prerequisites:**

- COP 3530 (Data Structures) and CDA 4101 (Structured Computer Organization)
- Good knowledge of the following topics would help:
- Programming experience in C or C++.
- Basic knowledge of undergraduate-level algorithms, data structures, and computer organization.

## Textbook

None. We will distribute reading materials throughout the semester.

### Recommended Reading:

- Designing and Building Parallel Programs. Ian Foster. Addison-Wesley, 1995. ISBN 0-201-57594-9. This book is available online.
- Parallel Programming in C with MPI and OpenMP. Michael J. Quinn. McGraw Hill, 2004. ISBN: 0-07-282256-2.
- An Introduction to Parallel Computing, Design and Analysis of Algorithms, 2/e. Ananth Grama, Vipin Kumar, Anshul Gupta, and George Karypis. Addison-Wesley, 2003. ISBN 0-201-64865-2.
- Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers, 2/e. Barry Wilkinson and Michael Allen. PTR Prentice-Hall, 2004. ISBN 0-13-140563-2.
- Programming Massively Parallel Processors: A Hands-On Approach. David Kirk, Wen-Mei W. Hwu, Wen-mei Hwu. Morgan Kaufmann, 2010. ISBN 0-12-415992-3.

## Evaluation

- Homework (four programming assignments): 40%
- Midterm Exam: 20%
- Final Exam: 30%
- Class attendance and quizzes: 10%

Letter grades will be assigned based on overall percentage. The scale is as follows: A is 90% or higher, B is 80% or higher, and C is 70% or higher. + or – is done at 3.33% intervals, so A- is 86.67% or higher, B+ is 83.33%, etc. C- is 66.67% or higher. Your instructor reserves the right to change the method of assigning grades, including changing the number of assignments or weights of the assignments.

## Policy

- Late submission for assignments will be accepted with grade deduction. The calculation of the grade deduction is as follows. If submitted within 24 hours of the deadline, 15%; if submitted between 24 and 48 hours, 30%; if submitted between 48 and 72 hours, 50%; if submitted beyond 72 hours, 100% deduction. For example, if you get 90 for an assignment but you’re late for two days, you’ll receive 90*(1-30%)=63 for the assignment.
- Exceptions include legitimate, verifiable cases of illness or emergency, and observation of religious holy days. Other than emergencies, EXCEPTIONS MUST BE APPROVED BY THE INSTRUCTOR IN ADVANCE.
- There will be no make-up exams.
- The best way to reach the instructor is through email. If you want to come during the office hours, it’s better to make an appointment beforehand in order to secure a dedicated slot. Please spell out your name and panther id when communicating with the instructor through email.
- Various religious holy days occur throughout the academic year, so the instructor will work with students to ensure that no conflict exists between their religious obligations and their course work. You must let your instructor know prior to a holy day of restrictions that conflict with course scheduled activities.
- Florida International University is a community dedicated to generating and imparting knowledge through excellent teaching and research, the rigorous and respectful exchange of ideas, and community service. All students should respect the right of others to have an equitable opportunity to learn and honestly demonstrate the quality of their learning. Therefore, all students are expected to adhere to a standard of academic conduct, which demonstrates respect for themselves, their fellow students, and the educational mission of the University. All students are deemed by the University to understand that if they are found responsible for academic misconduct, they will be subject to the Academic Misconduct procedures and sanctions, as outlined in the Student Handbook.
**CHEATING WILL NOT BE TOLERATED. Your work needs to be your own. It cannot be joint work with another student in the class or who previously took the class. THERE WILL BE ZERO TOLERANCE FOR CHEATING. You CANNOT give or receive code to and from your fellow students. You CANNOT pull code from the internet. Violators will immediately fail this course and the Academic Misconduct will be reported to the university. NO EXCEPTIONS.**