
《并行编程原理与实践》课程大纲一、课程名称:并行编程原理与实践二、课程性质:选修、理论课三、学时与学分:32学时,2学分四、课程先导课:C语言程序设计、离散数学、并行与串行数据结构及算法、算法、计算机组成原理、计算机系统结构、操作系统五、课程简介并行编程是典型的计算机理论与实践结合的产物,具备较为完备的理论体系,又随着并行计算环境及其应用场景变化而演进。本课程体系旨在从基础原理、编程环境与编程实践三个方面加深并行思维的形成与对并行编程软硬件环境的了解和熟悉,打好并行计算系统开发与应用基础。并行编程基础原理包括并行体系结构、并行编程模型、并行编程方法学以及程序性能等;并行编程环境与技术包括共享内存与OpenMP、消息传递与MPI、GPGPU与CUDA编程模型、大数据处理、数据流处理等;并行编程实践包括基于回溯的并行实践案例,以及实践项目介绍等。六、课程目标通过本课程的学习,帮助学生了解支持并行处理的体系结构基础知识;掌握并行编程的基本原理与方法步骤;了解各类并行编程环境的基础知识;具备一定的并行编程基本技能;具有一定的并行编程调试和优化能力。培养学生建立在计算机学科领域持续追求效率更高、质量更好的计算的创新意识;课程的具体目标包括:目标1:介绍现有主流并行编程环境与发展现状,使学生了解各类并行编程环境的基础知识,了解支持并行处理的体系结构,掌握并行编程的基本原理与方法步骤;目标2:通过课程的案例式教学,培养学生在并行计算方面分析与解决问题的能力;目标3:指导学生利用相应的软件工具仿照范例制作出性能优化的并行程序,满足一定的性能指标要求,使学生掌握某一主流并行软件的设计、开发、调试、分析与优化的基本技能;七、课程目标对毕业要求的支撑关系支撑的毕业要求二级指标点对应课程目标
《并行编程原理与实践》课程大纲 一、课程名称:并行编程原理与实践 二、课程性质:选修、理论课 三、学时与学分:32 学时,2 学分 四、课程先导课:C 语言程序设计、离散数学、并行与串行数据结构及算法、算 法、计算机组成原理、计算机系统结构、操作系统 五、课程简介 并行编程是典型的计算机理论与实践结合的产物,具备较为完备的理论体系, 又随着并行计算环境及其应用场景变化而演进。本课程体系旨在从基础原理、编 程环境与编程实践三个方面加深并行思维的形成与对并行编程软硬件环境的了 解和熟悉,打好并行计算系统开发与应用基础。并行编程基础原理包括并行体系 结构、并行编程模型、并行编程方法学以及程序性能等;并行编程环境与技术包 括共享内存与 OpenMP、消息传递与 MPI、GPGPU 与 CUDA 编程模型、大数据 处理、数据流处理等;并行编程实践包括基于回溯的并行实践案例,以及实践项 目介绍等。 六、课程目标 通过本课程的学习,帮助学生了解支持并行处理的体系结构基础知识;掌握 并行编程的基本原理与方法步骤;了解各类并行编程环境的基础知识;具备一定 的并行编程基本技能;具有一定的并行编程调试和优化能力。培养学生建立在计 算机学科领域持续追求效率更高、质量更好的计算的创新意识; 课程的具体目标包括: 目标 1:介绍现有主流并行编程环境与发展现状,使学生了解各类并行编程 环境的基础知识,了解支持并行处理的体系结构,掌握并行编程的基本原理与方 法步骤; 目标 2:通过课程的案例式教学,培养学生在并行计算方面分析与解决问题 的能力; 目标 3:指导学生利用相应的软件工具仿照范例制作出性能优化的并行程序, 满足一定的性能指标要求,使学生掌握某一主流并行软件的设计、开发、调试、 分析与优化的基本技能; 七、课程目标对毕业要求的支撑关系 支撑的毕业要求二级指标点 对应课程目标

