CMU 15-418/Stanford CS149: Parallel Computing
Descriptions
- Offered by: CMU and Stanford
- Prerequisites: Computer Architecture, C++
- Programming Languages: C++
- Difficulty: 🌟🌟🌟🌟🌟
- Class Hour: 150 hours
The professor Kayvon Fatahalian used to teach course 15-418 at CMU. After he became an assistant professor at Stanford, he offered a similar course, CS149 at Stanford. In general, the 15-418 version is more comprehensive and has lecture recordings, but CS149's programming assignments are more fashionable. Personally, I watched the recordings of 15-418 but completed the assignments of CS149.
The goal of this course is to provide a deep understanding of the fundamental principles and engineering trade-offs involved in designing modern parallel computing systems, as well as to teach how to utilize hardwares and software programming frameworks (such as CUDA, MPI, OpenMP, etc.) for writing high-performance parallel programs. Due to the complexity of parallel computing architecture, this course involves a lot of advanced computer architecture and network communication content, the knowledge is quite low-level and hardcore. Meanwhile, the five assignments develop your understanding and application of upper-level abstraction through software, specifically by analyzing bottlenecks in parallel programs, writing multi-threaded synchronization code, learning CUDA programming, OpenMP programming, and the popular Spark framework, etc. It really combines theory and practice perfectly.
Resources
- Course Website: CMU15418, CS149
- Recordings: http://15418.courses.cs.cmu.edu/spring2016/lectures
- Textbook: None
- Assignments: https://gfxcourses.stanford.edu/cs149/fall21, 5 assignments.
Personal Resources
All the resources and assignments used by @PKUFlyingPig in this course are maintained in PKUFlyingPig/CS149-parallel-computing - GitHub.
CMU 15-418/Stanford CS149: Parallel Computing
Descriptions
- Offered by: CMU and Stanford
- Prerequisites: Computer Architecture, C++
- Programming Languages: C++
- Difficulty: 🌟🌟🌟🌟🌟
- Class Hour: 150 hours
The professor Kayvon Fatahalian used to teach course 15-418 at CMU. After he became an assistant professor at Stanford, he offered a similar course, CS149 at Stanford. In general, the 15-418 version is more comprehensive and has lecture recordings, but CS149's programming assignments are more fashionable. Personally, I watched the recordings of 15-418 but completed the assignments of CS149.
The goal of this course is to provide a deep understanding of the fundamental principles and engineering trade-offs involved in designing modern parallel computing systems, as well as to teach how to utilize hardwares and software programming frameworks (such as CUDA, MPI, OpenMP, etc.) for writing high-performance parallel programs. Due to the complexity of parallel computing architecture, this course involves a lot of advanced computer architecture and network communication content, the knowledge is quite low-level and hardcore. Meanwhile, the five assignments develop your understanding and application of upper-level abstraction through software, specifically by analyzing bottlenecks in parallel programs, writing multi-threaded synchronization code, learning CUDA programming, OpenMP programming, and the popular Spark framework, etc. It really combines theory and practice perfectly.
Resources
- Course Website: CMU15418, CS149
- Recordings: CMU15418, CS149
- Textbook: None
- Assignments: https://gfxcourses.stanford.edu/cs149/fall21, 5 assignments.
Personal Resources
All the resources and assignments used by @PKUFlyingPig in this course are maintained in PKUFlyingPig/CS149-parallel-computing - GitHub.
CMU 15-418/Stanford CS149: Parallel Computing
课程简介
- 所属大学:CMU 和 Stanford
- 先修要求:计算机体系结构,熟悉 C++
- 编程语言:C++
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时:150 小时
Kayvon Fatahalian 教授此前在 CMU 开了 15-418 这门课,后来他成为 Stanford 的助理教授后又开了类似的课程 CS149。但总体来说,15-418 包含的课程内容更丰富,并且有课程回放,但 CS149 的编程作业更 fashion 一些。我个人是观看的 15-418 的课程录影但完成的 CS149 的作业。
这门课会带你深入理解现代并行计算架构的设计原则与必要权衡,并学会如何充分利用硬件资源以及软件编程框架(例如 CUDA,MPI,OpenMP 等)编写高性能的并行程序。由于并行计算架构的复杂性,这门课会涉及诸多高级体系结构与网络通信的内容,知识点相当底层且硬核。与此同时,5 个编程作业则是从软件的层面培养学生对上层抽象的理解与运用,具体会让你分析并行程序的瓶颈、编写多线程同步代码、学习 CUDA 编程、OpenMP 编程以及前段时间大热的 Spark 框架等等。真正意义上将理论与实践完美地结合在了一起。
课程资源
- 课程网站:CMU15418, CS149
- 课程视频:http://15418.courses.cs.cmu.edu/spring2016/lectures
- 课程教材:无
- 课程作业:https://gfxcourses.stanford.edu/cs149/fall21,5 个编程作业
资源汇总
@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 PKUFlyingPig/CS149-parallel-computing - GitHub 中。
CMU 15-418/Stanford CS149: Parallel Computing
课程简介
- 所属大学:CMU 和 Stanford
- 先修要求:计算机体系结构,熟悉 C++
- 编程语言:C++
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时:150 小时
Kayvon Fatahalian 教授此前在 CMU 开了 15-418 这门课,后来他成为 Stanford 的助理教授后又开了类似的课程 CS149。但总体来说,15-418 包含的课程内容更丰富,并且有课程回放,但 CS149 的编程作业更 fashion 一些。我个人是观看的 15-418 的课程录影但完成的 CS149 的作业。
这门课会带你深入理解现代并行计算架构的设计原则与必要权衡,并学会如何充分利用硬件资源以及软件编程框架(例如 CUDA,MPI,OpenMP 等)编写高性能的并行程序。由于并行计算架构的复杂性,这门课会涉及诸多高级体系结构与网络通信的内容,知识点相当底层且硬核。与此同时,5 个编程作业则是从软件的层面培养学生对上层抽象的理解与运用,具体会让你分析并行程序的瓶颈、编写多线程同步代码、学习 CUDA 编程、OpenMP 编程以及前段时间大热的 Spark 框架等等。真正意义上将理论与实践完美地结合在了一起。
课程资源
- 课程网站:CMU15418, CS149
- 课程视频:CMU15418, CS149
- 课程教材:无
- 课程作业:https://gfxcourses.stanford.edu/cs149/fall21,5 个编程作业
资源汇总
@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 PKUFlyingPig/CS149-parallel-computing - GitHub 中。