King Fahd University of Petroleum & Minerals
College of Computer Sciences and Engineering
Computer Engineering Department

COE 420 Parallel Computing

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 lectures)

c.      Graph algorithms: spanning tree, single-source shortest paths, transitive closure, algorithms for sparse graphs. (4 lectures)

d.     Search Algorithms: sequential search, parallel depth-first search, parallel best-first search and speedup anomalies (4 lectures)