本科生课程大纲
课程名称
并行编程原理与程序设计
课程代码
081513101257
课程属性
专业知识
课时/学分
48/2.5
课程性质
必修
实践学时
16
责任教师
课外学时
48(32+16)
课程属性:公共基础/通识教育/学科基础/专业知识/工作技能,课程性质:必修、选修
一、 课程介绍                                                 
1.课程描述:
《并行编程原理与程序设计》是地球信息科学与技术专业的必修课,也是勘查技术与工程专业的选修课。
地球物理信息解译中的计算量十分庞大,常规串行电脑和软件无法解决地球物理资料的解译问题,必须采用并行算法合并行计算机来解决地球物理资料的处理、解释合反演工作。目前,微
机和GPU机在地球物理领域的应用日益广泛,“地球信息科学与技术”和“勘查技术与工程”专业必需掌握并行编程的基本原理与方法才能实现地学信息高效解译得目的,本课程主要学习基于微机的MPI程序设计方法和基于GPU集的CUDA程序设计方法,并进行适当的上机实践。通过本课程的学习,可使学生了解和掌握大型科学与工程问题中的基本并行编程技术,初步具备编写大型并行应用程序的能力。
2.设计思路:
本课程的讲授内容主要包括两大部分:
第一部分:MPI并行程序设计部分:
第一章 并行程序设计基础
主要内容:并行计算;并行编程模型与并行语言;并行算法
第二章 MPI简介
主要内容:什么是MPI;MPI的目的,产生与发展;MPI的语言绑定;目前主要的MPI实现;
SPMD并行机上并行程序的执行过程
第三章 第一个MPI程序
主要内容:MPI实现的“Hello World”;c与Fortran语言的MPI程序的一些惯例
第四章 六个接口构成的MPI子集
主要内容:子集介绍;MPI预定义的数据类型;MPI数据类型匹配与数据转换;MPI消息;
第五章 简单的MPI程序示例
主要内容:获取机器名字和MPI版本号;数据接力传送;任意进程间互相问候,任意源和任意标识的使用;编写安全的MPI程序
第六章 MPI并行程序的两种基本模式
主要内容:对等模式的MPI程序设计;主从模式的MPI程序设计,标准通信模式的特点与消息传递过程
第七章 不同通信模式MPI并行程序设计
主要内容:四种通信模式(标准,缓存,同步与就绪),了解集中通信模式的划分依据,掌握四种通信模式的优缺点及实现方式
第八章 非阻塞通信MPI程序设计
主要内容:阻塞通信;非阻塞通信简介;非阻塞标准发送与接收;非阻塞通信与其他三种通信模式的结合;非阻塞通信的完成
第九章 组通信MPI程序设计
主要内容:组通信的消息通信功能,同步功能和计算功能;广播;收集;散发;组收集;全互换、同步、归约、组归约、归约并散发操作的函数形式、使用方法与执行过程;几个相关示例程序
第二部分:CUDA并行程序设计部分:
第一章 引言
主要内容:异构并行算法,现代GPU的体系结构,为什么需要更高的速度和并行化,应用程序加速,并行编程语言和模型
第二章 GPU计算的发展历程
主要内容:图形流水线的发展,固定功能的图形流水线时代,可编程实时图形流水线的发展,图形与计算结合的处理器,GPGPU:一个中间步骤,GPU计算,可扩展的GPU,发展近况,未来的发展趋势
第3章  CUDA简介
主要内容:PC架构,GPU硬件结构,CPU与GPU,数据并行性,CUDA的程序结构
第4章 CUDA环境搭建
主要内容:简介,在Windows下安装软件开发工具包,Visual Studio,工程,64位用户,创建工程,Linux,安装调试器,编译模型,错误处理
第5章 线程网格、线程块以及线程,
主要内容:简介,线程,问题分解,CPU与GPU的不同,任务执行模式,GPU线程,CUDA内核,线程块,线程网格,跨幅与偏移,X与Y方向的线程索引,线程束,分支,GPU的利用率,线程块的调度
第6章  数据并行执行模型,
主要内容:向量加法kernel函数,设备全局存储器与数据传输,kernel函数与线程,函数声明,启动kernel函数,预定义变量,CUDA的线程组织,线程与多维数据映射,矩阵乘法——一个更加复杂的kernel函数,线程同步和透明的可扩展性,线程块的资源分配,线程调度与容许时延
第三部分:上机实践部分:
本课程实践部分的设计思路为:以并行程序设计的方法为主线,结合地学信息处理中的实际问题,让学生掌握MPI和CUDA程序设计的基本方法和技能。课程内容包括三个模块:MPI和CUDA程序设计软件环境的设置与相关软件的安装、数值积分的并行求解设计与编程、声波方程正演模拟问题的并行设计与编程。
(1)MPI和CUDA程序设计软件环境的设置与相关软件的安装:
实现不同计算机硬件和操作系统条件下MPI软件的安转与编程环境的设置,实现不同计算机硬件和操作系统条件下CUDA软件的安装与编程环境的设置。
(2)数值积分的并行求解设计与编程:
给定地学信息解译中的常见的数值积分问题并设计其并行求解方案,实现该类问题的并行高效求解。
(3)声波方程正演模拟问题的并行设计与编程:
给定地学信息解译中的常见的二维声波方程正演模拟问题并设计其并行求解方案,实现该类问题的并行高效求解。
线上编程课排名3. 课程与其他课程的关系
先修课程:C程序设计,或FORTRAN程序设计。
本课程还与《弹性波动力学》、《电磁场论》、《地球物理资料处理》等课程密切相关,本课程是解决上述课程中大型科学计算问题的必不可少的工具。
二、课程目标
本课程的目标是培养学生的并行编程思路和能力,初步具备编写大型并行应用程序的能力,培养能用并行计算机和并行技术解决地球物理信息解译问题的工程技术人才。
(1)掌握MPI程序设计基本思路与方法,掌握MPI并行软件的安转与并行编程环境的设置方法。
(2)掌握CUDA程序设计基本思路与方法,掌握CUDA并行软件的安转与并行编程环境的设置方法。
(3)培养学生并行程序设计能力,通过上机训练,达到利用并行计算机和并行程序解决复杂工程问题的能力。
三、学习要求
《并行编程原理与程序设计》是一门实践性较强课程作为一名地球物理方向的大学生,不仅需要一定的数、理和地质、地球物理的基础,同时还需要掌握利用先进的并行计算机解决地学问题的基本技能与方法。通过本课程教学,一方面要掌握并行编程的基本思路与方法,另一方面还要培养和提高学生的实践能力,能够编写并行程序解决地学信息解译中的工程问题。要达到以上学习任务,学生必须:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。