《高性能计算与云计算》教学大纲
课程代码 | 045101911 |
课程名称 | 高性能计算与云计算 |
英文名称 | High Performance Computing and Cloud Computing |
课程类别 | 选修课 |
课程性质 | 选修 |
学时 | 总学时:48 实验学时:16 实习学时:0 其他学时:0 |
学分 | 2.5 |
开课学期 | 5 |
开课单位 | 计算机科学与工程学院 |
适用专业 | 网络工程、计算机科学与技术、信息安全 |
授课语言 | 英文授课 |
先修课程 | 操作系统、计算机组成与体系结构 |
课程对毕业要求的支撑 | 本课程对学生达到如下毕业要求有如下贡献: №3.设计/开发解决方案:能够设计针对复杂与计算机相关工程问题的解决方案,设计满足特定需求的系统、单元(部件)或工艺流程,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。 №4.研究:能够基于科学原理并采用科学方法对与计算机相关复杂工程问题进行研究,包括设计实验、分析与解释数据、并通过信息综合得到合理有效的结论。 №5.使用现代工具:能够针对与计算机相关复杂工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具,包括对复杂工程问题的预测与模拟,并能够理解其局限性。 |
课程目标 | (1)掌握高性能计算和云计算的基础理论知识,培养学生的实践能力。[3、5] (2)掌握高性能计算机的系统结构模型,对称多处理机(SMP)、大规模并行处理机(MPP)、集群系统(Cluster)和并行计算的性能评测并行算法的一般设计策略、基本设计技术和一般设计过程。[3、4] (3)掌握云计算的分布式大规模数据处理和云存储技术;掌握共享存储编程、分布存储编程和Map/Reduce编程等面向高性能计算与云计算应用的并行程序设计环境与工具。[4、5] |
课程简介 | 《高性能计算与云计算》是计算机专业的专业领域课程。高性能计算技术是计算机技术发展中的一项重要技术。通过该课程的学习,学生应该学习和掌握高性能计算的基础理论知识和实践经验,并为后续课程打下坚实基础。 本课程以高性能计算和云计算为主题,分为三大部分,第一部分是高性能计算的基础知识,第二部分是云计算的概念及核心技术,第三部分是高性能计算与云计算的软件支持-并行程序的设计原理与方法。主要课程内容包括高性能计算机的系统结构模型,对称多处理机(SMP)、大规模并行处理机(MPP)、集群系统(Cluster)和并行计算的性能评测并行算法的一般设计策略、基本设计技术和一般设计过程;云计算的分布式大规模数据处理和云存储技术;共享存储编程、分布存储编程和Map/Reduce编程等面向高性能计算与云计算应用的并行程序设计环境与工具。 课程强调融合高性能计算机结构、云计算技术、并行算法和并行编程为一体,力图反映高性能计算和云计算领域的最新成就和发展趋势。 学生除完成基本理论课程学习外,课程将通过在高性能计算机系统上的实践,学习和掌握高性能计算和云计算的基础知识。 |
教学内容与学时分配 | 第一章 绪论 (3学时) 重点:高性能计算和云计算的概念,现状及发展,自主可控、安全可靠云技术,应用前景 难点:高性能计算技术的发展以及和云计算技术的衔接,自主可控、安全可靠云技术 要求:了解基本概念,最新趋势,以及相关的技术和应用 第二章 并行计算机体系结构(3学时) 重点:系统互联技术;存储存取模型及层次结构;对称多处理机(SMP)、大规模并行处理机(MPP)、集群系统(Cluster) 难点:静态和动态互联,存储存取层次结构 要求:熟悉各种并行计算机体系结构以及实际应用例子,掌握系统互联的基本原理和方法,了解存储存取模型和层次结构 第三章 并行计算模型及性能评估(3学时) 重点:并行计算模型PRAM、BSP和LogP;工作负载、加速比和可扩展性,负载受限加速比、时间受限加速比、存储受限加速比, 难点:并行计算模型,可扩展性 要求:了解并行计算模型及它们之间的异同点,掌握应用计算模型进行并行计算构模的基本方法,了解并行计算的性能评估方法,掌握加速比的计算方法 第四章 并行算法设计(6学时) 重点:并行算法设计技术包括平衡树方法、倍增技术、分治策略、划分原理和流水线技术等;并行算法设计方法论PCAM:划分,通信,组合、映射 难点:分治策略、划分原理;矩阵乘法并行算法的设计和性能比较 要求:了解并能应用并行算法设计的基本技术进行并行算法的设计和实现,掌握最短路径、排序、字符串匹配、矩阵乘法等经典并行算法的设计思想,了解并行算法设计的方法论 第五章 分布式大规模数据处理(6学时) 重点:分布式大规模数据处理的概念、编程模型;Map/Reduce的原理和工作机制、基于的Map/Reduce的并行算法设计 难点:Map/Reduce的负载均衡和容错机制,最短路径算法的Map/Reduce实现 要求:熟练掌握Map/Reduce的原理和工作机制、掌握词频统计、排序、字符串匹配、最短路径等并行算法的Map/Reduce实现 第六章 云计算与云存储(3学时) 重点:云计算、虚拟机、云存储的概念,分布式存储系统的系统架构、容错机制和系统管理技术;分布式文件HDFS的系统架构及关键技术 难点:虚拟机技术、分布式文件系统的读写操作流程 要求:了解云计算与虚拟机技术,了解云存储系统的系统架构和容错机制,掌握分布式文件系统HDFS的存取方法 第七章 共享存储编程(3学时) 重点:并行编程风范,共享存储编程原理;OpenMP编程模型,制导语句、控制结构和数据子句 难点:并行域和共享任务结构,共享对象存取 要求:熟悉 OpenMP的编程模型以及基本概念,掌握OpenMP的主要制导语句、控制结构和数据子句 第八章 消息传递编程(3学时) 重点:消息传递编程原理,进程交互方式;MPI编程模型,通信函数 难点:通信模式,非阻塞操作 要求:熟练掌握MPI编程的工作原理及相关技术,熟悉其核心函数以及运行环境等,掌握矩阵乘法的MPI实现 第九章 高性能计算与云计算平台(2学时) 重点:高性能计算集群,云计算平台及编程环境 难点:集群系统,云计算平台的关键技术和基本使用方法 要求:熟悉集群和云计算平台的工作原理、关键技术和基本使用方法 |
实验教学(包括上机学时、实验学时、实践学时) | 高性能计算与云计算是一门实践性很强的课程,除了系统的课堂理论学习外,还配有足够数量的实践内容,以巩固和加深学生对课程知识的整体理解。课程将通过在高性能计算机系统上的实践,学习和掌握高性能计算和云计算的基础知识,为在这领域的深入研究和应用开发打下基础。共包括16实验学时。 实验一(4学时):共享存储编程实践。通过OpenMP的实例编程,使得学生掌握高性能计算环境下的基于共享存储的并行程序编程方法。 实验二(4学时):分布存储编程实践。通过MPI的实例编程,使得学生掌握高性能计算环境下的基于分布存储的并行程序编程方法。 实验三(8学时):云计算技术实践,Hadoop平台和Map/Reduce编程实践。云计算技术实践。通过在Hadoop环境下的Map/Reduce的实例编程,使得学生熟悉Hadoop的编程环境,掌握用Map/Reduce编写并行计算程序的基本步骤,并了解Map/Reduce计算程序在Hadoop下的运行和调试机制。 |
教学方法 | 课程教学以课堂教学、实验教学、课外作业、综合讨论、网络以及授课教师的科研项目与积累等共同实施。 |
考核方式 | 本课程采用闭卷笔试结合实验和平时作业进行考核,其中闭卷笔试占该课程总评成绩的50%,实验技能考察占该课程总评成绩的40 %,学生的平时成绩(根据作业成绩、课堂提问与出勤率评定)占该课程总评成绩的10 %。 |
教材及参考书 | [1]何克晶,并行计算,人民邮电出版社,2019 [2]陈国良,并行计算:结构•算法•编程(第3版),高等教育出版社,2011 [3]Kai Hwang等著,武永卫等译,云计算与分布式系统:从并行处理到物联网,机械工业出版社,2013 [4]何克晶,云计算与大数据,人民邮电出版社,2019 [5]刘鹏,云计算(第三版),电子工业出版社,2015 |
制定人及制定时间 | 何克晶、董守斌,2019年5月 |
“High Performance Computing and Cloud Computing” Syllabus
《高性能计算与云计算》实验教学大纲
课程代码 | 045101911 |
课程名称 | 高性能计算与云计算 |
英文名称 | High Performance Computing and Cloud Computing |
课程类别 | 选修课 |
课程性质 | 选修 |
学时 | 总学时:48 实验学时:16 实习学时:0 其他学时:0 |
学分 | 2.5 |
开课学期 | 5 |
开课单位 | 计算机科学与工程学院 |
适用专业 | 网络工程、计算机科学与技术、信息安全 |
授课语言 | 英文授课 |
先修课程 | 操作系统、计算机组成与体系结构 |
毕业要求(专业培养能力) | 本课程对学生达到如下毕业要求有如下贡献: №3.设计/开发解决方案:能够设计针对复杂与计算机相关工程问题的解决方案,设计满足特定需求的系统、单元(部件)或工艺流程,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。 №4.研究:能够基于科学原理并采用科学方法对与计算机相关复杂工程问题进行研究,包括设计实验、分析与解释数据、并通过信息综合得到合理有效的结论。 №5.使用现代工具:能够针对与计算机相关复杂工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具,包括对复杂工程问题的预测与模拟,并能够理解其局限性。 |
课程培养学生的能力(教学目标) | (1)掌握高性能计算和云计算的基础理论知识,培养学生的实践能力。[3、5] (2)掌握高性能计算机的系统结构模型,对称多处理机(SMP)、大规模并行处理机(MPP)、集群系统(Cluster)和并行计算的性能评测并行算法的一般设计策略、基本设计技术和一般设计过程。[3、4] (3)掌握云计算的分布式大规模数据处理和云存储技术;掌握共享存储编程、分布存储编程和Map/Reduce编程等面向高性能计算与云计算应用的并行程序设计环境与工具。[4、5] |
课程简介 | 《高性能计算与云计算》是计算机专业的专业领域课程。高性能计算技术是计算机技术发展中的一项重要技术。通过该课程的学习,学生应该学习和掌握高性能计算的基础理论知识和实践经验,并为后续课程打下坚实基础。 本课程以高性能计算和云计算为主题,分为三大部分,第一部分是高性能计算的基础知识,第二部分是云计算的概念及核心技术,第三部分是高性能计算与云计算的软件支持-并行程序的设计原理与方法。主要课程内容包括高性能计算机的系统结构模型,对称多处理机(SMP)、大规模并行处理机(MPP)、集群系统(Cluster)和并行计算的性能评测并行算法的一般设计策略、基本设计技术和一般设计过程;云计算的分布式大规模数据处理和云存储技术;共享存储编程、分布存储编程和Map/Reduce编程等面向高性能计算与云计算应用的并行程序设计环境与工具。 课程强调融合高性能计算机结构、云计算技术、并行算法和并行编程为一体,力图反映高性能计算和云计算领域的最新成就和发展趋势。 学生除完成基本理论课程学习外,课程将通过在高性能计算机系统上的实践,学习和掌握高性能计算和云计算的基础知识。 |
主要仪器设备与软件 | 计算服务器;并行编程库与编译器;云计算环境与框架、虚拟机软件 |
实验报告 | 按要求撰写实验报告,实验报告内容应包括实验目的,实验内容,主要的实验过程,结果分析等 |
考核方式 | 根据实验报告考察实验技能,按百分制计入实验成绩。实验成绩的具体比例以教学大纲为准。 |
教材、实验指导书及教学参考书目 | [1]何克晶,并行计算,人民邮电出版社,2019 [2]陈国良,并行计算:结构•算法•编程(第3版),高等教育出版社,2011 [3]Kai Hwang等著,武永卫等译,云计算与分布式系统:从并行处理到物联网,机械工业出版社,2013 [4]何克晶,云计算与大数据,人民邮电出版社,2019 [5]刘鹏,云计算(第三版),电子工业出版社,2015 |
制定人及发布时间 | 何克晶、董守斌,2019年5月 |
《高性能计算与云计算》实验教学内容与学时分配
实验项目编号 | 实验项目名称 | 实验学时 | 实验内容提要 | 实验类型 | 实验要求 | 每组人数 | 主要仪器设备与软件 |
1 | 共享存储编程实践 | 4 | 通过OpenMP的实例编程,使得学生掌握高性能计算环境下的基于共享存储的并行程序编程方法。 | 综合性 | 必做 | 2 | 计算服务器;并行编程库与编译器 |
2 | 分布存储编程实践 | 4 | 通过MPI的实例编程,使得学生掌握高性能计算环境下的基于分布存储的并行程序编程方法。 | 综合性 | 必做 | 2 | 计算服务器;并行编程库与编译器 |
3 | 云计算技术实践,Hadoop平台和Map/Reduce编程实践 | 8 | 云计算技术实践。通过在Hadoop环境下的Map/Reduce的实例编程,使得学生熟悉Hadoop的编程环境,掌握用Map/Reduce编写并行计算程序的基本步骤,并了解Map/Reduce计算程序在Hadoop下的运行和调试机制。 | 综合性 | 必做 | 4 | 计算服务器;云计算环境与框架、虚拟机软件 |
4 | 高性能计算与云计算(探索性实验) | 8 | 高性能计算与云计算探索性实验。将已有的科研成果或来至企业的问题转化为实验教学内容,让学生面对一个开放性的问题(或者通过自己发现问题)并自行不断探索解决方案。 | 探索性 | 选做 | 4 | 计算服务器;并行编程库与编译器;云计算环境与框架、虚拟机软件 |
“High PerformanceComputing and Cloud Computing” Syllabus
“High Performance Computing and Cloud Computing” Experimental Teaching Arrangements
No. | Experiment Item | Class Hours | Content Summary | Category | Requirements | Number of StudentsEach Group | Instruments, Equipments and Software |
1 | Shared memory programming practice | 4 | By designing the OpenMP example programming, allow students to master the shared memory parallel programming in the high performance computing environment. | Comprehensive | Compulsory | 2 | Computing server; parallel programming library and compiler |
2 | Distributed memory programming practice | 4 | By designing the MPI examples programming, allow students to master distributed memory parallel programming in high performance computing environment. | Comprehensive | Compulsory | 2 | Computing server; parallel programming library and compiler |
3 | Cloud computing programming practice. The Hadoop platform and Map/Reduce programming practice | 8 | Cloud computing programming practice. Programming Map/Reduce examples in Hadoop environment allow students to familiar with the Hadoop programming environment and master the basic steps of parallel programming by using Map/Reduce, understand the running and debugging mechanisms of Map/Reduce programs in Hadoop. | Comprehensive | Compulsory | 4 | Computing server; cloud computing environment and framework, virtual machine software |
4 | High Performance Computing and Cloud Computing (Exploratory Experiments) | 8 | High-performance computing and cloud computing exploratory experiments. Transform existing research results or issues from the company into experimental content, let students face an open problem (or find problems by themselves) and continuously explore solutions. | Exploratory | Elective | 4 | Computing server; parallel programming library and compiler; cloud computing environment and framework, virtual machine software |