1.1能将数学、自然科学和信息科学的语言工具用于计算机复杂工程目标1问题的表述。1.3能将软硬件知识、相关工程知识和模型方法用于推演和分析计算机复杂工程问题目标21.4能将软硬件知识、相关工程知识和模型方法用于计算机复杂工程问题解决方案进行比较和综合2.1能综合运用数学、自然科学、工程科学以及计算机科学的基本原理,识别、判断和表达计算机复杂工程问题的关键环节3.1掌握与计算机复杂工程问题有关的工程设计和软硬件产品开发全目标3周期、全流程的基本设计/开发方法和技术,了解影响设计目标和技术方案的多种因素八、教学设计及对课程目标的支持第一章简介本章的主要知识点包括什么是并行计算,为什么需要并行计算,以及为什么需要学习并行计算。从目前应用领域对计算性能的需求以及计算机软硬件技术的发展来看,可以预见,并行计算将在计算机技术中扮演越来越重要且不可代替的角色。1.教学目标1)掌握什么是并行计算;2)了解为什么需要并行计算;3)理解为什么需要学习并行编程。本章教学支持课程目标1和课程目标2。2.教学重点1)高性能、高速度、高吞吐量等概念的理解;2)摩尔定律、频率墙、指令层级并行墙、微电子技术限制一一多核处理器、网络技术飞速发展一一集群计算机等知识的掌握:3)传统串行程序无法在并行机上实现高性能运算,利用编译器发现串行程序中并行度能力有限,以及需要对不同的并行计算机研发新的高效的并行算法和程序等知识的理解。3.教学难点1)如何有效利用计算机资源实现高性能计算。2)信息革命产生的很多大计算量和大数据应用问题无法用单处理器计算机解决。4.教学环节设计围绕教学重点和教学难点,综合应用课堂讲授与讨论、课外阅读等教学形式
1.1 能将数学、自然科学和信息科学的语言工具用于计算机复杂工程 问题的表述。 目标 1 1.3 能将软硬件知识、相关工程知识和模型方法用于推演和分析计算 机复杂工程问题 1.4 能将软硬件知识、相关工程知识和模型方法用于计算机复杂工程 问题解决方案进行比较和综合 目标 2 2.1 能综合运用数学、自然科学、工程科学以及计算机科学的基本原 理,识别、判断和表达计算机复杂工程问题的关键环节 3.1 掌握与计算机复杂工程问题有关的工程设计和软硬件产品开发全 周期、全流程的基本设计/开发方法和技术,了解影响设计目标和技 术方案的多种因素 目标 3 八、教学设计及对课程目标的支持 第一章 简介 本章的主要知识点包括什么是并行计算,为什么需要并行计算,以及为什么 需要学习并行计算。从目前应用领域对计算性能的需求以及计算机软硬件技术的 发展来看,可以预见,并行计算将在计算机技术中扮演越来越重要且不可代替的 角色。 1.教学目标 1)掌握什么是并行计算; 2)了解为什么需要并行计算; 3)理解为什么需要学习并行编程。 本章教学支持课程目标 1 和课程目标 2。 2.教学重点 1)高性能、高速度、高吞吐量等概念的理解; 2)摩尔定律、频率墙、指令层级并行墙、微电子技术限制——多核处理器、 网络技术飞速发展——集群计算机等知识的掌握; 3)传统串行程序无法在并行机上实现高性能运算,利用编译器发现串行程 序中并行度能力有限,以及需要对不同的并行计算机研发新的高效的并行算法和 程序等知识的理解。 3.教学难点 1)如何有效利用计算机资源实现高性能计算。 2)信息革命产生的很多大计算量和大数据应用问题无法用单处理器计算机 解决。 4.教学环节设计 围绕教学重点和教学难点,综合应用课堂讲授与讨论、课外阅读等教学形式

