COP-4520: Introduction to Parallel Computing
Spring 2016
FIU-SCIS
Online Course Support (Moodle): COP4520SP16U01
(https://moodle.cis.fiu.edu/v3.0/course/view.php?id=1118)
Github Server
(https://gitlab.cs.fiu.edu/courses/cnt4713f15)
Syllabus
General Information
- Meeting Time and Place: TuTh 8:00 - 09:15, PG6-114.
- Instructor: Jason Liu.
- Office Hours (subject to change): TuTh 1:00-3:30 PM; Please
make an appointment before coming to the office hour to guarantee availabililty.
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.
Learning Objectives
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.
Course 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.
Course 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
- Fast Fourier Transformation
Textbooks
Required textbook:
- None. We will distribute reading materials throughout the semester.
Recommended Readings:
- 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
Workload and Grade Breakdown:
- Homework (including both written and programming assignments): 60%
- Midterm Exam: 15%
- Final Exam: 20%
- Class attendance: 5%
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. I reserve the right
to change the method of assigning grades, including changing the
number of assignments and 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.
- 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.