Heterogeneous Parallel Programming

开始时间: 01/12/2015 持续时间: 9 weeks

所在平台: Coursera

课程类别: 计算机科学

大学或机构: University of Illinois at Urbana-Champaign( 伊利诺伊大学厄巴纳 - 香槟分校)

授课老师: Wen-mei W. Hwu


课程主页: https://www.coursera.org/course/hetero

课程评论: 4 个评论

评论课程        关注课程


All computing systems, from mobile to supercomputers, are becoming heterogeneous parallel computers using both multi-core CPUs and many-thread GPUs for higher power efficiency and computation throughput. While the computing community is racing to build tools and libraries to ease the use of these heterogeneous parallel computing systems, effective and confident use of these systems will always require knowledge about the low-level programming interfaces in these systems. This course is designed for students in all disciplines to learn the essence of these programming interfaces (CUDA/OpenCL, OpenMP, and MPI) and how they should orchestrate the use of these interfaces to achieve application goals.

The course is unique in that it is application oriented and only introduces the necessary underlying computer science and computer engineering knowledge needed for understanding. It covers data parallel execution model, memory models for locality, parallel algorithm patterns, overlapping computation with communication, and scalable programming using joint MPI-CUDA in large scale computing clusters. It has been offered as a one-week intensive summer school for the past four years. In the past two years, there have been ten video-linked academic sides with a total of more than two hundred students each year.


  • Week One: Introduction to Heterogeneous Computing and a Quick Overview of CUDA C and MPI, with lab setup and programming assignment of vector addition in CUDA C
  • Week Two: Kernel-Based Data Parallel Programming and Memory Model for Locality, with programming assignment of simple and tiled matrix multiplication.
  • Week Three: Performance Considerations and Task Parallelism Model, with programming assignment in performance tuning.
  • Week Four: Parallel Algorithm Patterns – Reduction/Scan, stencil computation and Sparse computation, with programming assignment of reduction tree.
  • Week Five: MPI in a Heterogeneous Computing Cluster: domain partitioning, data distribution, data exchange, and using heterogeneous computing nodes, with programming assignment of a MPI-CUDA application.
  • Week Six: Related Programming Models – OpenACC, CUDA FORTRAN, C++AMP, Thrust, and important trends in heterogeneous parallel computing, with final exam.



The_Seventh_Heaven 2014-01-27 12:15 0 票支持; 0 票反对



课程图谱 2013-05-28 21:17 1 票支持; 0 票反对

无意中发现有同学在CSDN上写了这门课程的系列学习笔记: Heterogeneous Parallel Programming(异构并行编程)学习笔记 ,在这里留个链接,感兴趣的同学可以提前预习一下。


wzyer 2013-05-17 09:19 0 票支持; 0 票反对



yongsun 2013-05-13 01:43 1 票支持; 0 票反对

对GPU编程的各种principles和best practices有不错的介绍,不过老师讲的不是很流畅,PA的环境(特别是评分系统)也颇受诟病,希望后期有更好的改进…


This course teaches the use of CUDA/OpenCL, OpenACC, and MPI for programming heterogeneous parallel computing systems. It is application oriented and only introduces necessary technological knowledge to solidify understanding.


GPU CUDA OpenCL MPI 并行编程 异构并行编程 并行编程模型 伊利诺伊大学香槟分校



Coding the Matrix: Linear Algebra through Computer Science Applications 关注


Functional Programming Principles in Scala 关注

Ruby 关注

Programming Languages 关注

Creative, Serious and Playful Science of Android Apps 关注


Learn to Program: The Fundamentals 关注

High Performance Scientific Computing 关注

Fundamentals of Digital Image and Video Processing 关注