异构并行编程

Heterogeneous Parallel Programming

课程主要研究异构编程、大规模并行处理器的概念、语言、方法和模式,自2012年首次发布以来,异构并行编程的内容和…

伊利诺伊大学香槟分校

分享

异构并行编程
  • 分类: 计算机
  • 平台: Coursera
  • 语言: 英语

课程主要研究异构编程、大规模并行处理器的概念、语言、方法和模式,自2012年首次发布以来,异构并行编程的内容和结构在此基础上得到了显著改进,其中包括并行计算架构、数据并行编程模式,内存带宽管理技术和并行算法模式。

课程概述

从移动设备到超级计算机,所有计算机系统正朝着大规模异构并行计算机的方向发展,功效和计算能力更加突出,与此同时,计算机领域也在积极创建函数库和相关工具,为系统使用提供便利;想实现高效可靠的计算系统,了解低级编程语言是必不可少的,本课程旨在帮助学生了解低级编程接口的本质,以及如何应用这些接口实现程序目的。CUDA C语言很好地平衡了用户控件和冗长问题,将作为本课程前半部分的教学工具,学生还可以进一步学习与之密切相关的编程接口,如OpenCL,OpenACC和C++AMP。

本课程是目前唯一一套面向应用的计算机科学与工程初级课程,主要内容包括:数据并行执行模型,内存模型的地址管理,减少带宽消耗的切片技术,并行算法模式,计算与通信重叠以及各种异构并行编程接口,这些概念为大家学习其他并行编程系统奠定了坚实基础。

课程大纲

第一周:综合介绍异构计算,CUDA C语言以及基于内核的并行编程,实验概览,附编程作业:使用CUDA C语言进行向量求和。
第二周:内存模型的地址管理,节约内存带宽的切片技术,边界条件的处理以及系统性能方面的问题,附编程作业:使用CUDA C进行简单的矩阵乘法。
第三周:并行卷积模式,附编程作业:使用CUDA C进行平铺矩阵乘法。
第四周:并行扫描模式,附编程作业:基于CUDA C的卷积并行算法。
第五周:直方图并行模式和原子操作,附编程作业:基于CUDA C的并行扫描。
第六周: 数据传输与任务并行,附编程作业:基于CUDA C的直方图并行算法。
第七周:OpenCL,C++AMP和OpenACC简介,附编程作业:使用CUDA C数据流进行向量求和。
第八周:课程总结,其他相关的编程模型——Thrust,Bolt和CUDA FORTRAN,附编程作业:选择OpenCL,C++AMP或 OpenACC进行矩阵乘法。
第九周:完成剩余的实验作业,附可加分的选做编程作业,可选择OpenCL,C++AMP或OpenACC进行操作。

背景知识

具备C/C++的编程经验。

参考资料

课程本身不依赖于其他教材,如果同学们希望在此基础上扩大知识面,我们推荐《Programming Massively Parallel Processors: A Hands-on Approach》(《大规模并行处理器编程之实践方法》,GPU运算系统的应用)——第二版,作者:David Kirk和Wen-mei Hwu,Morgan Kaufmann,爱思唯尔出版社出版,ISBN 0123814723,书中涉及更多关于并行编程的内容。

授课形式

课程包含若干个15-20分钟的教学视频,每周安排小测验和编程作业。

常见问题

学完这门课,我能否获得相关认证?
凡顺利完成本课程的学员均可获得由老师签发的结业证书。

学习这门课我需要准备什么?
一台笔记本电脑或台式机,能支持GPU的硬件更好,但不做强制性要求。

为什么只有前半段课程使用OpenCL?
OpenCL是第一个面向异构系统通用目的并行编程的行业标准,并得到众多CPU和GPU供应商的支持,但是与CUDA相比,OpenCL代码更为复杂而且冗长,其复杂程度和繁琐的细节不利于大家集中精力学习理论和方法,根据我们的经验,CUDA更有利于教授概念和方法。另外,作为补充内容,我们还会深入讲解OpenCL,使同学们能够灵活应用OpenCL进行各类编程。

之前选修HPP课程的学生,成绩如何?
参加测验并完成编程任务的9908名学生中,有2011人获得了合格证书或优秀证书。

学完这门课,我最大的收获是什么?
从移动处理器到超级计算机,学习为应用程序充分释放运算能力。

声明:MOOC中国收录之课程均源自下列机构,版权均归他们所有。本站仅作报道并尊重其著作权益,感谢他们对MOOC事业做出的贡献!(排名不分先后)
  • Coursera
  • edX
  • OpenLearning
  • FutureLearn
  • iversity
  • Udacity
  • NovoEd
  • Canvas
  • Open2Study
  • Google
  • ewant
  • FUN
  • IOC-Athlete-MOOC
  • World-Science-U
  • Codecademy
  • CourseSites
  • opencourseworld
  • ShareCourse
  • gacco
  • MiriadaX
  • JANUX
  • openhpi
  • Stanford-Open-Edx
  • 网易云课堂
  • 中国大学MOOC
  • 学堂在线
  • 顶你学堂
  • 华文慕课
  • 好大学在线CnMooc

Copyright © 2008-2015 MOOC.CN 慕课改变你,你改变世界