1)讨论围绕并行计算的发展历程等问题展开。2)课外阅读阅读关于中国并行计算机发展历史的文献。第二章计算机体系结构本章的主要知识点包括简单介绍单处理器中的并行,包括流水线、超标量、乱序执行、向量运算、SIMD以及多线程等概念,进而对目前主流的MIMDMPP、多核等体系结构和典型代表机器进行介绍。重点强调并行体系结构设计思想的继承与改进。1.教学目标掌握知识点:1)单处理器系统2)多核处理器/共享多处理器系统:3)集群计算机/分布式多计算机系统4)加速器/GPU(accelerator/GPU);5)前沿发展(内存计算、NVM、SCM和TPU)。本章教学支持的课程目标为目标1和目标2。2.教学重点1)单处理器也是并行处理器一一指令层级并行:2)如何有效利用存储局部性:3)多核处理器共享的存储器层次结构;4)适合分布式多计算机系统的连接网络;5)一至两个实际集群计算机/分布式多计算机系统结构3.教学难点1)并行体系结构设计思想的继承与改进;2)一至两个实际GPU系统结构。4.教学环节设计围绕教学重点和教学难点,综合应用课堂讨论、课外阅读等教学形式。1)课堂讨论围绕不同并行体系结构的局限性展开。2)课外阅读阅读了解主流的MIMD、MPP、多核等体系结构和典型代表机器等的发展历程和结构异同
1)讨论 围绕并行计算的发展历程等问题展开。 2)课外阅读 阅读关于中国并行计算机发展历史的文献。 第二章 计算机体系结构 本章的主要知识点包括简单介绍单处理器中的并行,包括流水线、超标量、 乱序执行、向量运算、SIMD 以及多线程等概念,进而对目前主流的 MIMD、 MPP、多核等体系结构和典型代表机器进行介绍。重点强调并行体系结构设计思 想的继承与改进。 1.教学目标 掌握知识点: 1)单处理器系统; 2)多核处理器/共享多处理器系统; 3)集群计算机/分布式多计算机系统; 4)加速器/GPU (accelerator / GPU); 5)前沿发展(内存计算、NVM、SCM 和 TPU)。 本章教学支持的课程目标为目标 1 和目标 2。 2.教学重点 1)单处理器也是并行处理器——指令层级并行; 2)如何有效利用存储局部性; 3)多核处理器共享的存储器层次结构; 4)适合分布式多计算机系统的连接网络; 5)一至两个实际集群计算机/分布式多计算机系统结构 3.教学难点 1)并行体系结构设计思想的继承与改进; 2)一至两个实际 GPU 系统结构。 4.教学环节设计 围绕教学重点和教学难点,综合应用课堂讨论、课外阅读等教学形式。 1)课堂讨论 围绕不同并行体系结构的局限性展开。 2)课外阅读 阅读了解主流的 MIMD、MPP、多核等体系结构和典型代表机器等的发展历 程和结构异同

