高性能计算

佐治亚理工学院课程 CS6220

高级

大约 0 个礼拜

6小时每周 (按照自己的节奏)

由以下企业参与制作:
加入成千上万的全球学员

开始免费课程

加入课程
免费
可享受
课程视频
实战练习
高级

大约 0 个礼拜

6小时每周 (按照自己的节奏)

由以下企业参与制作:
加入成千上万的全球学员

课程概述

本课程的目标是帮助你为开发、分析和实现并行和局部有效算法奠定坚实的基础。本课程侧重于理论基础。为了让你实际了解算法如何映射到真实系统及其产生的行为,我们会将算法理论与 HPC 系统上的实际练习相结合,例如共享内存节点上的 Cilk Plus 或 OpenMP、图形协处理器 (GPU) 的 CUDA 架构,以及用于分布式内存系统的消息传递接口 (MPI) 和分区全局地址空间 (PGAS) 模型。

本课程为可扩展并行算法的研究生水平入门课程。“可扩展”实际指两件事情:在问题增加时保持高效,以及在系统规模增加时保持高效(以核心或计算节点的数量计量)。要真正在这两个方面扩展算法,你需要明智地减少渐近的复杂性,就像你在 CS101 之后对顺序算法所采取的方式;而且你还需要考虑减少通信与数据活动。本课程就介绍了你实现这些目的所需的基本算法技术。

你将学到的技术包括三大类机器的主要算法设计和分析概念:对于多核和多核心共享内存计算机,使用工作记忆广度模型;对于分布式内存计算机,如集群和超级计算机,使用网络模型;以及对于顺序或并行计算机,使用深存储层级结构(例如缓存)。你将看到这些技术如何应用于基本问题,如排序、树和图形上的搜索,以及线性代数等。本课程的实践方式是实现你将学习的算法和技术,在真正的并行和分布式系统上运行它们,你可以验证理论合理的方法是否能在实践中进行完美转化。(你将使用的编程模型包括 Cilk Plus、OpenMP 和 MPI,也可能用到其他模型。)

为什么学习这门课程?

先修要求

这是算法和数据结构的第二门课程,即佐治亚理工学院 CS3510-B 或优达学城算法入门课程。

为了完成编程作业,学生需要有 C 或 C++ “低级”和“高级”语言编程经验。

在 *nix 环境中(例如 Unix、Linux)使用命令行界面的经验。

查看使用优达学城的技术要求

学习计划

本课程话题主要关于你在 CS101 课程中遇到的常见串行 RAM 模型的三种不同概念或扩展内容。请记住串行 RAM 要占用连接至主存储器的顺序或串行处理器。

第 1 单元:工作内存广度或动态多线程模型

此模型的概念是有多个处理器连接到主内存。由于这些处理器“看到”的是相同的内存,它们可以通过读取和写入“共享”内存来协调和通信。

子话题包括:

* 基础算法模型简介
* 实用编程模型 OpenMP 简介
* 基于比较的排序算法
* Scans 和 linked list 算法
* 树算法
* 图算法,例如:广度优先搜寻

第 2 单元:分布式内存或网络模型

此模型的概念是通过网络连接的许多串行 RAM,而非单个串行RAM。在此模型中,每个串行 RAM 的内存对于其他 RAM 来说是专用的;因此,处理器必须通过发送和接收消息来进行协调和通信。

子话题包括:

* 基础算法模型
* 消息传递接口介绍——采用实际编程模型
* 网络拓扑的影响推理
* 稠密线性代数
* 排序
* 稀疏图算法
* 图分区

第 3 单元:双层内存或 I/O 模型

此模型又回到单个串行 RAM,但这次不是只有一个处理器连接到主内存,两者之间还有一个更小但更快的暂存器。这里的算法问题是如何有效地使用暂存器,以便最大限度地减少从主内存传输数据的成本。

子话题包括:

* 基础模型
* 效率指标,包括耗能等“新兴”指标
* 输入/输出(I/O)感知算法
* 缓存参数无关算法

讲师与合作伙伴

Rich Vuduc

Rich Vuduc

Rich Vuduc 是佐治亚理工大学计算机科学与工程学院的一名副教授,他的研究领域是高性能计算。今年,Vuduc 教授还担任计算机科学与工程学院学术事务副主任和计算机科学与工程学院项目主任。Vuduc 教授的实验室正在开发自动化工具和方法,用于调整、分析和调试并行机器软件,包括新兴的高端多核架构和加速器。他们致力于将这些方法应用于 CSE 应用,包括基于计算机的自然和工程系统模拟以及数据分析。

Catherine Gamboa

Catherine Gamboa

Catherine Gamboa 拥有电机工程硕士和学士学位,专攻数字设计与计算机体系结构。她也是世界闻名的佐治亚理工学院计算机科学系的讲师。

官方微信公众号二维码

优达学城(Udacity)微信