分布存储并行系统中的共享存储编程环境

上传人:ldj****22 文档编号:50697952 上传时间:2018-08-10 格式:PPT 页数:50 大小:252KB
返回 下载 相关 举报
分布存储并行系统中的共享存储编程环境_第1页
第1页 / 共50页
分布存储并行系统中的共享存储编程环境_第2页
第2页 / 共50页
分布存储并行系统中的共享存储编程环境_第3页
第3页 / 共50页
分布存储并行系统中的共享存储编程环境_第4页
第4页 / 共50页
分布存储并行系统中的共享存储编程环境_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《分布存储并行系统中的共享存储编程环境》由会员分享,可在线阅读,更多相关《分布存储并行系统中的共享存储编程环境(50页珍藏版)》请在金锄头文库上搜索。

1、Institute of Computing Technology, CAS分布存储并行系统中的 共享存储编程环境唐志敏 中国科学院计算技术研究所提纲 什么是分布式共享存储 JIAJIA分布式共享存储系统 JIAJIA系统的性能 JIAJIA系统的应用 JIAJIA的编程界面和性能优化 lssc机群上的JIAJIA几种常见的并行计算系统 对称多处理(SMP)工作站和服务器 集中式共享内存,处理机数一般不多 大规模并行机(MPP)与机群系统(Cluster) 分布式存储,处理机数可以较多 一般采用PVM,MPI等消息传递编程环境 也可以实现分布式共享存储(或虚拟共享存储 ) 每个结点可以是一个

2、SMP系统 由工作站、服务器构成的网络并行计算环境 分布式存储,可能是异构的 可以用消息传递,可以用虚拟共享存储体系结构:分布存储与集中存储u多地址空间u消息传递通信u编程、移植困难u可伸缩性好l单地址空间l共享存储通信l编程容易、程序易移植l可伸缩性一般编程模型:共享存储与消息传递 并行计算机程序设计的两种主要方式 并行意味着计算过程的划分:子任务、子问题 同一问题的各子任务间有联系:同步、数据交换 共享存储与消息传递提供了不同的数据交换方式 共享存储 数据不必划分,每个子任务都能看到完整的数据 需要同步,不同子任务都按确定的次序访问数据 消息传递 数据也要划分,每个子任务只能看到一部分数据

3、 任务通过发送或接收消息来交换数据、保持同步分布式共享存储系统在分布存储系统上提供共享存储抽象分布式共享存储(DSM)系统u结合共享存储的易编程和分布式存储的易扩展u在分布式系统的基础上通过软件或软硬结合的方 法提供共享存储的编程环境硬件DSM系统:DASH, FLASH, Alewife, DDM商品化系统:KSR-1,Origin 2000,NUMA-Q软件DSM系统:IVY, Midway, Munin, Quarks, TreadMarks, CVM, JIAJIA, 又称为虚拟共享存储系统、共享虚拟存储系统硬软件结合的DSM系统:Shrimp, Typhoon, Simple-COM

4、A, .软件DSM系统与消息传递系统 硬件平台相同,都是分布式存储的并行系统 最低层的数据交换手段只能是消息传递 数据在物理上仍然分布在各个结点的存储器内 软件分布式共享存储 提供一个逻辑上统一的虚拟地址空间 自动识别非本地存储访问,并转换为消息传递 性能:与消息传递相当 与精雕细刻的消息传递相比,可能会多送消息 自动地缓存远程数据,有效地利用访存局部性软件DSM系统JIAJIA 建立在分布存储并行系统上的共享存储环境 把用户从繁琐的数据划分和通信组织中解放出来 使多台工作站的存储器真正联接成了一个大 容量的共享空间 在国外的同类系统(如CVM, TreadMarks等)系 统中,共享内存容量

5、受限于单机内存的容量 简单精巧、开销小、效率高 新颖的cache一致性协议能有效地缓存远程数据 以运行库的方式支持共享存储和并行计算JIAJIA的主要特点 基于主流的操作系统平台,系统移植方便 是一个纯用户级软件系统,不修改操作系统 Solaris, AIX, Linux, SUNOS, IRIX, WinNT/9x 已运行于:SPARC机群、Alpha机群、IBM SP2 、曙光系列、Pentium 微机机群等平台 支持C 和 FORTRAN 编程接口 可方便地移植已有的共享存储应用程序 SPLASH2, NAS Parallel Benchmark 一批实际应用程序 可以根据用户的需要,增

6、加新的功能 提供适当的消息传递函数jia_send,jia_recvJIAJIA共享空间的组织 CC-NUMA结构P1P3P4P2CacheHomeHomeHomeHomeCacheCacheCache0m-1m2m- 12m3m- 13m4m- 1Non-Uniform Memory AccessJIAJIA共享空间的组织 -地址映射home0m-1 homem2m-1home(n-1)mnm-1 P1P2Pncachecachecachecachecachecache基于锁的Cache一致性协议 支持域存储一致性(Scope Consistency) 模型 对程序员的“额外”要求 用临界区

7、或其它同步机制保护对共享数据的 冲突访问(即对同一共享单元的两个访问且 其中至少有一个是写访问) 对同一个共享数据的冲突访问需用同一把锁 保护 采用写无效(Write-Invalidate)协议 采用多写(Multiple-Writer)协议JIAJIA系统的性能(1) 性能测试程序 Water:水分子模拟程序,来自SPLASH Barnes:解决天体物理中的N-body问题,SPLASH LU(blocked):用分块算法作LU分解,SPLASH2 IS:桶算法整数排序,来自NAS Parallel Benchmark EP:Embarrassingly Parallel程序,来自NAS T