第三章并行算法设计与性能分析本章的主要知识点包括介绍并行编程模式的概念,从抽象的层面介绍几种经典的并行编程模式,包括共享主存模式、分布式主存模式、GPGPU的编程模式以及数据密集型计算模式。同时给出每种模式相应的编程工具简介。1.教学目标掌握知识点:1)逻辑并行编程模型,含MIMD编程模型、SIMD编程模型,以及mapreduce和tensorflow;2)并行算法设计,含加速比与额外开销、单机上的性能优化、两阶段并行算法设计过程,以及实例案例(减约运算、矢量内积、矩阵乘法、前缀运算、部分置换高斯消去法、简单稀疏矩阵计算以图计算基本概念);3)性能分析,含加速比、效率、扩展性与渐近分析等概念。本章教学支持的课程目标为目标2和目标3。2.教学重点和难点1)额外开销问题,包括通信/同步,额外计算,并行粒度,负载平衡,以及存储多层结构;2)与机器无关的并行算法设计,包括任务分割、数据依赖相关图、细粒度并行、并行复杂度,以及可扩展性;3)与机器相关的并行算法设计,包括针对MIMD的任务分配和映射、针对SIMD的任务分配和映射,以及图计算等。3.教学环节设计围绕教学重点和教学难点,综合应用课堂讲授与讨论。1)讨论本章课堂讨论主要围绕并行编程模式的特点进行分析和讨论展开。第四章共享内存的编程与OpenMP本章的主要知识点包括共享内存编程的基本概念,OpenMP简介,线程创建、并行循环处理、同步、数据环境、任务分配以及OpenMP并发处理等。1.教学目标掌握知识点:1)OpenMP概要;2)生成线程;3)并行循环;4)同步;
第三章 并行算法设计与性能分析 本章的主要知识点包括介绍并行编程模式的概念,从抽象的层面介绍几种经 典的并行编程模式,包括共享主存模式、分布式主存模式、GPGPU 的编程模式 以及数据密集型计算模式。同时给出每种模式相应的编程工具简介。 1.教学目标 掌握知识点: 1)逻辑并行编程模型,含 MIMD 编程模型、SIMD 编程模型,以及 mapreduce 和 tensorflow; 2)并行算法设计,含加速比与额外开销、单机上的性能优化、两阶段并行 算法设计过程,以及实例案例(减约运算、矢量内积、矩阵乘法、前缀运算、部 分置换高斯消去法、简单稀疏矩阵计算以图计算基本概念); 3)性能分析,含加速比、效率、扩展性与渐近分析等概念。 本章教学支持的课程目标为目标 2 和目标 3。 2.教学重点和难点 1)额外开销问题,包括通信/同步,额外计算,并行粒度,负载平衡,以及 存储多层结构; 2)与机器无关的并行算法设计,包括任务分割、数据依赖相关图、细粒度 并行、并行复杂度,以及可扩展性; 3)与机器相关的并行算法设计,包括针对 MIMD 的任务分配和映射、针对 SIMD 的任务分配和映射,以及图计算等。 3.教学环节设计 围绕教学重点和教学难点,综合应用课堂讲授与讨论。 1)讨论 本章课堂讨论主要围绕并行编程模式的特点进行分析和讨论展开。 第四章 共享内存的编程与 OpenMP 本章的主要知识点包括共享内存编程的基本概念,OpenMP 简介,线程创建、 并行循环处理、同步、数据环境、任务分配以及 OpenMP 并发处理等。 1.教学目标 掌握知识点: 1)OpenMP 概要; 2)生成线程; 3)并行循环; 4)同步;

5)数据环境;6)任务。本章教学支持的课程目标为目标1和目标3。2.教学重点和难点1)了解共享内存编程的基本概念;2)了解OpenMP并行编程基本方法3)共享内存编程模式的优点和局限性分析3.教学环节设计围绕上述教学实施主线,除讲授外,本章的教学还将通过课后实践练习、课外阅读等方式进行。1)讲练结合围绕OpenMP工具,边讲边练,确保重要教学内容教学目标的达成。为达到教学效果,实验指导由承担课程教学任务的任课教师承担。2)课外阅读OpenMP编程手册。第五章基于消息传递的并行编程本章的主要知识点包括基于消息传递的并行编程基本原理,包括发送和接收操作、MPI、消息传递接口、拓扑结构和嵌入机制、重叠通信、集合式通信以及处理器组与通信等。1.教学目标掌握知识点:1)消息传递基本概念;2)传送与接受操作;3) MPI;4)拓扑结构与嵌入机制;5)通讯与计算的重叠:6)通讯与计算的集合;7)集合式通讯。本章教学支持的课程目标为目标1和目标3。2.教学重点与难点1)了解基于消息传递的并行编程基本原理;2)掌握MPI基本编程方法。3.教学环节设计
5)数据环境; 6)任务。 本章教学支持的课程目标为目标 1 和目标 3。 2.教学重点和难点 1)了解共享内存编程的基本概念; 2)了解 OpenMP 并行编程基本方法。 3)共享内存编程模式的优点和局限性分析 3.教学环节设计 围绕上述教学实施主线,除讲授外,本章的教学还将通过课后实践练习、课 外阅读等方式进行。 1)讲练结合 围绕 OpenMP 工具,边讲边练,确保重要教学内容教学目标的达成。为达 到教学效果,实验指导由承担课程教学任务的任课教师承担。 2)课外阅读 OpenMP 编程手册。 第五章 基于消息传递的并行编程 本章的主要知识点包括基于消息传递的并行编程基本原理,包括发送和接收 操作、MPI、消息传递接口、拓扑结构和嵌入机制、重叠通信、集合式通信以及 处理器组与通信等。 1.教学目标 掌握知识点: 1)消息传递基本概念; 2)传送与接受操作; 3)MPI; 4)拓扑结构与嵌入机制; 5)通讯与计算的重叠; 6)通讯与计算的集合; 7)集合式通讯。 本章教学支持的课程目标为目标 1 和目标 3。 2.教学重点与难点 1)了解基于消息传递的并行编程基本原理; 2)掌握 MPI 基本编程方法。 3.教学环节设计

