Course Name: Parallel and Distributed Computing
Credit Hours: 3 (2-3)
Contact Hours: 2-3
Pre-requisites: Object Oriented Programming, Operating Systems
Course Introduction:
CLO No. Course Learning Outcomes Bloom Taxonomy
CLO-1 Learn about parallel and distributed computers. -
CLO-2 Write portable programs for parallel or distributed -
architectures using Message-Passing Interface (MPI)
library
CLO-3 Analyze complex problems with shared memory -
programming with openMP.
Course Outline:
Asynchronous/synchronous computation/communication, concurrency control, fault
tolerance, GPU architecture and programming, heterogeneity, interconnection topologies,
load balancing, memory consistency model, memory hierarchies, Message passing interface
(MPI), MIMD/SIMD, multithreaded programming, parallel algorithms & architectures,
parallel I/O, performance analysis and tuning, power, programming models (data parallel,
task parallel, process-centric, shared/distributed memory), scalability and performance
studies, scheduling, storage systems, synchronization, and tools (Cuda, Swift, Globus,
Condor, Amazon AWS, OpenStack, Cilk, gdb, threads, MPICH, OpenMP, Hadoop, FUSE).
Reference Materials:
1. Distributed Systems: Principles and Paradigms, A. S. Tanenbaum and M. V. Steen,
Prentice Hall, 2nd Edition, 2007
2. Distributed and Cloud Computing: Clusters, Grids, Clouds, and the Future Internet, K
Hwang, J Dongarra and GC. C. Fox, Elsevier, 1st Ed.