并行处理技术课程设计 -...

29
并行处理技术课程设计 任课教师:谢磊 博士 副教授、博士生导师

Upload: others

Post on 10-Oct-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

并行处理技术课程设计

任课教师:谢磊 博士副教授、博士生导师

Page 2: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

主讲教师信息

• 主讲教师: 谢磊 博士,副教授,博士生导师• 研究方向:分布式计算、智能感知计算• 联系方式– Email:[email protected]– 手机:13805150963

• 办公室:仙林校区计算机系大楼607室• 主页: http://cs.nju.edu.cn/lxie/

Page 3: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

一、课程简介

三、课程的结构与内容

主要内容:

二、课程的定位与目标

五、课程的考核形式

六、课程的参考书籍

四、课程的教学形式

Page 4: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程简介-为何需要并行计算?

How to run applications

faster?

Page 5: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程简介- How to run applications faster?

• Three ways to improve performance

–Work Harder

–Work Smarter

– Get Help

Page 6: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程简介- Computer Analogy

• Faster hardware

• Optimized algorithms and Techniques

• Multiple computers to solve problem

Page 7: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程简介-经典的并发模型:Pipeline (1)

Page 8: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程简介-经典的并发模型:Pipeline (2)

Page 9: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程简介-经典的并发模型:Pipeline (3)

• A canonical five-stage pipeline in a RISCmachine (IF = Instruction Fetch, ID = Instruction Decode, EX = Execute, MEM = Memory access, WB = Register write back)

Page 10: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程简介-经典的并发模型:Pipeline (4)

• A five-stage pipelined superscalar processor, capable of issuing two instructions per cycle. It can have two instructions in each stage of the pipeline, for a total of up to 10 instructions (shown in green) being simultaneously executed.

Page 11: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程简介-经典的并发模型:Pipeline (5)

Page 12: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程简介-并行计算的定义

• 并行计算– Parallel Computing:Multiple processes

cooperating to solve a single problem.– A Parallel Computer is a “collection of processing

elements that communicate and cooperate to solve large problem fast” [David E. Culler]

• 计算科学– 理论科学、实验科学外一个新的学科分支– 计算科学:计算物理、计算化学、计算生物等

Page 13: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程简介-并行计算的应用需求

• 科学与工程问题的需求– 气象预报、油藏模拟、核武器

数值模拟、航天器设计、基因测序等。

– 需求类型:计算密集、数据密集、网络密集。

Page 14: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程简介-并行计算的范畴

• 相对于串行计算,并行计算可以划分成时间并行和空间并行。

• 时间并行即流水线技术,空间并行使用多个处理器执行并发计算,当前研究的主要是空间的并行问题。

• 以程序和算法设计人员的角度看,并行计算又可分为数据并行和任务并行。数据并行把大的任务化解成若干个相同的子任务,处理起来比任务并行简单。

Page 15: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

并行计算的设计过程

• 并行计算的一般设计过程– 划分、通信、组合、

映射

问题

划分

映射

组合

通信

Page 16: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程简介-并行计算面临的挑战

• 并行计算 vs 串行计算– 是否一定能够得到性能的提升?– 是否能够得到性价比的提升?

• 如何提升并行计算的性能?– 硬件 (结构)– 软件 (算法、编程)

• 并行计算的性能瓶颈– 同步– 通信

• 如何将并行计算的理念实际转化到当前的高性能应用中?

Page 17: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程定位-本科生课程

可计算性与计算复杂性

算法研究的数学基础

并行排序和选择算法

VLSI计算理论与并行算法

并行图论算法 分布式算法

并行算法类课程教学网站

并行算法类课程实践

并行算法实践并行计算机体系结构

并行计算:结构.算法.编程

高性能计算导论

面向

计算机

专业博士生

面向

计算机

专业硕

士生

面向

计算机

专业

本科生

或计算科学的研究生

算法理

算法

设计

与分析

算法

实现

算法

应用基

并行算法的设计与分析

Page 18: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程的目标

• 全面介绍并行计算涉及的基础性内容。– 并行计算的硬件基础:并行计算机系统及结构模型– 并行计算的核心内容:并行算法设计与并行数值算法– 并行计算的软件支持:并行程序的设计原理与方法

• 以并行算法设计为课程的核心内容。– 并行算法的设计基础– 并行算法的设计策略– 并行算法的设计技术– 并行算法的设计过程

Page 19: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程的结构与内容

算法

编程

结构

并行计算

应用

Page 20: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程的结构与内容

• 并行计算硬件结构基础 (30%课时量)

第一章 并行计算机系统及其结构模型

第二章 当代并行机系统:SMP、MPP和Cluster

第三章 并行计算性能评测

Page 21: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程的结构与内容

• 并行算法的设计(40%课时量)

第四章 并行算法的设计基础

第五章 并行算法的一般设计方法

第六章 并行算法的基本设计技术

第七章 并行算法的一般设计过程

Page 22: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程的结构与内容

• 并行数值算法(15%课时量)

第八章 基本通信操作

第九章 稠密矩阵运算

第十章 线性方程组的求解

第十一章 快速傅里叶变换

Page 23: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程的结构与内容

• 并行计算应用(15%课时量)

专题报告1:“云计算”中的并行计算

专题报告2:Google Map-Reduce的概念、原理与应用

专题报告3:边缘智能-边缘计算时代的人工智能

Page 24: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

教学内容的思考

• 相对于传统的并行计算课程,教学侧重点– 更侧重并行算法的讲授• 充分意识到并行算法在并行计算中的重要性• 本课程的定位:将并行算法作为核心内容

– 更为侧重方法论的灌输• 系统性地学习并行计算的相关概念• 掌握并行算法设计的原理、策略与技巧• 培养解决问题的思路,加深对问题、方法的理解

Page 25: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

教学内容的思考

• 相对于传统的并行计算课程,教学侧重点– 面向实际、具体的问题进行算法设计的讲授• 并行非数值算法设计方法–并行排序算法–并行选择算法–字符串匹配并行算法–图论中的一些并行算法:最小生成树,单源最短

路径• 并行数值算法设计方法–并行快速傅里叶变换

Page 26: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

教学内容的思考

• 课程的组织结构–以“结构、算法、编程”教学大纲为横线• 全面的介绍并行计算的概念与原理

–以具体问题的算法设计讲授为纵线• 实现“问题驱动”的教学,其效果会更好

Page 27: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程的教学形式

• 授课对象– 计算机系本科大三、大四学生;

• 先修课程– 计算机体系结构、操作系统、算法设计与分析

• 课时– 课堂讲授16周,每周2学时

Page 28: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程的考核形式

• 课程作业 + 期末考试• 课程作业主要包括– 教材中每章节的习题– 课程Project:给定一些确定的课题,让学生在规定时

间内完成简单的Technique Report,例如:• 如何用并行算法实现快速搜索,快速排序?• 面对资源共享锁问题,如何设计并行算法来提高性能?

• 打分方式: 课程作业 × 20% + 期末考试分数 × 80 %

Page 29: 并行处理技术课程设计 - cs.nju.edu.cn–课程Project:给定一些确定的课题,让学生在规定时 间内完成简单的Technique Report,例如: •如何用并行算法实现快速搜索,快速排序?

课程的参考资源-教材

• 《并行计算—结构•算法•编程》– 作 者:陈国良 编

著– 出 版 社:高等教育出

版社