King Fahd University of Petroleum & Minerals
College of Computer Sciences and Engineering
Computer Engineering Department
COE 420 Parallel Computing
 Instructor:
Professor Mayez AlMouhamed (Email: mayez@kfupm.sa.edu)
 Office: Room
224003 (Tel. 2934) and Lab 22339 (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 020164865
 Parallel Programming in C with MPI and OpenMP, by Michael Quinn,
McGrawHill Higher Education, ISBN: 0072822562, 2004.
 Designing and Building Parallel Programs, by Ian Foster,
AddisionWesley Publishing.
(Available Online)
 Introduction to parallel computing : Design and Analysis of
parallel algorithms, by Vipin Kumar, BenjaminCummings
Publishing.
 Sourcebook of Parallel Computing, Jack Dongarra, Ian Foster, et al,
Morgan Kauffman Publishing (Course Reserves)
 Designing and Building Parallel Programs, by Ian
Foster, AddisionWesley Publishing.
(Available
Online)
 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.
 Introduction
to Parallel Computing, by Ananth Grama, ISBN:0201648652, Addison Wesley,
2003.
 MPI/OpenMP/Matlab*P Documentation

Interesting Links
 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 distributedmemory:
messagepassing, 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
lectures)
c. Graph algorithms: spanning tree,
singlesource shortest paths, transitive closure, algorithms for sparse graphs.
(4 lectures)
d. Search Algorithms: sequential search,
parallel depthfirst search, parallel bestfirst search and speedup anomalies (4
lectures)