May 03, 2024  
2020-2021 Undergraduate Catalog 
    
2020-2021 Undergraduate Catalog [ARCHIVED CATALOG]

CS 3600 Parallel and Distributed Computing


An introduction to the concepts, models, architectures, and programming methodologies for parallel and distributed computation.  Parallel algorithm design strategies (with patterns such as divide-and-conquer, map and reduce, master-workers) for multi-core, multi-processor, and network-based concurrency and parallelism by applying OpenMP. MPI, threads, semaphores, message-passing, and other coordination tools, both in tightly-coupled and networked environments.  Issues in shared memory, racing, and deadlock, and other problems will be addressed and resolved.         
Actual coding projects will be in C++, Java, Hadoop, and other languages in support of these paradigms with appropriate API’s (application program interfaces).  Performance will be determined both by experimentation and analytic methods with respect to several measures such as time and space complexity.  


  Prerequisite(s): CS 3420   with a grade of C- or better 
Credits: 3.0