Last Updated: Spring 2017
This repository contains the work required from CSC447 students during the lab. Solutions will be added on a weekly basis as well as some references and go-to websites.
This undergraduate course provides an introduction to prallel 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 sybchronization, 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.
- Students shall demonstrate an ability to design, analyze, and implement shared-memory programming applications on multicore systems.
- Students shall demonstrate an ability to design, analyze, and implement message-passing programming applications on a cluster of workstations.
- Students shall demonstrate an ability to analyze the efficiency of a given parallel algorithm.
- Students should understand the challenges of as well as the motivations for using parallel programming.