科学与工程中的并行计算课程教学大纲
《并行计算》实验教学大纲

《并行计算》实验教学大纲课程名称:并行计算英文名称:Parallel Computing课程编号:23152024课程性质:课程类型:专业选修是否为独立设课的实验课:否适用专业:软件工程专业学时与学分:总学时:72 总学分:3.5 实验学时:16 实验学分:0.5 执笔人:陆克中制定时间:2012-3-12一、实验课的任务、性质与目的《并行计算》是一门实践性很强的课程,除了系统的课堂理论学习外,还配有足够数量的实践内容,以巩固和加深学生对并行算法理论、设计技术、分析方法和具体实现等各个环节的整体理解。
通过课程实践,强化学生“结构—算法—编程”一体化学习方法的意识,充分理解对于求解一个给定问题的任何并行算法,都必须采用某种并行编程语言,最终运行在一台具体的并行计算机上。
根据并行计算课程的要求,其实验教学的要求如下:(1) 熟悉三种以上的主流并行计算平台,包括共享存储的多处理机、分布存储的多计算机和目前流行的PC机群,要求学生能够使用上述几种并行计算平台所提供的硬/软件环境及工具来开展自己的实验工作。
(2) 掌握至少两种并行程序设计语言标准:即分布存储的MPI和共享存储的OpenMP。
对面向大型科学和工程计算的HPF(高性能Fortran)也应尽量了解和熟悉。
(3) 选择某些典型的非数值并行算法和数值并行算法,使用上述的并行编程语言标准,至少在PC机群上编程调试、分析和运行它们。
(4) 为了入门,选用课程中简单的计算π的样本程序为出发点,通过使用不同的并行程序设计模型和不同的并行编程语言,在不同的硬件编程环境上改造和重现,以便为进一步的实践打下基础。
学习本课程的过程中,这些实践环节是非常必要的和重要的,它可以激发学生学习并行计算的积极性,缩小理论教学和实际应用能力之间的差距,引导学生进入一个思考和探索的世界,在这个世界里,他们是学习的主动参与者,而不再是被动的接受者。
二、主要仪器设备及环境硬件设备:机群计算机软件环境:LinuxMPICHPVMHPF三、实验项目的设置与实验内容四、教材、实验教材(指导书)[1]陈国良,《并行计算—结构.算法.编程(第3 版)》,高等教育出版社,2003[2]陈国良等,《并行算法实践》,高等教育出版社,2003五、考核方式与评分办法1 设计型实验考核方式:现场检查与实验报告评分方法:⑴实验态度20分⑵实验设计40分⑶实验结果40分2 验证型实验考核方式:实验报告与现场检查评分方法:⑴实验态度20分⑵实验结果80分六、大纲审核人:张席。
并行计算讲义

燕山大学课程讲义并行计算导论授课人:郭栋梁学时:32学时其中实验课:8学时三级项目:16学时第1章引言概述单处理器计算机即将成为过时的概念.我们需要考虑如下因素来着手改进提高计算机的性能:(1)单纯依靠单处理器很难提升现有计算机的性能.即使有一个性能十分强大的单处理器,其功耗也让人无法接受.想要提升计算机的性能,更加可行的方法是同时使用多个简单处理器,它所能达到的性能可能是现有单处理器计算机性能的几千倍。
(2)观察结果显示,除非使用并行处理技术,一个程序在一台型号更新的单处理器计算机上的运行速度,可能比在旧的计算机上的运行速度更慢。
能依照给定算法检测出程序中的并行结构的编程工具还有待开发。
此算法需要能够检测出变ja之间的依赖关系是否规则;而且不管这些依赖是否规则,此算法都能在保证程序正确性的前提下,通过将程序中的一些子任务并行化来加速程序的执行。
(3)提升未来的计算机性能的关键就在于并行程序的开发,这涉及各个层面的工作:算法、程序开发、操作系统、编译器及硬件设备。
(4)并行计算除了要考虑到参与并行计算的处理器的数量,还应该考虑处理器与处理器、处理器与内存之间的通信。
最终计算性能的提升既依赖于算法能够提升的空间,更依赖于处理器执行算法的效率。
而通信性能的提升则依赖于处理器对数据的供应和提取的速度。
(5)内存系统的速度始终比处理器慢,而且由于一次只能进行单个字的读写操作,内存系统的带宽也有限制。
(6)内存系统的速度始终比处理器慢,而且由于一次只能进行单个字的读写操作,内存系统的带宽也有限制。
本书内容主要涉及并行算法与为了实现这些算法而设计的硬件结构。
硬件和软件是相互影响的,任何软件的最终运行环境是由处理器组成的底层硬件设备和相应的操作系统组成.我们在本章开始的部分会介绍一些概念,之后再来讨论为了实现这些概念有哪些方法和限制.自动并行编程对于算法在软件中的实现过程我们都很熟悉。
在编程并不需要了解目标计算机系统的具体细节,因为编译器会处理这些细节.但是在编程和调试时依旧沿用着在单一央处理器(CPU)上顺序处理的模式.从另一方面讲,为了实现并行算法,硬件和软件之间的相互联系需要比我们想象的更加密切。
2160240并行计算(中英文)(2011)