围绕上述教学实施主线,除讲授外,本章的教学还将通过课后实践练习、课外阅读等方式进行。1)讲练结合围绕MPI工具,边讲边练,确保重要教学内容教学目标的达成。为达到教学效果,实验指导由承担课程教学任务的任课教师承担。2)课外阅读MPI编程手册。第六章GPGPU和CUDA编程本章的主要知识点包括给出GPGPU和CUDA编程模型简介、CUDA线程的层次结构与内存的层次结构、CUDA与NvidiaGPU的映射以及一个简单的OpenCL实例。1.教学目标掌握知识点:1)GPGPU简介;2)CUDA编程模型;3)核;4)线程层次;5)内存层次;6)异构编程;7)计算容量;8)CPU与GPU的映射。本章教学支持的课程目标为目标1和目标3。2.教学重点1)了解GPGPU的基本概念;2)了解CUDA编程模型。3.教学难点1)掌握CUDA线程的层次结构与内存的层次结构、CUDA与NvidiaGPU的映射4.教学环节设计围绕上述教学实施主线,除讲授外,本章的教学还将通过课后实践练习、课外阅读等方式进行。1)讲练结合
围绕上述教学实施主线,除讲授外,本章的教学还将通过课后实践练习、课 外阅读等方式进行。 1)讲练结合 围绕 MPI 工具,边讲边练,确保重要教学内容教学目标的达成。为达到教 学效果,实验指导由承担课程教学任务的任课教师承担。 2)课外阅读 MPI 编程手册。 第六章 GPGPU 和 CUDA 编程 本章的主要知识点包括给出 GPGPU 和 CUDA 编程模型简介、CUDA 线程 的层次结构与内存的层次结构、CUDA 与 Nvidia GPU 的映射以及一个简单的 OpenCL 实例。 1.教学目标 掌握知识点: 1)GPGPU 简介; 2)CUDA 编程模型; 3)核; 4)线程层次; 5)内存层次; 6)异构编程; 7)计算容量; 8)CPU 与 GPU 的映射。 本章教学支持的课程目标为目标 1 和目标 3。 2.教学重点 1)了解 GPGPU 的基本概念; 2)了解 CUDA 编程模型。 3.教学难点 1)掌握 CUDA 线程的层次结构与内存的层次结构、CUDA 与 Nvidia GPU 的映射 4.教学环节设计 围绕上述教学实施主线,除讲授外,本章的教学还将通过课后实践练习、课 外阅读等方式进行。 1)讲练结合

