- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows 环境下河网水流多线程并行计算研究
船海,曾贤敏
河海大学水文水资源与水利工程科学国家重点实验室,南京(210098 )
E-mail:wangchuanhai@
摘要:本文介绍了一个在 Windows 环境下实现河网水流共享内存的并行计算实现方法,该
方法基于多任务Windows 操作系统的线程机制,利用Windows 系统API 函数创建多个线程
实现并行计算。该方法的核心是实现一个线程管理类,参考OpenMP 并行程序的设计方式,
对多个线程运行的互斥与同步统一管理,充分利用系统CPU 资源,实现了河网模型求解加
速。该方法通用性好,采用面向对象的程序设计方法,可以很容易推广到其它模型的并行求
解计算过程 。
关键词:多线程,并行计算,共享内存,河网水流计算
中图分类号:TV 133.2
1、引言
随着芯片制造业工艺发展,单核CPU 已经遇到芯片性能提升瓶颈,单纯依靠提升CPU
主频和增加二级缓存已经很难使系统整体性能有较大大幅提升,CPU 设计向多核方向发展
成为必然趋势。在单CPU 环境下,应用程序计算模式是单线程串行的,而在多CPU 多核环
境下,这样的程序计算模式就无法充分利用系统的硬件资源,需要 用并行的编程技术,以
提高系统运行计算的效率。
并行程序实现方式主要有两种:共享内存模式和消息传递模式。共享内存模式以
OpenMP 为代表,主要是利用添加并行化指令到顺序程序中,由编译器完成自动并行化;消
[1]
息传递模式以 MPI 为代表, 用消息传递机制实现多个计算单元并行计算 。这些技术大
多局限在Linux 或Unix 环境,在Windows 环境下的并行计算研究较少,相对Unix 和Linux
系统而言,Windows 系统有更多的用户和应用软件,用户对Windows 系统也更为熟悉,常
见的小规模科学计算也都是在Windows 环境下。
在河网水流计算中,若 用 MPI 模式实现并行,每个计算单元拥有各自的内存单元,
各个并行线程间通信量很大,这时网速和通信量就会很大地制约并行性能, 用共享地址空
间模式就相对比较合适。利用 OpenMP 指令可以方便实现共享内存的并行编程,但用
OpenMP 指令对现有的程序改造实现并行,需要做很大改动,接近重写所有程序,编程量很
大。
由于 述原因,本文研究了Window 环境下的河网水流并行计算方法, 用Visual C++
6.0 开发工具,利用多任务操作系统Windows 线程机制,创建多个线程。 用面向对象的程
序设计方法,设计了一个线程管理类,管理线程的互斥与同步,不破坏现有程序执行顺序,
仅对现有程序求解模块做一些很小改动,实现了多CPU 环境下共享内存的河网水流并行计
算。
2、河网水流模型
2 .1 河网水流模型
河网流域一般可以概化为:河道、湖泊和联系三类基本要素。描述河道水流的数学模型
是一维的圣维南方程组,求解方法是建立双追赶方程,构建递推关系,将河道内各断面的水
-1-
位和流量表示为河道首末节点的水位的线性组合。联系是指控制水流的堰、闸和行洪区口门
等,可以用宽顶堰公式描述,把通过联系的流量表示为联系首、末节点水位的线性组合。按
照水量平衡原理,在河网节点处建立以节点水位为基本未知变量的线性方程组,解出节点水
[2]
位,回代即可求出整个流域河网的水位和流量 。
2 .2 河网水流并行求解方法
[1]
按照并行方式可以将并行计算分为 :数据并行、功能并行和流水线。数据并行是指不
相关的任务对数据集不同元素进行相同操作。功能并行是指不相关的任务对数据集不
您可能关注的文档
- 2011年公卫执业医师冲刺试卷一(第二单元).doc
- 2011年公卫执业医师考试考前冲刺模拟试卷及答案(二).doc
- 2011年同等学力临床医学真题.pdf
- 2011年执业药师考试真题.pdf
- 2011苏、锡、常、镇四市高三教学情况调查(二)数学.doc
- 2011执业西药师药物分析部分模拟试卷.doc
- 2011执业西药师专业知识二模拟试卷.doc
- 2011执业药师《药学专业知识二》各章课后习题.doc
- 2011自学考试《心理测验学》重难点归纳.doc
- 2012高二生物同步课件:6-1 植物芳香油提取(人教版选修I 46张).ppt
- XX高校校园网 络安全解决方案 表格2011-9-16.doc
- ZSM-5分子筛中相邻酸性位酸性强度及其对乙烯质子化反应影响理论计算.pdf
- β植物油对母乳或婴儿配方奶粉喂养婴儿作用.pdf
- 艾滋病合并肺孢子菌肺炎等6个艾滋病机会感染病种临床路径.doc
- 艾滋病合并新型隐球菌脑膜炎临床路径(2012年版).doc
- 安徽省合肥皖智高考复读学校2014届高三生物上学期第二次半月考试试卷新人教版.doc
- 安科瑞Acrel2000电力监控系统在清远蒙牛事业部应用.pdf
- 安科瑞Acrel2000电力监控系统在石家庄金融大厦应用.pdf
- 安盛科兴药业有限公司放射性药物生产销售项目.pdf
- 氨苄西林磁性明胶药物微球制备及控制释放.pdf
文档评论(0)