2160240并行计算(中英文)(2011)天津大学《并行计算》课程教学大纲课程代码:2160240 课程名称:并行计算学时:40 学分: 2学时分配:授课:24 上机:16 实验:实践:实践(周):授课学院:计算机更新时间:适用专业:计算机/软件先修课程:计算机系统结构/计算机网络/程序设计/算法设计/操作系统一、课程的性质与目的让学生能够掌握并行计算技术在研究与开发中的应用,能够根据自己的需要选择合适的并行计算环境与并行计算编程技术,独立完成针对本领域或所承担具体任务的并行算法,并能够独立完成并行应用程序的编制、调试与部署。
二、教学基本要求课程内容主要介绍并行计算领域中基本概念以及基础的并行程序设计方法,目的是让学习本课程的同学了解并行计算硬件平台的类别、简单多线程/MPI并行化方法、云计算模式以及MapReduce并行计算模型,掌握基本的并行程序设计技术,为未来的工作或者科研打好基础。
三、教学内容1、并行计算概述并行计算基本概念–应用需求–并行计算硬件–并行程序设计并行化方法2、并行计算硬件环境并行计算机系统结构多核处理器–多核技术概述–双核与超线程区别–GPU/Cell BE3、内存系统,性能评测内存系统对性能的影响性能评测–基本性能指标–加速比定律4、多线程与Pthread多线程基本概念–线程与进程的区别–线程的生命周期–线程同步Pthread 多线程实例分析–计算数组中“3”出现的次数5、Java 多线程Java多线程的概念;Java线程的生命周期;Java多线程编程中的常量和方法;?线程调度方法;资源冲突与协调;线程之间的通信。
6、OpenMPOpenMP概述编译制导语句运行时库函数环境变量7、集群技术概述集群技术基础–定义–体系结构–分类Linux 集群–I BM Cluster1350PVM/MPIRSH/SSH8、MPIMPI概述MPI并行程序的基本模式?MPI数据及进程消息传递方式9、MapReduceMapReduce编程模型Hadoop实例10、X10X10编程语言概述语法与示例X10DT11、并行程序设计方法学?并行算法设计PCAM方法学并行程序设计模式并行计算与软件工程12、云计算–并行计算发展历程–网络发展历程网格计算云计算实验1–多线程计算π,性能分析?2–3PCF 计算多线程实现?3 –M PI 实现Jacobi 迭代?4 –自选实验四、学时分配五、评价与考核方式考试:80%实验与平时成绩:20% 六、教材与主要参考资料并行程序设计原理作者:(美国)Calvin Lin,Lawrence Snyder 译者:陆鑫达林新华页码:235 页出版日期:2009年07月ISBN:7111270754/9787111270751TU Syllabus for Parallel ComputingCode: 2160240 Title: Parallel Computing Semester Hours: 40 Credits: 2Semester Hour Structure Lecture:24 Computer Lab:16 Experiment:Practice:Practice (Week):Offered by: School of Computer Date:for: School of Computer/School of SoftwarePrerequisite: Computer Architecture/Network/Programming/Algorithm/OS1. ObjectiveThe course requires the students learn the application of parallel computing technology in research and development and select proper parallel computing environment and programming methods to their situation. The student will be able to design the algorithm, and program, debug and deploy the parallel application.2. Course DescriptionThe course will introduce concepts of parallel computing and parallel programming. The students should understand types of parallel computing hardware, multi-thread/MPI parallelization methods, cloud computing and Mapreduce parallel computing model. The basic parallel programming technology will help their future work or research.3. Topics1. Introduction to parallel computingParallel application requirementsParallel computing hardwareParallel programming2. Parallel computing hardware environmentParallel computer architectureMulticore processorIntroduction to multicoreDifference between dual-core and hyper-threadGPU/Cell BE3. Memory system, performance evaluationEffect of memory system to performancePerformance evaluationPerformance parametersSpeedup laws4. Multi-thread and PthreadConcepts of multi-threadDifference between thread and processLife cycle of threadThread synchronizationPthreadSampleCount the 3s in the array5. Java multi-threadConcepts of Java multi-threadLife cycle of Java threadConstants and methods in Java multi-thread programming Thread schedulingResource confliction and coordinationIntercommunication between threads6. OpenMPIntroduction to OpenMPCompiler directivesRuntime librariesEnvironment variablesSamples7. Cluster technologyCluster basicsDefinitionArchitectureClassificationLinux ClusterIBM Cluster 1350PVM/MPIRSH/SSH8. MPIIntroduction to MPIPatterns of MPI programsMPI data and processMessage passing pattern9. MapReduceMapReduce programming model HadoopSamples10. X10Concepts of X10 programming language Grammars and samplesX10DT11. Methodologies of parallel programming Parallel algorithm designPCAMParallel programming patternsParallel computing and software engineers12. Cloud computingBackgroundHistory of parallel computingDevelopment of networksGrid computingCloud computingLabs1. Calculate π using multi-thread, and performance analysis2. Calculate 3PCF using multi-thread3. Implement Jacobi iteration using MPI4. Self design4. Semester Hour StructurePaper test: 80%Labs: 20%6. Text-Book & Additional ReadingsPrinciples of Parallel ProgrammingHardcover: 352 pagesPublisher: Addison Wesley; 1 edition (March 7, 2008) Language: EnglishISBN-10: 0321487907ISBN-13: 978-0321487902。
并行计算结构算法编程课程设计

