Windows环境下河网水流多线程并行计算的研究.pdfVIP

Windows环境下河网水流多线程并行计算的研究.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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] 按照并行方式可以将并行计算分为 :数据并行、功能并行和流水线。数据并行是指不 相关的任务对数据集不同元素进行相同操作。功能并行是指不相关的任务对数据集不

文档评论(0)

wq640326 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档