围绕CUDA编程工具,边讲边练,确保重要教学内容教学目标的达成。为达到教学效果,实验指导由承担课程教学任务的任课教师承担。2)课外阅读CUDA编程手册。第七章大数据处理编程介绍批数据处理、图数据处理以及流数据处理的编程问题。包括批数据处理的应用背景、编程模式,以及MapReduce编程框架和案例分析;图数据处理的基本概念、挑战、图处理算法基本思路、图处理框架、图处理编程模型及案例、图划分,Pregel、PowerGraph、GraphChi、等图处理系统简介;流数据及应用介绍、实时流数据处理架构、流数据模式、应用模型、流数据处理中的并行编程步骤,以及并行编程生态,ApacheStorm、ApacheFlink、SparkStreaming简介1.教学目标掌握知识点:1)大数据基本概念;2)大规模数据处理;3)背景知识;4)大数据处理编程模型;5)MapReduce编程框架;6)图处理;7)基本概念;8)图处理框架;9)图编程模型;10)图划分;11)消息传递;12)调度;13)Pregel;14)PowerGraph;15)GrapChi;16)流处理;17)流数据与流应用;18)实时流处理;19)流数据处理生态。本章教学支持的课程目标为目标1-目标3
围绕 CUDA 编程工具,边讲边练,确保重要教学内容教学目标的达成。为 达到教学效果,实验指导由承担课程教学任务的任课教师承担。 2)课外阅读 CUDA 编程手册。 第七章 大数据处理编程 介绍批数据处理、图数据处理以及流数据处理的编程问题。包括批数据处理 的应用背景、编程模式,以及 MapReduce 编程框架和案例分析;图数据处理的 基本概念、挑战、图处理算法基本思路、图处理框架、图处理编程模型及案例、 图划分,Pregel、PowerGraph、GraphChi、等图处理系统简介;流数据及应用介 绍、实时流数据处理架构、流数据模式、应用模型、流数据处理中的并行编程步 骤,以及并行编程生态,Apache Storm、Apache Flink、Spark Streaming 简介 1.教学目标 掌握知识点: 1)大数据基本概念; 2)大规模数据处理; 3)背景知识; 4)大数据处理编程模型; 5)MapReduce 编程框架; 6)图处理; 7)基本概念; 8)图处理框架; 9)图编程模型; 10)图划分; 11)消息传递; 12)调度; 13)Pregel; 14)PowerGraph; 15)GrapChi; 16)流处理; 17)流数据与流应用; 18)实时流处理; 19)流数据处理生态。 本章教学支持的课程目标为目标 1-目标 3

2.教学重点和难点1)了解大数据背景下并行计算面临的挑战:2)掌握大数据系统中的并行计算基本模型与方法;3)了解大数据处理并行计算在典型系统中的实现3.教学环节设计围绕教学重点和教学难点,综合应用课堂讨论、课外阅读。1)讨论本章课堂讨论围绕大数据处理方法的步骤及步骤解决的问题等开展。2)课外阅读了解大数据处理方法的发展历程。第八章并行编程范例本章的主要知识点包括并行编程的典型案例。首先给出Akari问题描述,然后给出利用回溯法解决问题的串行编程方案,再介绍简单的并行化方案:Hotspot解决方案,进而给出细粒度的并行解决方案、粗粒度的并行解决方案以及合适粒度的并行解决方案,逐步展现并行化方案的改进策略对性能产生的影响。同时对这些方案进行算法分析与性能评价。让学生通过案例体会并行编程的一些基本方法和思路,加深对课程内容的理解,培养学生利用并行化思维分析和解决问题的能力。1.教学目标掌握知识点:1)基于回溯法的并行计算;2)Akari问题;3)Akari问题求解;4)Akari问题并行求解;5)并行计算模式:6)并行编程问题;7)模式与语言;8)软件结构与计算模型;9)算法策略;10)实现策略;11)执行策略。本章教学支持的课程目标为目标1和目标3。2.教学重点
2.教学重点和难点 1)了解大数据背景下并行计算面临的挑战; 2)掌握大数据系统中的并行计算基本模型与方法; 3)了解大数据处理并行计算在典型系统中的实现 3.教学环节设计 围绕教学重点和教学难点,综合应用课堂讨论、课外阅读。 1)讨论 本章课堂讨论围绕大数据处理方法的步骤及步骤解决的问题等开展。 2)课外阅读 了解大数据处理方法的发展历程。 第八章 并行编程范例 本章的主要知识点包括并行编程的典型案例。首先给出 Akari 问题描述,然 后给出利用回溯法解决问题的串行编程方案,再介绍简单的并行化方案:Hotspot 解决方案,进而给出细粒度的并行解决方案、粗粒度的并行解决方案以及合适粒 度的并行解决方案,逐步展现并行化方案的改进策略对性能产生的影响。同时对 这些方案进行算法分析与性能评价。让学生通过案例体会并行编程的一些基本方 法和思路,加深对课程内容的理解,培养学生利用并行化思维分析和解决问题的 能力。 1.教学目标 掌握知识点: 1)基于回溯法的并行计算; 2)Akari 问题; 3)Akari 问题求解; 4)Akari 问题并行求解; 5)并行计算模式; 6)并行编程问题; 7)模式与语言; 8)软件结构与计算模型; 9)算法策略; 10)实现策略; 11)执行策略。 本章教学支持的课程目标为目标 1 和目标 3。 2.教学重点