并行计算结构算法编程课程设计一、课程背景高性能计算(High Performance Computing,HPC)已经成为科技竞争的重要战场之一。
各大科研机构、高校都在日益加大对高性能计算的投入和重视。
在为科学研究提供强有力的支撑的同时,也在很大程度上推动了信息技术的进步和发展。
并行计算结构算法编程课程是计算机科学与技术专业的一门重要的课程,重点讲解并行计算系统的结构、算法设计与编程方法。
二、课程目标本课程旨在介绍并行计算结构和基本的并行算法设计与优化方法,通过学习课程,达到以下目标:1.掌握并行计算系统的结构,包括传统的并行计算系统和云计算系统。
2.熟悉并行算法的设计与优化,掌握传统的并行算法和新兴的并行算法。
3.掌握并行程序的编写方法,能够使用现代工具和技术编写高效的并行程序。
4.具备一定的实验设计和实验分析能力,能够独立完成并行计算相关的实验与项目。
三、课程内容1. 并行计算系统的结构1.1 什么是并行计算系统1.2 传统式并行计算系统1.3 云式并行计算系统2. 并行计算算法设计2.1 并行计算中的任务划分2.2 并行计算中的数据划分2.3 并行计算中的任务调度2.4 并行计算中的数据通信3. 并行程序的编写3.1 编写并行程序的基本原则3.2 选用适合的编程语言3.3 选择美国能源部国家科学院NNSA的ASC黄金标准测试用例4. 课程设计4.1 课程设计项目的内容和要求4.2 怎么设计一个并行计算程序4.3 基于MPI的分散式矩阵-向量乘法运算的实现4.4 基于OpenMP的PDE求解器的实现四、实验环境本课程的实验环境为台式机或服务器,由学生自行摆放,安装MATLAB和MPI 等软件。
五、参考资料1.Peter Pacheco, An Introduction to Parallel Programming,Elsevier, 2011.2.Arora Jaswinder Pal Singh, Anindya Das, Practical ParallelProgramming, PHI Learning Private Limited, 2012.3.Tim Mattson, Beverly Sanders, Berna Massingill, Patterns forParallel Programming, Addison-Wesley Professional, 2004.本文档主要让读者了解并行计算结构算法编程课程设计的内容,以及课程的目的和参考资料。
并行计算课程设计