8、SP:货郎担问题,来自TreadMarks Benchmarks SOR:逐次超松弛法,来自TreadMarks ILINK:一个遗传链分析的实际应用问题,来自Rice MM:矩阵乘法JIAJIA系统的性能(2) 测试环境 SPARCstation工作站网络 IBM SP2 Dawning 1000A,2000 太极和清华的Ultra工作站机群 性能比较的对象 CVM, TreadMarks PVM 测试语言 C,优化选项: gcc -O2 FORTRAN,优化选项:xlf -O3曙光1000A上的8机加速比太极工作站机群上的加速比PVM与JIAJIA的性能比较 (曙光1000A,8个结点)性

9、能小结 JIAJIA可以把多个结点的内存连成大共享空间 ,解决单机无法解决的大问题 JIAJIA的性能与消息传递系统相当 JIAJIA是可扩展的吗? 最近在曙光2000-II上做了128个CPU的试算实验利用JIAJIA移植的应用程序 FDTD, 电磁场模拟 串行程序来自中科院电子所,需要大内存 相关工作在HPCN Europe99上作了报告 遥感图像处理:非监督分类和几何精纠正 来自中科院地理所 IAP18, 全球气候模拟 来自中科院大气物理研究所 有SGI Power Challenge上的并行版本 胶体质量计算程序 来自中科院高能物理研究所电磁场模拟:FDTD 来自中国科学院电子学研究所

10、 用FDTD计算加载波导的谐振频率问题 时域有限差分算法:FDTD Finite Difference Time Domain 用于电磁场辐射和散射、微波和毫米波电路 以及电磁兼容和电磁剂量学等方面的计算 FDTD的特点 较大的内存容量、较长的计算时间 适合分布式共享存储环境下的并行计算FDTD分块并行算法块边界,易于平衡负载,计算/通信比高FDTD在JIAJIA系统上的并行化串行程序中:DO k = 1,N Ey(i,j,k) = cey(i,j,k)*(-dey(i,j,k)*Ey(i,j,k) +(Hx(i,j,k)-Hx(i,j,k-1)/dlz -(Hz(i,j,k)-Hz(i-1,

11、j,k)/dlx)消息传递系统中:DO k = 1,N/4 Ey2(i,j,k)=cey2(i,j,k)*(-dey2(i,j,k)*Ey2(i,j,k) +(Hx2(i,j,k)-Hx2(i,j,k-1)/dlz -(Hz2(i,j,k)-Hz2(i-1,j,k)/dlx)JIAJIA系统中:DO k=N/4, N/2 Ey(i,j,k)=cey(i,j,k)*(-dey(i,j,k)*Ey(i,j,k) +(Hx(i,j,k)-Hx(i,j,k-1)/dlz -(Hz(i,j,k)-Hz(i-1,j,k)/dlx)Hx1(I,j,N/4)Receive_from_Proc1, Send-t

12、o-Proc3曙光1000A上FDTD试算结果遥感图像处理集成环境 硬件平台:微机机群(百兆交换式以太网) 8台PII400,内存容量256MB 软件平台:Linux操作系统, JIAJIA系统 主要特点 利用分布式并行处理及大内存的优势,提高 图像处理的速度,性能价格比高 针对遥感图像处理的特殊要求,提供了一组 图象操作“指令”供用户选用 可利用多条指令批处理,如纠正、分类、水体提 取等性能优势举例 基于3次多项式的图像纠正 皤阳湖的图像数据:13200*15000 串行时间:25:08.73 (1508.73秒) 8机并行时间:94秒;加速比为16 8CPU的Origin 2000上需要2

13、分钟 图像分类 7个6546*5728的图像 串行时间:21:25.70 (1285.70秒) 8机并行时间:114秒;加速比为11.3JIAJIA的程序设计接口(1) 基本函数调用 jia_init(argc, argv), jia_exit() jia_alloc(size), jia_alloc2(size,blocksize), jia_alloc2p(size,proc), jia_alloc3(size,block,startp) jia_lock(lockid), jia_unlock(lockid) jia_barrier()JIAJIA的程序设计接口(2) 辅助函数调用 ji

14、a_setcv(condv),jia_resetcv(), jia_waitcv() jia_wait() jia_error(errinfo), jia_clock() jia_send(buf,len,topid,tag) jia_recv(buf,len,frompid,tag) jia_reduce(send,recv,c,op,root) jia_bcast(buf,len,root)JIAJIA的程序设计接口(3) 使用多少个结点? 系统配置文件.jiahosts指示用哪些结点 全局共享变量jiahosts给出参与运算的结点 数 本结点的序号 每个结点都有一个私有变量jiapid指

15、示结点 号 并行编程模式:SPMD 用jiapid控制计算任务在各结点间的划分JIAJIA的程序设计接口(4) 系统参数配置:.jiaconfig文件 Pagesize = Cachepages = 系统功能配置:jia_config函数 void jia_config(func, value) HMIG:Home迁移功能 PREFETCH:预取功能 WVEC:写向量功能例子:积分求p串行程序 h = 1.0/N; pi = 0; for(i=1; i=N; i+) temp = (i-0.5)*h; pi = pi + 4/(1+temp*temp); pi = pi * h; printf pi;JIAJIA 积分求p MPIjia_init(argc,argv); pi=jia_alloc(8); h = 1.0/N; pi = 0; for(i=jiapid+1;i=N;i+=jiahosts) mypi = . jia_lock(1); pi += mypi; jia_unlock(1); printf pi; jia_e

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号