并行计算实验指南课件.ppt
《并行计算实验指南课件.ppt》由会员分享,可在线阅读,更多相关《并行计算实验指南课件.ppt(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/5/26并行计算 实验指南肖健、金舟肖健、金舟China Research Laboratory提纲实验概述实验概述实验内容相关技术串讲PthreadOpenMPMPIMapReduce2023/5/26China Research Laboratory实验概述熟悉主流的并行计算环境,为科研工作打基础理论与实践并重(实验成绩占总成绩的50%)各个实验的权重(共4次,每个实验总分均为100分)前二次各20%后二次各30%4次实验完成后,总结为一份实验报告(纸质&电子版)提交,按实验顺序撰写2023/5/26China Research Laboratory2023/5/26电子版实验报
2、告要求每一次实验的报告内容包括:实验题目,作者,时间,实验内容,原理,程序流程图程序流程图,实现方法,结果(数据图表、效果图等),理论性能分析以及对实际结果的分析,总结展望总结展望(心得体会等)。提交电子版实验报告时,必须附上全部源代码,以及源代码的编译、运行、部署详细说明详细说明。如果是使用集成开发工具完成的程序,则必须提交全部工程文件全部工程文件以及相应说明China Research LaboratoryChina Research Laboratory2023/5/26实验报告提交提交时间为2011.12.31中午12:00之前纸质和电子版纸质:25楼B区606不要封面不打印代码(可包
3、含少量关键代码或伪代码)调整好版面、字体,尽可能减少页数建议双面打印以一个订书钉装订即可电子版:附件压缩,命名:附件压缩,命名:学号学号_姓名姓名.rar邮件标题:邮件标题:并行计算并行计算_学号学号_姓名姓名China Research Laboratory2023/5/26注意事项上机地点为25教710机房可自带笔记本电脑(有无线网络)遵守实验室纪律上机时间第3、4、6、7次课为实验上机课下午2:00-5:00课程网站及相关资源工具下载内容实时更新,注意及时查看China Research Laboratory提纲实验概述实验内容实验内容相关技术串讲PthreadOpenMPMPIMapR
4、educe2023/5/26China Research LaboratoryChina Research Laboratory2023/5/26实验环境机房统一的实验环境OS:WinXPLanguage:C/C+IDE:CodeBlocks+MinGW(含GCC,支持OpenMP)Lib:mpich.nt,pthreads_win32个人实验环境可利用个人使用的计算机或服务器自由构建,在实验报告上描述清楚即可实验环境搭建参见并行计算实验环境配置.doc鼓励在Linux环境下进行实验,酌情加分(10分以内)China Research Laboratory计算任务在金星的气温数据记录中,寻找每
5、年的最高气温原始数据集描述数据格式文本文件,每行代表一个温度记录观测点ID(4位),空格,温度值(8位)例如:9721 62429744数据布局每年的温度记录条数为50万条,放到以年份命名的文件中,如:1992.txt,年份范围为1900-2010整个数据集被分成了4等份,每份均含有1900-2010年间1/4的观测数据,即每份内有110个文件,单个文件的记录条数为1250002023/5/26China Research LaboratoryChina Research Laboratory提纲实验概述实验内容相关技术串讲相关技术串讲PthreadOpenMPMPIMapReduce2023
6、/5/26China Research LaboratoryChina Research Laboratory实验1.1:PThread多线程线程基本概念线程的同步(竞争与死锁)POSIX PThread API2023/5/26China Research Laboratory2023/5/26线程(thread)是进程上下文(context)中执行的代码序列,又被称为轻量级进程(light weight process)在支持多线程的系统中,进程是资源分配的实体,而线程是被调度执行的基本单元。多线程概念China Research LaboratoryChina Research Labo
7、ratory2023/5/26访问共享变量时产生的冲突China Research Laboratory2023/5/26死锁China Research Laboratory2023/5/26线程的同步竞争条件临界区同步方法信号量锁条件变量China Research Laboratory2023/5/26锁锁(Lock)类似于信号量,不同之处在于在同一时刻只能使用一个锁。锁对应的两个原子操作分别是:Acquire():获取操作,将锁据为己有并把状态改为已加锁,如果该锁以被其他线程占有则等待锁状态变为未加锁状态。Release():释放操作,将锁状态由已加锁改为未加锁状态。一个锁最多只能由一
8、个线程获得。任何线程对共享资源进行操作访问前必须先获得锁。否则,线程将保持在该锁地等待队列,直到该锁被释放。China Research Laboratory2023/5/26互斥量(互斥锁)互斥量(mutex 是 MUTual EXclusion 的缩写)是实现线程间同步的一种方法。互斥量是一种锁,线程对共享资源进行访问之前必须先获得锁;否则线程将保持等待状态,直到该锁可用。只有其他线程都不占有它时一个线程才可以占有它,在该线程主动放弃它之前也没有另外的线程可以占有它。占有这个锁的过程就叫做锁定或者获得互斥量。China Research LaboratoryChina Research L
9、aboratory2023/5/26互斥量可能的输出结果:或China Research Laboratory2023/5/26POSIX Thread APIPOSIX:Portable Operating System InterfacePOSIX 是基于UNIX 的,这一标准意在期望获得源代码级的软件可移植性。为一个POSIX 兼容的操作系统编写的程序,应该可以在任何其它的POSIX 操作系统(即使是来自另一个厂商)上编译执行。POSIX 标准定义了操作系统应该为应用程序提供的接口:系统调用集。POSIX是由IEEE(Institute of Electrical and Electro
10、nic Engineering)开发的,并由ANSI(American National Standards Institute)和ISO(International Standards Organization)标准化。China Research Laboratory2023/5/26程序示例China Research LaboratoryChina Research Laboratory2023/5/26执行执行 Pthread 线程线程China Research Laboratory2023/5/26Pthread线程的生命周期使用 pthread_join()和 pthread_
11、exit()China Research LaboratoryChina Research Laboratory实验1.2:OpenMPOpenMP概述编译制导语句2023/5/26China Research Laboratory2023/5/26OpenMP概述OpenMP 是一种面向共享内存以及分布式共享内存的多处理器多线程并行编程语言。OpenMP是一种能够被用于显式制导多线程、共享内存并行的应用程序编程接口(API)。OpenMP标准诞生于1997 年,目前其结构审议委员会(Architecture Review Board,ARB)已经制定并发布OpenMP 3.0 版本。Chin
12、a Research Laboratory2023/5/26OpenMP发展历程OpenMPFortran 1.1OpenMPC/C+1.0OpenMPFortran 2.0OpenMPC/C+2.01998200019992002OpenMPFortran 1.01997OpenMPF/C/C+2.52005OpenMPF/C/C+3.02008 China Research Laboratory2023/5/26OpenMP编程模型:Fork-JoinFork-Join 执行模式在开始执行的时候,只有主线程程存在。主线程在运行过程中,当遇到需要进行并行计算的时候,派生出(Fork)线程来执
13、行并行任务。在并行执行的时候,主线程和派生线程共同工作。在并行代码结束执行后,派生线程退出或者挂起,不再工作,控制流程回到单独的主线程中(Join)。China Research Laboratory2023/5/26OpenMP的实现编译制导语句运行时库函数环境变量China Research Laboratory2023/5/26编译制导语句(Compiler Directive)编译制导语句的含义是在编译器编译程序的时候,会识别特定的注释,而这些特定的注释就包含着OpenMP 程序的一些语义。在C/C+程序中,用#pragma omp parallel 来标识一段并行程序块。在一个无法识
14、别OpenMP 语义的普通编译器中,这些特定的注释会被当作普通的注释而被忽略。China Research Laboratory2023/5/26编译制导语句(Compiler Directive)void main()double Res1000;for(int i=0;i1000;i+)do_huge_comp(Resi);#include“omp.h”void main()double Res1000;#pragma omp parallel for for(int i=0;i1000;i+)do_huge_comp(Resi);将循环拆分到多个线程执行将循环拆分到多个线程执行并行代码并
15、行代码串行代码串行代码China Research Laboratory2023/5/26编译制导-并行域(parallel region)China Research Laboratory2023/5/26并行域并行域中的代码被所有的线程执行具体格式#pragma omp parallel clause,clausenewlineclause=if(scalar-expression)private(list)firstprivate(list)default(shared|none)shared(list)copyin(list)reduction(operator:list)num_th
16、reads(integer-expression)China Research Laboratory2023/5/26并行域示例#include main()int nthreads,tid;/*Fork a team of threads giving them their own copies of variables*/#pragma omp parallel private(tid)/*Obtain and print thread id*/tid=omp_get_thread_num();printf(Hello World from thread=%dn,tid);/*Only m
17、aster thread does this*/if(tid=0)nthreads=omp_get_num_threads();printf(Number of threads=%dn,nthreads);/*All threads join master thread and terminate*/China Research Laboratory2023/5/26编译制导-数据域属性子句变量作用域范围数据域属性子句private子句:表示它列出的变量对于每个线程是局部的。语句格式:private(list)China Research Laboratory2023/5/26private(
18、)#include int main()int i,x=100;#pragma omp parallel for private(x)for(i=0;i8;i+)x+=i;printf(x=%dn,x);printf(global x=%dn,x);return 1;x=0 x=1 x=2 x=5 x=6 x=13 x=4 x=9 global x=100 4线程China Research Laboratory实验2:Message Passing InterfaceMPI简介MPI主要接口MPI示例2023/5/26China Research LaboratoryMessage Pass
19、ing InterfaceDerived from several previous librariesPVM,P4,ExpressA standard/criterion of message passing programming model,not an implementation.Standard message-passing libraryProvide interface calls for C/C+/FORTRANAvailable for freeCan be installed onNetworks of WorkstationsParallel Computers(Cr
20、ay T3E,IBM SP2,Parsytec PowerXplorer,other)China Research LaboratoryGoals of MPI StandardPowerful functionsMPI-1 128 routinesMPI-2 287 routinesHigher performancesAvoid memory-to-memory copying,allow overlap of communication and computation.PortabilityCan be implemented on most vendors platforms Prov
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并行 计算 实验 指南 课件
限制150内