并行计算课程设计一、课程目标知识目标:1. 让学生理解并行计算的基本概念,掌握并行计算的发展历程及分类;2. 培养学生掌握并行编程的基本方法,了解并行算法的设计原则;3. 使学生了解并行计算在现实生活中的应用,并能结合实际问题进行分析。
技能目标:1. 培养学生运用并行计算技术解决实际问题的能力,提高计算思维;2. 培养学生掌握并行编程工具和软件的使用,能进行简单的并行程序设计;3. 培养学生通过团队合作,进行问题分析、方案设计和程序实现的能力。
情感态度价值观目标:1. 培养学生对并行计算的兴趣,激发其探索未知领域的热情;2. 培养学生具备良好的团队合作精神,学会尊重他人、沟通协作;3. 培养学生认识到科技发展对社会进步的重要性,树立正确的科技观。
课程性质:本课程为选修课,旨在拓展学生的计算思维和编程技能,提高解决实际问题的能力。
学生特点:学生具备一定的计算机基础,对编程有一定了解,对并行计算感兴趣,但可能对并行编程方法和技巧掌握不足。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,充分调动学生的积极性,培养其创新能力和实践能力。
通过本课程的学习,使学生能够将并行计算技术应用于实际问题,达到学以致用的目的。
在教学过程中,将目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 并行计算基本概念:包括并行计算的定义、发展历程、分类及特点。
教材章节:第一章 并行计算概述2. 并行编程模型:介绍 Flynn 分类法,讲解共享内存和分布式内存编程模型。
教材章节:第二章 并行编程模型3. 并行编程语言与工具:学习 MPI、OpenMP、CUDA 等并行编程语言和工具。
教材章节:第三章 并行编程语言与工具4. 并行算法设计:讲解并行算法设计原则,分析常见并行算法。
教材章节:第四章 并行算法设计5. 并行计算应用:介绍并行计算在科学计算、大数据处理等领域的应用。
教材章节:第五章 并行计算应用6. 实践环节:安排学生进行并行程序设计和实现,针对实际问题进行团队协作。
并行计算原理