1)通过案例体会并行编程的一些基本方法和思路:2)加深对并行计算思维的理解。3.教学难点1)培养学生利用并行化思维分析和解决问题的能力。4.教学环节设计除课堂讲授外,还将综合应用课外实践、课外阅读等方式辅助教学。1)课外实践仿照案例,利用掌握的并行编程工具进行并行算法的设计和分析,并通过实验进行验证。2)课外阅读了解大数据处理方法的发展历程。九、教与学1.教学方法课程通过传统课堂授课、实践项目相结合的方式进行教学。课程实践项目指导学生利用相应的软件工具仿照范例制作出性能优化的并行程序,满足一定的性能指标要求,使学生掌握某一典型的并行编程环境,比如MPI、OpenMP、MapReduce和CUDA的设计、开发、调试、分析与优化的基本技能。通过课程学习与实验,培养学生在并行计算方面分析与解决问题的能力。积极推行线下教学和线上服务结合(线上资源服务站,QQ群,课程直播,高级分布式系统微信公众号文章推送)。创新考试方式,建立在计算机学科领域持续追求效率更高、质量更好的计算的创新意识。2.学习方法本课程依托集群环境(有条件的高校),以及EduCoder等教育云平台(没有自建集群的高校)等搭建综合实验平台,让学生动手进行并行编程,运行和性能测试与分析,从而建立对并行计算理论更加深刻认识。通过理论授课与学生课后上机实践相结合,帮助学生更好消化吸收课程知识,充分理解和认知并行编程技术核心。通过利用pthread、OpenMP、MPI、CUDA等编程环境的某经典并行计算问题(比如矩阵乘法),基于回溯的并行案例实践,增强学生的动手能力十、学时分配序号主要内容学时分配12第一章简介82第二章计算机体系结构310第三章并行算法设计与性能分析
1)通过案例体会并行编程的一些基本方法和思路; 2)加深对并行计算思维的理解。 3.教学难点 1)培养学生利用并行化思维分析和解决问题的能力。 4.教学环节设计 除课堂讲授外,还将综合应用课外实践、课外阅读等方式辅助教学。 1)课外实践 仿照案例,利用掌握的并行编程工具进行并行算法的设计和分析,并通过实 验进行验证。 2)课外阅读 了解大数据处理方法的发展历程。 九、教与学 1.教学方法 课程通过传统课堂授课、实践项目相结合的方式进行教学。课程实践项目指 导学生利用相应的软件工具仿照范例制作出性能优化的并行程序,满足一定的性 能指标要求,使学生掌握某一典型的并行编程环境,比如 MPI、OpenMP、 MapReduce 和 CUDA 的设计、开发、调试、分析与优化的基本技能。通过课程 学习与实验,培养学生在并行计算方面分析与解决问题的能力。积极推行线下教 学和线上服务结合(线上资源服务站,QQ 群,课程直播,高级分布式系统微信 公众号文章推送)。创新考试方式,建立在计算机学科领域持续追求效率更高、 质量更好的计算的创新意识。 2.学习方法 本课程依托集群环境(有条件的高校),以及 EduCoder 等教育云平台(没 有自建集群的高校)等搭建综合实验平台,让学生动手进行并行编程,运行和性 能测试与分析,从而建立对并行计算理论更加深刻认识。通过理论授课与学生课 后上机实践相结合,帮助学生更好消化吸收课程知识,充分理解和认知并行编程 技术核心。通过利用 pthread、OpenMP、MPI、CUDA 等编程环境的某经典并行 计算问题(比如矩阵乘法),基于回溯的并行案例实践,增强学生的动手能力 十、学时分配 序号 主要内容 学时分配 1 第一章 简介 2 2 第二章 计算机体系结构 8 3 第三章 并行算法设计与性能分析 10

