King Fahd University of Petroleum & Minerals
College of Computer Sciences and Engineering
Computer Engineering Department
COE 420 Parallel Computing
Professor Mayez Al-Mouhamed (Email: email@example.com)
- Office: Room
22-400-3 (Tel. 2934) and Lab 22-339 (Tel. 3536).
- Text Book and references:
- Introduction to Parallel Computing 2nd Edition, Ananth Grama,
Anshul Gupta, George Karypis, Vipin Kumar, The Addison Wesley
Publishing Company, ISBN 0-201-64865
- Parallel Programming in C with MPI and OpenMP, by Michael Quinn,
McGraw-Hill Higher Education, ISBN: 0072822562, 2004.
- Designing and Building Parallel Programs, by Ian Foster,
- Introduction to parallel computing : Design and Analysis of
parallel algorithms, by Vipin Kumar, Benjamin-Cummings
- Sourcebook of Parallel Computing, Jack Dongarra, Ian Foster, et al,
Morgan Kauffman Publishing (Course Reserves)
- Designing and Building Parallel Programs, by Ian
Foster, Addision-Wesley Publishing.
- Intro. Parallel Processing: Algorithms and Architectures, Parhami,
B., Plenum, 1999.
- Parallel Programming: Techniques and Applications Using
Networked Workstations and Parallel Computers, 2nd edition, by Barry
Wilkinson and Michael Allen, ISBN:0131405632, Prentice Hall, 2005.
- Foundations of Multithreaded, Parallel, and Distributed Programming, by
Gregory R. Andrews, ISBN: 0201357526, Addison Wesley, 2000.
to Parallel Computing, by Ananth Grama, ISBN:0201648652, Addison Wesley,
- MPI/OpenMP/Matlab*P Documentation
- Grading Policy: Exam 1:
20/100, Exam 2: 20/100, Course project: 20/100, Homework: 10/100, and Final
Exam: 30/100 (scheduled by the registrar).
- Project: An optional course project can also be taken and will be given
the weight of one exam. In this case, the two exams will be rated
40/100 and the project will be rated 20/100.
- Attendance: attendance is
required by all students. Excuse for official authorized must be presented
to the instructor no later than one week following the absence. Unexcused
absences lead to a ``DEN'' grade.
1. Concept of Parallel Computing
a. Parallel Programming Platforms: Implicit
parallelism, limitations of memory system, performance, parallel platforms,
communication and mapping techniques. (4 lectures)
b. Principles of Parallel Algorithm Design:
Decomposition, mapping, and load balancing. (3 lectures)
c. Basic Communication: Broadcast, reduction,
scatter and gather. (3 lectures)
d. Analytical Modeling of Parallel Programs:
Overhead, performance, granularity, data mapping, scalability, minimum execution
time. (4 lectures)
2. Parallel Programming
a. Programming distributed-memory:
message-passing, send and receive, interface, overlapping communication with
computation, collective communication, and communicators. (7 lectures)
b. Programming Shared Address: thread, API,
synchronization, control, composite constructs, and standard for directive based
parallel programming. (7 lectures)
3. Parallel algorithms and applications
a. Dense matrix, matrix multiplication,
solving a system of linear equations. (3 lectures)
b. Sorting: bubble sort and bucket sorting. (3
c. Graph algorithms: spanning tree,
single-source shortest paths, transitive closure, algorithms for sparse graphs.
d. Search Algorithms: sequential search,
parallel depth-first search, parallel best-first search and speedup anomalies (4