《并行计算原理》教学大纲课程名称:并行计算原理课程编号:学分:2学时:总学时:32(讲授:32,实验:0,上机:0,讨论:0,其他:0)开设学期:第五学期授课对象:信息与计算科学专业本科生课程级别:专业选修课课程负责人:教学团队:信息与计算科学系一、课程性质与目的本课程以并行计算为主题,主要讲授并行计算的硬件平台(并行计算机)、并行计算的理论基础(并行算法)和并行计算的软件支撑(并行程序设计),强调将并行计算机结构、并行算法设计和并行编程融为一体。
该课程是信息与计算科学专业本科生的专业选修课程;通过本课程的学习,应使学生了解并行计算机的体系结构与并行计算模型,熟悉常见的并行计算算法与并行设计技巧;通过此课程的学习,可使学生了解和掌握计算机学科中以及大型科学与工程问题中的基本的并行与分布计算方法及其软硬基础。
二、课程简介为了适应我国面向21 世纪人才培养应是宽口径、通才和适应性强的要求,将并行计算机、并行数值计算、并行算法和并行程序设计中有关内容精炼、整合形成计算机专业本科层次上的并行计算课程。
四、教学基本要求课程强调融并行计算机结构、并行算法设计和并行编程为一体。
通过本课程的学习,应使学生掌握并行计算机的体系结构、了解并行计算模型,熟悉常见的并行计算,通过此课程的学习,可使学生了解和掌握计算机学科中以及大型科学与工程问题中的基本的并行与分布计算方法及其软硬基础。
五、教学方法(1)课堂授课采用多媒体教学,采用由浅入深、循序渐进学习步骤,达到学必用、学即用,提高学生的学习兴趣。
从而加深学生对理论课的理解,提高学生的动手能力。
(2)多媒体教学:本门课程已制作电子课件教案,可针对不同章节的特点安排合适的内容使用,加深学生对所学内容的理解。
(3)课堂讨论和课后自学:为了培养学生自学能力和处理问题的能力,对各章中的重点,采用课堂讨论的形式,加深理解。
(4)练习题讲解:对部分典型练习题进行重点讲解,加深学生对基本概念的理解。
《并行编程原理与程序设计》课程教学大纲

本科生课程大纲课程属性:公共基础/通识教育/学科基础/专业知识/工作技能,课程性质:必修、选修一、课程介绍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程序设计的基本方法和技能。
《科学与工程中的并行计算》课程大纲

