《高性能计算与云计算》教学大纲
课程代码 | 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
Course Code | 045101911 |
Course Title | High Performance Computing and Cloud Computing |
Course Category | Elective Courses |
Course Nature | Elective Course |
Class Hours | Total hours: 48 Experimental hours: 16 Internship hours: 0 Other hours: 0 |
Credits | 2.5 |
Semester | 5 |
Institute | School of Computer Science and Engineering |
ProgramOriented | Network Engineering, Computer Science and Technology, Information Security |
Teaching Language | Chinese |
Prerequisites | Operating Systems , Computer Organization and Architecture |
Student Outcomes (Special Training Ability) | №3.Design / Development Solutions: An ability to design solutions for computer engineering complex problems, to design computer hardware and software systems that meet with specific requirements, and to embody innovation awareness in the design process and take into account social, health, safety, cultural and environmental factors. №4.Research: An ability to develop computer system-related knowledge and research computer engineering complex issues, to develop the basic capacity of computer systems research & development, systematic cognitive and practice, master the Bottom-up and top-down problem analysis methods. №5.Applying Modern Tools: An ability to develop, select and use appropriate technologies, resources, modern engineering tools and information technology tools for complex computer engineering issues. |
Course Objectives | (1) Learn and master the basic theoretical knowledge and practical experience in high performance computing and cloud computing. [3, 5] (2) Learn and master the system architecture of high performance computing system, the performance evaluation of parallel computing, the fundamental techniques, methodology and basic process of parallel algorithms design. [3, 4] (3) Learn and master the large scale distributed data processing technique and cloud storage of cloud computing, the foundation of parallel programming, shared memory programming, message passing programming and Map/Reduce programming which oriented for the application of high performance computing and cloud computing. [4, 5] |
Course Description | This course is a specialty-related elective course in the professional field of computer science, which is an introduction to the key techniques of high performance computing and cloud computing. These techniques play important roles in the development of computer science and technology. Through this course, students should learn and master the basic theoretical knowledge and practical experience in high performance computing and cloud computing, and lay a solid foundation for subsequent courses. This course focuses on the state-of-the-art technologies of high performance computing (HPC) and cloud computing. The course contains three parts. The first part is about the foundational knowledge of high performance computing. The second part introduces the concept and key techniques of cloud computing. The final part reveals the design principles and methods of the parallel programming that is the software supporting of high performance computing and cloud computing. The course covers the following contents: the system architecture of high performance computing system, the performance evaluation of parallel computing; the fundamental techniques, methodology and basic process of parallel algorithms design; large scale distributed data processing technique and cloud storage of cloud computing; foundation of parallel programming, shared memory programming, message passing programming and Map/Reduce programming which oriented for the application of high performance computing and cloud computing. The curriculum emphasizes the integration of high-performance computer architecture, cloud computing, parallel algorithms and parallel programming, and seeks to reflect latest achievements and development trend of high performance computing and cloud computing. Besides homework, there are extensive hands-on labs. By through the practice on high performance computing systems, the student may has the depth understanding of hardware, software, theory and practice of high performance computing and cloud computing, and learn to apply related technologies to demanding problems and exploit high performance computing and cloud computing infrastructure to model and develop applications. |
Teaching Content and Class Hours Distribution | Chapter 1: Introduction (3 academic hours) Keystones:The concept, current status and development, independently controllable, safe and reliable cloud technology, applications Difficulties: The development of high-performance computing technology and its relationship to cloud computing technology, independently controllable, safe and reliable cloud technology Requirements: Students should understand the basic concepts, latest trends, and related technologies and applications. Chapter 2: Parallel Computer Architecture (3 academic hours) Keystones:System interconnect technology; storage access model and hierarchical architecture; symmetric multiprocessor (SMP), massively parallel processing (MPP), and cluster system (Cluster). Difficulties:Static interconnect and dynamic interconnect, storage access hierarchical architecture Requirements:Students should be familiar with a variety of parallel computer architectures, and examples for practical applications, also, master the basic principles and methods of system interconnection and understand the memory access models and the hierarchical architecture. Chapter 3: parallel Computing Models and Performance Evaluation (3 academic hours) Keystones:Parallel computing models including PRAM, BSP and the LogP; the definition of workloads, speedup and scalability, limited speedup for load, time and storage. Difficulties:Parallel computing models,Scalability Requirements:Students should understand the concept of parallel computing models, and the similarities and differences between them, master the basic application modeling methods by applying the computing models, understand performance evaluation for parallel computing, master the ways of calculating the speedup Chapter 4: Parallel Algorithms Design (6 academic hours) Keystones:Parallel algorithm design techniques include balanced tree method, doubling technology, the strategy of divide-and-conquer, divided principles and pipeline technology; parallel algorithm design methodology PCAM: Partitioning, Communication, Agglomeration and Mapping Difficulties:divide-and-conquer strategy, division principle; parallel algorithm design and performance comparison of matrix multiplication Requirements:Students should understand and use the basic technologies of parallel algorithm design for parallel algorithm design and implementation, master the shortest path, sorting, string matching, matrix multiplication, the design ideas of the classical parallel algorithms, understand the methodology of parallel algorithm design Chapter 5: Distributed Large Scale Data Processing (6 academic hours) Keystones:The concept of distributed large-scale data processing, programming model; principles and operating mechanism for Map/Reduce, parallel algorithm design based on the Map/Reduce. Difficulties:Load balance and fault tolerance mechanisms for Map/Reduce, the shortest path algorithm implementation based on Map/Reduce. Requirements:Students should skillfully master the principles and operating mechanisms of Map/Reduce, master the Map/Reduce implementation of parallel algorithms of word frequency statistics, sorting, string matching, and shortest path. Chapter 6: Cloud Computing and Cloud Storage (3 academic hours) Keystones:Cloud Computing, Virtual Machine, The concept of cloud storage, distributed storage system architecture, fault-tolerant mechanisms and system management technology; architecture and key technologies of distributed file system Difficulties:Virtual Machine technology, Read and write operation process for distributed file system. Requirements:Students should understand the concept of cloud computing and virtual machines, and understand the system architecture and fault-tolerant mechanism for cloud storage, master the method of accessing to the distributed file system HDFS (Hadoop Distributed File System). Chapter 7: Shared Memory Programming (3 academic hours) Keystones:Parallel programming style, shared memory programming principle; the programming model OpenMP, compiler directives, control structures and data clause Difficulties:Parallel region and work-sharing constructs, the shared object access Requirements: Students should familiar with the basic concepts and programming model of OpenMP, and grasp the main compiler directives, the control structures and data scope attribute clauses of OpenMP. Chapter 8: Message Passing Programming (3 academic hours) Keystones:Message passing programming principle, the ways of communication among processes; MPI programming model, communication function Difficulties: communication mode, non-blocking operation Requirements: Students should master the operating principle of the MPI programming and related technologies, familiar with its core functions and operating environment, and master the MPI implementation of matrix multiplication. Chapter 9: High Performance Computing and Cloud Computing Platform (2 academic hours) Keystones:high performance computing cluster, cloud computing platform and programming environment Difficulties: key technologies for cluster and cloud computing platform, and know how to use them Requirements: Students should familiar with the operating principle and key technologies for cluster and cloud computing platform, and know how to use them |
Experimental Teaching | The high performance computing and cloud computing is a practical course. In addition to theoretical learning, there is a sufficient number of practical content in order to consolidate and deepen students' overall understanding of the course. Through the practice for high-performance computer system, students will learn and master the basic skills of high performance computing and cloud computing in the course, and lay the foundation for in-depth study and application exploitation in this field. Experiment 1 (4 academic hours): Shared memory programming practice. By designing the OpenMP example programming, allow students to master the shared memory parallel programming in the high performance computing environment. Experiment 2 (4 academic hours): Distributed memory programming practice. By designing the MPI examples programming, allow students to master distributed memory parallel programming in high performance computing environment. Experiment 3 (8 academic hours): Cloud computing programming practice. The Hadoop platform and Map/Reduce programming practice. 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. |
Teaching Method | Classroom teaching, experimental teaching, homework, comprehensive discussion, network and research projects. |
Examination Method | This course adopts closed book examination combined with experiments and homework for assessment. Closed book examination accounts for 50% of the total grades of the course, experimental skills assessment accounts for 40% of the total grades of the course, and the usual scoring of student (including the homework scores, classroom activities, and attendance rate) accounts for 10% of the total grades of the course. |
Teaching Materials and Reference Books | [1]Kejing He, Parallel Computing, Posts & Telecom Press, 2019 [2]Guoliang Chen, Parallel Computing: Architecture, Algorithm, Programming (3rd edition), Higher Education Press, 2011 [3] Kai Hwang etc., Yongwei Wu etc., Distributed and Cloud Computing: From Parallel Processing to the Internet of Things, Mechanical Industry Press, 2013 [4]Kejing He, Cloud Computing and Big Data, Posts & Telecom Press, 2019 [5]Peng Liu, Cloud Computing (3rd edition), Electronics Industry Press, 2015 |
Prepared by Whom and When | Kejing He, Shoubin Dong, 2019.5 |
《高性能计算与云计算》实验教学大纲
课程代码 | 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
Course Code | 045101911 |
Course Title | High Performance Computing and Cloud Computing |
Course Category | Elective Courses |
Course Nature | Elective Course |
Class Hours | Total hours: 48 Experimental hours: 16 Internship hours: 0 Other hours: 0 |
Credits | 2.5 |
Semester | 5 |
Institute | School of Computer Science and Engineering |
Program Oriented | Network Engineering, Computer Science and Technology, Information Security |
Teaching Language | Chinese |
Prerequisites | Operating Systems , Computer Organization and Architecture |
Student Outcomes (Special Training Ability) | №3.Design / Development Solutions: An ability to design solutions for computer engineering complex problems, to design computer hardware and software systems that meet with specific requirements, and to embody innovation awareness in the design process and take into account social, health, safety, cultural and environmental factors. №4.Research: An ability to develop computer system-related knowledge and research computer engineering complex issues, to develop the basic capacity of computer systems research & development, systematic cognitive and practice, master the Bottom-up and top-down problem analysis methods. №5.Applying Modern Tools: An ability to develop, select and use appropriate technologies, resources, modern engineering tools and information technology tools for complex computer engineering issues. |
Teaching Objectives | (1) Learn and master the basic theoretical knowledge and practical experience in high performance computing and cloud computing. [3, 5] (2) Learn and master the system architecture of high performance computing system, the performance evaluation of parallel computing, the fundamental techniques, methodology and basic process of parallel algorithms design. [3, 4] (3) Learn and master the large scale distributed data processing technique and cloud storage of cloud computing, the foundation of parallel programming, shared memory programming, message passing programming and Map/Reduce programming which oriented for the application of high performance computing and cloud computing. [4, 5] |
Course Description | This course is a specialty-related elective course in the professional field of computer science, which is an introduction to the key techniques of high performance computing and cloud computing. These techniques play important roles in the development of computer science and technology. Through this course, students should learn and master the basic theoretical knowledge and practical experience in high performance computing and cloud computing, and lay a solid foundation for subsequent courses. This course focuses on the state-of-the-art technologies of high performance computing (HPC) and cloud computing. The course contains three parts. The first part is about the foundational knowledge of high performance computing. The second part introduces the concept and key techniques of cloud computing. The final part reveals the design principles and methods of the parallel programming that is the software supporting of high performance computing and cloud computing. The course covers the following contents: the system architecture of high performance computing system, the performance evaluation of parallel computing; the fundamental techniques, methodology and basic process of parallel algorithms design; large scale distributed data processing technique and cloud storage of cloud computing; foundation of parallel programming, shared memory programming, message passing programming and Map/Reduce programming which oriented for the application of high performance computing and cloud computing. The curriculum emphasizes the integration of high-performance computer architecture, cloud computing, parallel algorithms and parallel programming, and seeks to reflect latest achievements and development trend of high performance computing and cloud computing. Besides homework, there are extensive hands-on labs. By through the practice on high performance computing systems, the student may has the depth understanding of hardware, software, theory and practice of high performance computing and cloud computing, and learn to apply related technologies to demanding problems and exploit high performance computing and cloud computing infrastructure to model and develop applications. |
Instruments and Equipments | Computing server; parallel programming library and compiler; cloud computing environment and framework, virtual machine software |
Experiment Report | Write an experimental report as required. The content of the experimental report should include the purpose of the experiment, the content of the experiment, the main experimental process, the analysis of the results, etc. |
Assessment | The experimental skills are examined according to the experimental report, and the experimental scores are included into the final scores. The specific percentage of the experimental scores is defined in the syllabus. |
Teaching Materials and Reference Books | [1]Kejing He, Parallel Computing, Posts & Telecom Press, 2019 [2]Guoliang Chen, Parallel Computing: Architecture, Algorithm, Programming (3rd edition), Higher Education Press, 2011 [3] Kai Hwang etc., Yongwei Wu etc., Distributed and Cloud Computing: From Parallel Processing to the Internet of Things, Mechanical Industry Press, 2013 [4]Kejing He, Cloud Computing and Big Data, Posts & Telecom Press, 2019 [5]Peng Liu, Cloud Computing (3rd edition), Electronics Industry Press, 2015 |
Prepared by Whom and When | Kejing He, Shoubin Dong, 2019.5 |
“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 |