Felac并行程序架构课件_第1页
Felac并行程序架构课件_第2页
Felac并行程序架构课件_第3页
Felac并行程序架构课件_第4页
Felac并行程序架构课件_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Felac并行程序架构第1页,共16页。目录并行环境硬件环境软件环境Felac并行程序架构主进程程序架构从进程程序架构Felac并行计算后处理分析Felac并行程序架构与Pfepg对比Felac并行计算超大规模问题第2页,共16页。并行环境硬件环境 并行计算机体系结构对称多处理机(SMP)每个处理器可等同地访问共享存储器、I/O设备和操作系统服务;优点:可开拓较高的并行度,使用简单,维护方便;缺点:因为共享存储,所以限制了系统中处理器的数目(一般少于64个),同时总线和交叉开关一旦作成也难于扩展;并行编程方式:通常采用OpenMP,也可使用消息传递(MPI/PVM)及HPF代表机型:SGI P

2、ower Challenge、DEC Alpha 服务器 8400、曙光1号等;第3页,共16页。对称多处理机(SMP)大规模并行处理机(MPP)MPP一般是指超大型计算机系统,处理节点采用商品微处理器;系统中有物理上的分布存储器;采用高通信带宽和低延迟的互联网络;能扩放至成百上千乃至上万个处理器;是一种异步的MIMD机器,程序由多个进程组成,每个都有其私有的地址空间,进程间采用消息传递相互作用。MPP主要用于科学计算、工程模拟和信号处理等以计算为主的领域。代表机型:Intel Paragon IBM SP2、Intel TFLOPS、曙光-1000。P/CP/CP/C.总线或交叉开关SMSM

3、SM.第4页,共16页。并行环境分布共性存储多处理机(DSM)DSM在物理上有分布在各个节点中的局存,从而形成了一个共享的存储器。系统硬件和软件提供了一个单地址的编程空间。DSM比MPP来编程更加容易。代表机型:Standford DASH、Cray T3D和SGI/Cray Origin 2000;定制网络MBMBP/CLMNICP/CLMNIC.第5页,共16页。并行环境软件环境Linux系统:RedHat, Debian, SuSE, Mandrake,编译系统:gcc/gfortran,icc,ifortMPI系统:MPICH, LAM-MPI,MVAPICH,IMPI数学库:BLAS

4、, LAPACH。定制网络MBMBP/CLMNICP/CLMNIC.DIRDIR第6页,共16页。Felac并行程序架构PC机生成串行程序启动GId前处理生成并行代码到目录下文件夹“项目名.mpi”把生成的文件夹“项目名.mpi”上传到并行机make编译链接运行mpirun命令提交计算任务把结果文件下载到PC机打开GID后处理合并计算结果查看Felac并行计算操作流程包含文件有:并行程序C代码、mat材料参数文件、time0时间控制文件、Makefile和前处理数据项目名.gid文件夹,其包含文件为项目名.dat ,partition.dat第7页,共16页。主程序主进程gidprespart

5、mpartitionmgetpartmpi_m2sspresgetpart从进程startaetestassolvutestagidres程序结束Felac并行程序架构Felac并行程序流程, 并行固有程序, 并行不同于串行程序, 与串行程序一致程序第8页,共16页。Felac并行程序架构主进程程序架构void masterp(void)gidpre();mpartition(coor0,elema);mgetpart(coor0,dofa,ida,ubfa,elema,unoda,maplga,imaplga,inita);mpi_m2s();gidpre:与串行程序一致,读入前处理数据,包

6、括:网格信息、单元信息、初值信息、边值信息等;注意,与串行不同的是,在gidpre中的体单元类型数nbdetype,将会在mpartition分区程序中用到,所以在gidpre中生成该常数,并保证其正确性。当遇到问题是要查看是否生成的体单元类型数,与实际一致。第9页,共16页。Felac并行程序架构主进程程序架构Mpartition:并行固有程序,主要功能是网格节点分区,并在此基础上构建逻辑单元区域、体单元分区及相邻进程信息;Mpartition程序分区过程mgetpart:并行固有程序,主要功能是场信息分区,与场相关的信息按照mpartition分区的节点构建每个分区的边界单元、边值、初值信

7、息和方程号信息,并发送到每个子进程;第10页,共16页。Felac并行程序架构主进程程序架构mpi_m2s程序是协调并行求解器的程序,因为求解器时一个整个通信域的SIMD程序,所以主进程需要在从进程计算求解调用求解器程序时,相应的调用求解器接口程序以达到整个程序的同步性。第11页,共16页。Felac并行程序架构从进程程序架构void slavep(int iblk)spart(&coor0);spre();sgetpart(coor0,dofa,&ida,&ubfa,&elema,unoda,&maplga,&imaplga,inita);starta(coor0,dofa,ida,elem

8、a,&matrixa,&fa);etesta(coor0,dofa,ida,ubfa,elema,matrixa,fa,1);mpi_sendms(1);ssolv(matrixa,fa,maplga,imaplga);utesta(coor0,dofa,ida,ubfa,fa);etestb(coor0,dofb,elema);gidres(coor0);mpi_sendms(-1);第12页,共16页。Felac并行程序架构从进程程序架构 亮色部分为并行程序在串行程序的基础上添加的程序,各程序功能如下所述:spart:接收主进程Mpartition程序发送的坐标信息和相邻进程信息;spre

9、:改程序是生成各场初值个数、自由度数;sgetpart:接收主进程Mgetpart发送的场信息,包括单元信息、初值信息、边值信息和方程号等;mpi_sendms:第一处在solv之前是发送求解器调用标志到主进程;第二处发送-1到主进程是发送程序结束标志到主进程;starta、etesta、utesta、etestb程序沿用串行程序;ssolv:求解器程序调用并行求解器,与串行程序不同;gidres:程序由于要输出整体节点编号对应的网格信息及结果信息,与串行程序有微小的差别;第13页,共16页。Felac并行计算后处理分析Felac并行程序后处理输出结果为各个分区结果:比如项目名为test,分3

10、个分区计算,则生成的后处理结果为:test1.post.msh、test2.post.msh、test3.post.mshtest1.post.res、test2.post.res、test3.post.res 通过GID软件的merge功能将三个分区结果合并到一起查看后处理结果,具体算例请查看文档“Felac并行计算流程说明文档.doc”。第14页,共16页。Felac并行程序架构与Pfepg对比Felac并行程序相当对于Pfepg来说,主要有一下几点:C语言的稳定性和可维护性比Fortran版本更好;主程序的固定模式比Pfepg对于不同问题需要自动生成主程序流程更加简单;Felac版本加入

11、小函数来控制非线性问题,比起pfepg的发送接收,更加简单通用;Felac版本基于点点通信比起Pfepg的主从通信来效率会更高;Felac版本省去了从进程到主进程发送结果信息的流程,时间上更少;Felac版本输出结果是各个分区结果,不再汇总到主进程;并行计算流程更加简单,不再需要数据转换,前处理转换,后处理转换等一些列操作,源代码上传到服务器后,只需要编译运行即可;第15页,共16页。Felac并行计算超大规模问题未经超大规模测试当进行大规模测试时,需要注意问题如下:头文件中宏定义常数需要根据问题规模设置其大小maxt;maxt在并行中的分区程序中用到,开辟的是节点拓扑单元节点总数的规模,这个数的不好推算,尤其是在划分非结构化网格的时候会随着一个节点的共用单元数的增大而增大,所以需要用户去试探推算。在inimpi程序中需要将数组msid的大小根据需要适当增大,当前仅适用于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论