元的并行实现基于区域分解方法。我们分别用软件 Petsc 和 Deal.ii 实现差分方法和有限元的并行计算,并评价它们的并行性能。对于无 结构网格,我们介绍 Metis 软件,它实现了网格的均匀分割,同时相 邻子网格间的节点个数尽可能少。把子网格映射到进程后,确保进程 的负载平衡,同时进程间的通信尽可能少。谱方法的并行实现通过并 行的快速 FFT 实现。我们以 Poisson 为例说明这些方法的具体实现, 以及模拟结果对精度和进程个数的依赖。3)在科学应用部分,我们强 调一些普遍算法:分子动力学模拟、Monte Carlo 方法和 Langevin 动 力学,以及它们的并行实现。描述一个物理系统关键在于自由度的选 择。一个描述方法是以很多粒子(如它们的位置、动量等)作为自由 度,我们以 Brownian 运动为例通过分子动力学实现并行计算。另一个 是以连续场作为自由度,我们以量子场论的若干模型为例通过 Monte Carlo 方法和 Langevin 动力学实现并行计算。 This course includes two parts: 1) The basics of parallel computation; 2) Applications of parallel computation in science and engineering. Non-numerical simulations are not included in this course. The basics part includes the following several parts. a) Linux operation system and it's common commands; the installation of packages, compiling of source code, linking of objects, running of executables and data visualization. b) The hardware part of parallel machine including the discussion of the effect of memory on the FLOPS in a parallel machine. c) Two kinds of parallel machines, shared-address-space machines or multiprocessors and message passing platforms or multicomputers. The programming patterns for this two kinds of parallel machines. The topological connection in parallel machines. The principle for designing of *课程简介(Description) parallel algorithms. d) The communication pattern based on message passing and its realization MPI. The course does not include the programming for shared-address-space machines, e.g., OpenMP, etc.. e) The performance metrics for parallel systems, e.g., parallel runtime, speedup, efficiency, scalability and optimal cost, etc.. The application part includes three parts. 1) Parallel algorithms related to numerical linear algebra, including matrix multiplication, Gaussian elimination, LU decomposition of large sparse matrices and QR algorithm. The iteration algorithms for solving linear system or eigenvalues problem are not included in this course since their parallel realization is reduced to the parallel computation of the multiplication between matrices and vectors. Due to the importance of the discrete FFT in
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程基本信息(Course Information)
课程代码 (Course Code)
*课程名称 (Course Name)
课程性质 (Course Type)
授课对象 (Audience)
授课语言 (Language of Instruction)
*开课院系 (School) 先修课程 (Prerequisite) 授课教师 (Instructor)
*课程简介(Description)
The basics part includes the following several parts. a) Linux operation system and it's common commands; the installation of packages, compiling of source code, linking of objects, running of executables and data visualization. b) The hardware part of parallel machine including the discussion of the effect of memory on the FLOPS in a parallel machine. c) Two kinds of parallel machines, shared-address-space machines or multiprocessors and message passing platforms or multicomputers. The programming patterns for this two kinds of parallel machines. The topological connection in parallel machines. The principle for designing of parallel algorithms. d) The communication pattern based on message passing and its realization MPI. The course does not include the programming for shared-address-space machines,e.g., OpenMP, etc.. e) The performance metrics for parallel systems, e.g., parallel runtime, speedup, efficiency, scalability and optimal cost, etc..
应用部分包括三部分。1)和数值线性代数相关算法的并行实现。如矩 阵相乘、Gauss 消去法、大型稀疏矩阵的 LU 分解、QR 算法以及实现这 些并行并行算法的软件包 ScaLAPACK。线性方程组和特征根问题的迭代 算法的并行实现归结为矩阵和向量相乘的并行实现,所以迭代算法的 并行实现不在该课程中。基于快速 FFT 在数值模拟的重要性,我们着 重介绍它的并行实现和标准软件包 FFTW。2)工程问题中常见的偏微分 方程的数值模拟方法,包括差分、有限元和谱方法。差分方法和有限
MA3151
*学时 (Credit Hours)48源自*学分 (Credits)
3
(中文)科学与工程中的并行计算
(英文)An Introduction to Parallel Computation: Applications in Science and Engineering
专业方向选修 B 组
数学、物理、化学、材料、机械工程、核工程、航空航天工程等专业 本科生
中文
数学系
《C 语言》,《微积分》、《线性代数》
课程网址
李大明
无
(Course Webpage)
该课程包含两部分:1)并行计算基础;2)并行计算在科学和工程问
题中的几个应用。该课程不包含非数值模拟的并行计算。
*课程简介(Description)
基础部分包含若干部分。a)Linux 操作系统和常用命令,软件包安装、 编译源码、库连接产生可执行代码、运行和数据可视化等过程。b)并 行机器的硬件方面,特别介绍内存的限制对并行性能(峰值 FLOPS)的 影响。c)地址共享和非地址共享的并行机器,以及它们对应不同的编 程模式。介绍并行机器的网络连接的,以及并行算法设计的基本原理。 d)基于地址非共享并行机器中进程间的通信方式(即消息的发送和接 受操作)的并行算法以及性能评价,以及它们在 MPI 标准库中的实现。 地址共享机器的编程方式(基于多线程的 OpenMP)不做介绍。e)并行 算法性能的评价指标,如执行时间、加速比、效率、可扩展性、费用 最优等。
元的并行实现基于区域分解方法。我们分别用软件 Petsc 和 Deal.ii 实现差分方法和有限元的并行计算,并评价它们的并行性能。对于无 结构网格,我们介绍 Metis 软件,它实现了网格的均匀分割,同时相 邻子网格间的节点个数尽可能少。把子网格映射到进程后,确保进程 的负载平衡,同时进程间的通信尽可能少。谱方法的并行实现通过并 行的快速 FFT 实现。我们以 Poisson 为例说明这些方法的具体实现, 以及模拟结果对精度和进程个数的依赖。3)在科学应用部分,我们强 调一些普遍算法:分子动力学模拟、Monte Carlo 方法和 Langevin 动 力学,以及它们的并行实现。描述一个物理系统关键在于自由度的选 择。一个描述方法是以很多粒子(如它们的位置、动量等)作为自由 度,我们以 Brownian 运动为例通过分子动力学实现并行计算。另一个 是以连续场作为自由度,我们以量子场论的若干模型为例通过 Monte
Carlo 方法和 Langevin 动力学实现并行计算。
This course includes two parts: 1) The basics of parallel computation; 2) Applications of parallel computation in science and engineering. Non-numerical simulations are not included in this course.