62第四章共享内存的编程和OpenMP27第五章基于消息传递的并行编程82第六章GPGPU和CUDA编程49第六章大数据处理编程210第八章并行编程范例32总计十一、课程考核与成绩评定1.课程成绩构成课程最终成绩由考勤与作业成绩、课程实践成绩综合而成,各部分成绩的比例如下:1)考勤与作业成绩:10-20%。考勤主要检查学生遵守学习相关规定,按时参加课堂学习的情况。作业将引导学生复习和巩固讲授的内容(基本理论、基本方法、基本理论分析与计算、课外阅读报告等),主要考查作业完成率和质量。2)课堂讨论成绩:10-20%。主要考察学生在课堂讨论中的参与度与积极度。3)课程实践成绩:60-70%。主要考核基础知识和基本能力的掌握程度,是对学生学习情况的全面检验。考试强调对基本概念、基本方法和技术的掌握,并通过综合型编程题目考核学生综合运用所学知识解决复杂工程问题的能力。考课程考核成绩评定如表1所示。表1并行编程原理与实践课程考核与成绩评定考核与评价方式及成绩比例(约)课程目标作业课堂讨论期末考试1525352523X5252.考核与评价标准1)作业成绩考核与评价标准表2作业考核与成绩评定评价标准良好优秀中-及格不及格按时提交作业,概念按时提交作业,概念按时提交作业,概念未按时交作业,概念准确,计算结果正准确,存在少量错基本准确,计算结果欠准确,计算结果错确,分析充分,论述误,分析较充分,论存在一些错误,论述误较多。清晰,层次分明。述清晰,层次分明。基本清晰。2)课堂讨论成绩考核与评价标准根据学生参与讨论的数量和质量来评定。3)课程实践成绩评定
6 第四章 共享内存的编程和 OpenMP 2 7 第五章 基于消息传递的并行编程 2 8 第六章 GPGPU 和 CUDA 编程 2 9 第六章 大数据处理编程 4 10 第八章 并行编程范例 2 总计 32 十一、课程考核与成绩评定 1.课程成绩构成 课程最终成绩由考勤与作业成绩、课程实践成绩综合而成,各部分成绩的比 例如下: 1)考勤与作业成绩:10-20%。考勤主要检查学生遵守学习相关规定,按时 参加课堂学习的情况。作业将引导学生复习和巩固讲授的内容(基本理论、基本 方法、基本理论分析与计算、课外阅读报告等),主要考查作业完成率和质量。 2)课堂讨论成绩:10-20%。主要考察学生在课堂讨论中的参与度与积极度。 3)课程实践成绩:60-70%。主要考核基础知识和基本能力的掌握程度,是 对学生学习情况的全面检验。考试强调对基本概念、基本方法和技术的掌握,并 通过综合型编程题目考核学生综合运用所学知识解决复杂工程问题的能力。考 课程考核成绩评定如表 1 所示。 表 1 并行编程原理与实践课程考核与成绩评定 课程目标 考核与评价方式及成绩比例(约) 作业 课堂讨论 期末考试 1 3 5 25 2 3 5 25 3 4 5 25 2.考核与评价标准 1)作业成绩考核与评价标准 表 2 作业考核与成绩评定 评价标准 优秀 良好 中-及格 不及格 按时提交作业,概念 准确,计算结果正 确,分析充分,论述 清晰,层次分明。 按时提交作业,概念 准确,存在少量错 误,分析较充分,论 述清晰,层次分明。 按时提交作业,概念 基本准确,计算结果 存在一些错误,论述 基本清晰。 未按时交作业,概念 欠准确,计算结果错 误较多。 2)课堂讨论成绩考核与评价标准 根据学生参与讨论的数量和质量来评定。 3)课程实践成绩评定