Academic Catalog 2018–2019

jump to navigation


CSC447 Parallel Programming for Multicore and Cluster Systems

[3–0, 3 cr.]

This course provides an introduction to parallel programming with a focus on multicore architectures and cluster programming techniques. Topics include relevant architectural trends and aspects of multicores, writing multicore programs and extracting data parallelism using vectors and SIMD, thread-level parallelism, task-based parallelism, efficient synchronization, program profiling, and performance tuning. Message-passing cluster-based parallel computing is also introduced. The course includes several programming assignments to provide students first-hand experience with programming, and experimentally analyzing and tuning parallel software. 

Prerequisites: CSC310 Algorithms and Data Structures; CSC326 Operating Systems