化学驱油藏数模并行化中的关键技术

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

万方数据

软件天地中文核心期刊‘徽计算机信息'(测控自动化}2007年第23卷第10-1期

对整个油{葭进行网格划分后,将所有网格块的质量平衡方点,这样保证了一定的空何局部性和静态的负载平衡.每个节程鬟妻至:耋毒黑髦油。!:兰黧;!置:善篇薯鼍亍点拥有Ⅳ‰,=笋盟+‰甜同格块,其中Na—LI,。,是

一个不定常非线性偏微分组.其中未知量数目为N・(N—N一2),…’。”出”Ⅳ7Ⅳ。。mⅢ

…一…’一。’,“。。N为网格敦.其初始条件是零时刻的物理场分布,其边界条件是分配刊子区域的网格数.Nno【,Y,z)是x、Y、Z方向上的总网格在边界上投有流体的流人和流出,利用上述给定的初始条件和数,N倒^,y,z)是问题分解在x、Y、Z方向的处理器数,N。柚是边界条件就可以对整个方程组进行求解。子空间在给定方向上的邻近子区域数。一个15x20x6的油藏化学复合驱果用的是Impes法。其基本思路是在一个时间划分,假定可用的处理嚣数为12,则处理器的排列方式可能是步长内只把压力作为变量,而在方程中出现的饱和度,组分浓3x4×1.那么各于区域数组的维数是7x7x6。图2显示了网格度等都取前一时刻的值,即只对压力变量形成系数矩阵。求解的划分和各子区域阿格块数的兰系。UTCHEM的并行实现应

出压力后再利用各种化学关系显式地求解其它变量。对于压力方程,空间差分选用一鼢向前差分和二阶中心差分,采用雅克比共轭梯度法进行求解。压力方程求解之后.得到了全场各十网格点的压力变量,然后显式求解各点舶饱和度和备组分浓度。图1是化学复合驱程序运行流程图。

:;:;h叫*一m*卜≈黼H*m-一eHj:嚣:4Hm—mt!竺!r弋=旦

...........L

Ihm∞:t**嘛::。。雾、————/l%自目t≮:i卜}.J—T———————7—赢亍、r一‘—-————一氟;孙圈1化学复合驱程序运行过程

图2油藏网格划分简单示例

3并行模型及关键技术

化学复合驱并行模型采用单程序多数据(SPMD)程序模型.利用区域分解方法使得多个计苒节点同时求解一个单一的模拟问题.各计算节点通过消息传递对必要的数据进行通信。

3.I初始化

执行开始时.主节点(NODE0)将整个模拟空间的网格块在各处理节点之间划分.每十节点接收必要的同格数据.来保证节点内部的计算。该划分是有主节点控制的,这个阶段它的主要职责是保证整个网络和计算的负载均衡。

32网格划分

并行宴现的主要目的是降低执行时间和解决大规模计算嚣要的内存不足问题。对于第二个问题,并行程序改变了原始串行程序中的数组大小,只分配子区域计算所需的内存。即子区域的空间加一个厨绕在其周围的信封空间佃2中的l!!;影网格).信封空间用来接收来之相邻区域的数据。

网格块划分机制将连续编号的舟格映分配给虚拟计算节用区域划分技术,模拟期间各处理节点和其相邻节点需要一定的共享数据(图中阴髟部分)。不同子区域上的模榴可以作为一个独立的问题并行的执行,也就是在不同的数据集上同步执行相同的运算(SPMD)。因为每一个子区域的计苒需要槲邻区域上的一些数据,相邻节点之间在指定的同步点上进行显式的消息传输。

3.3I/o控制

在这个实现方案中,YO是通过一个指定节点(NODEO)串行控制的。程序初始阶段。I/0节点负责读人输人数据并将数据划分到各子区域。在程序输出阶段。I/O节点综合所有节点发送给它的部分运算结果,然后写入到磁盘文件。这样的控制方式带来两个缺点:一是因为指定了I/O控制节点.在它读^输人数据时候其它节点都在等待:二是在输出阶段、其它节点都向I/0节点发送数据,110节点成为消息传递的瓶颈。

3_4基于区域分解法的线性解法器

串行UTCHEM中雅克比共轭梯度法线性解法器的并行救宰不是很好。本文采用一种基于加法Schwarz两条件子的共轭梯度区域分解算法。对于线性系统Ap=b,A是压力矩阵,P是未知压力向量,b是边界向量值。在每一次求解迭代n中.预条件残余向量足通过求解Mz“=,得到,其中,是当前残余量.也就是rkb—Ap。,一是预条件残余量,M是预条件矩阵。在加法Schwarz方法中,是不需要M矩阵的.因为通过下进步骤可以计算出矩阵M“和^

f1)将整个问题的残余和系数矩阵分配到扩展子区域上(包括藿叠边界同格块)。在每个扩展子区域上用统一的狄利克雷边界条件求解A一=一。在扩展子区域边界和全局区域边界一致的地方,使用原始边界条件。{2)计算完所有的子区域后,将局部结果相加构成全局顶条件子残余。

4测试结果及结论

试验环境为基于SMP的千亿次计算机机群系统.其中16个计算结点各拥有2个IntelXeon28GHZCPU、2G内存.节点之间由干兆以太网同连接,该集群的计算理论峰值为1792亿次,INPACK实测峰值为995亿次。经过多组测试.改造后的并行程序与原串行程序的运算结果完全一致。被并行模块(压力方程组求解)在16个节点取得6.4的加速比。图3中的曲线可以看出随着网格规模的增加,所取得的加速比和效率有所提高,说蹦数据规模越大越能体现并行效果。

测试结果证明区域分解算磕应用与大规模偏微分方程组求解能够取得很好的加速效果。但实际的应用问题往往并不是耶么简单.需要很好的策划各计算节点的负载平衡问题和节点间数据通信的代价。尤其是节点之间的通信问题。

一250—360无1年邮局订阅号:82.946万方数据

万方数据

相关文档
最新文档