windows环境下河网水流多线程并行计算研究

windows环境下河网水流多线程并行计算研究

ID:33748670

大小:254.76 KB

页数:7页

时间:2019-02-28

windows环境下河网水流多线程并行计算研究_第1页
windows环境下河网水流多线程并行计算研究_第2页
windows环境下河网水流多线程并行计算研究_第3页
windows环境下河网水流多线程并行计算研究_第4页
windows环境下河网水流多线程并行计算研究_第5页
资源描述:

《windows环境下河网水流多线程并行计算研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、http://www.paper.edu.cnWindows环境下河网水流多线程并行计算研究王船海,曾贤敏河海大学水文水资源与水利工程科学国家重点实验室,南京(210098)E-mail:wangchuanhai@vip.sina.com摘要:本文介绍了一个在Windows环境下实现河网水流共享内存的并行计算实现方法,该方法基于多任务Windows操作系统的线程机制,利用Windows系统API函数创建多个线程实现并行计算。该方法的核心是实现一个线程管理类,参考OpenMP并行程序的设计方式,对多个线程运行的互斥与同步统一管理,充分利用系统CPU资源,实现了河网模型求解加

2、速。该方法通用性好,采用面向对象的程序设计方法,可以很容易推广到其它模型的并行求解计算过程中。关键词:多线程,并行计算,共享内存,河网水流计算中图分类号:TV133.21、引言随着芯片制造业工艺发展,单核CPU已经遇到芯片性能提升瓶颈,单纯依靠提升CPU主频和增加二级缓存已经很难使系统整体性能有较大大幅提升,CPU设计向多核方向发展成为必然趋势。在单CPU环境下,应用程序计算模式是单线程串行的,而在多CPU多核环境下,这样的程序计算模式就无法充分利用系统的硬件资源,需要采用并行的编程技术,以提高系统运行计算的效率。并行程序实现方式主要有两种:共享内存模式和消息传递模式。共

3、享内存模式以OpenMP为代表,主要是利用添加并行化指令到顺序程序中,由编译器完成自动并行化;消[1]息传递模式以MPI为代表,采用消息传递机制实现多个计算单元并行计算。这些技术大多局限在Linux或Unix环境,在Windows环境下的并行计算研究较少,相对Unix和Linux系统而言,Windows系统有更多的用户和应用软件,用户对Windows系统也更为熟悉,常见的小规模科学计算也都是在Windows环境下。在河网水流计算中,若采用MPI模式实现并行,每个计算单元拥有各自的内存单元,各个并行线程间通信量很大,这时网速和通信量就会很大地制约并行性能,采用共享地址空间模

4、式就相对比较合适。利用OpenMP指令可以方便实现共享内存的并行编程,但用OpenMP指令对现有的程序改造实现并行,需要做很大改动,接近重写所有程序,编程量很大。由于上述原因,本文研究了Window环境下的河网水流并行计算方法,采用VisualC++6.0开发工具,利用多任务操作系统Windows线程机制,创建多个线程。采用面向对象的程序设计方法,设计了一个线程管理类,管理线程的互斥与同步,不破坏现有程序执行顺序,仅对现有程序求解模块做一些很小改动,实现了多CPU环境下共享内存的河网水流并行计算。2、河网水流模型2.1河网水流模型河网流域一般可以概化为:河道、湖泊和联系三

5、类基本要素。描述河道水流的数学模型是一维的圣维南方程组,求解方法是建立双追赶方程,构建递推关系,将河道内各断面的水-1-http://www.paper.edu.cn位和流量表示为河道首末节点的水位的线性组合。联系是指控制水流的堰、闸和行洪区口门等,可以用宽顶堰公式描述,把通过联系的流量表示为联系首、末节点水位的线性组合。按照水量平衡原理,在河网节点处建立以节点水位为基本未知变量的线性方程组,解出节点水[2]位,回代即可求出整个流域河网的水位和流量。2.2河网水流并行求解方法[1]按照并行方式可以将并行计算分为:数据并行、功能并行和流水线。数据并行是指不相关的任务对数据集

6、不同元素进行相同操作。功能并行是指不相关的任务对数据集不同元素进行不同操作。流水线是指单个任务可以分为几个阶段,几个阶段串行执行,但当有多个任务同时执行时,就可以实现多个任务不同阶段并行。对于河网水流并行求解而言,一般只采用数据并行方式设计程序。[3]按文献介绍的河网水流求解方法,主要求解工作有:追赶方程系数求解、节点水位方程求解和水位流量的回代求解。下面详细介绍这三部分并行方法,执行顺序如图1所示。创建N个线程追赶方程系数求解按断面数平均分配计算量线程1线程2。。。线程N归约操作节点水位方程求解按节点数平均分配计算量线程1线程2。。。线程N水位流量回代求解按断面数平均分

7、配计算量线程1线程2。。。线程N否T=T+1T>=E是结束图1河网水流求解执行流程Fig1.Processfortheflowsolutionofariver-network(1)追赶方程系数求解在追赶方程系数求解过程中,不同河道追赶求系数任务彼此不相关,因此可以利用数据并行方式求解。整个求解计算量与河道断面数成正比,因此按河网所有断面数把计算量尽量-2-http://www.paper.edu.cn平均地分配到各线程,使所有线程的负载基本平衡。需要注意的是,河道的断面数按线程数平均后,一般会导致同一河道的断面追赶方程的系数计

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。