用于分布式稀疏线性系统中改进的并行ILU分解的系统和方法技术方案

技术编号:7157612 阅读:370 留言:0更新日期:2012-04-11 18:40
一种用于分布式稀疏线性系统中并行ILU分解的系统和方法,所述系统和方法采用了对系统内方程的基本节点进行排序的方法并且降低了处理时间。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术大体涉及用于分布式稀疏线性系统的并行ILU分解。更为具体地,本专利技术涉及一种用于在分布稀疏线性系统中求解系统之前,使用并行ILU分解预条件算子对方程的基本节点进行排序的方法。
技术介绍
许多类型的物理过程,包括石油油藏内的流体流动,是由偏微分方程控制的。通常使用有限差、有限体积或者有限元方法来求解这些可能非常复杂的偏微分方程。所有这些方法将物理模型划分为被称为网格块、单元格或者元素的单元。在这些物理单元的每一个中,通过一个或更多的求解变量或未知量给出解。与每个物理单元相关的是一组用于控制这些未知量的特性的方程,方程的数量等于未知量的数量。这些方程还包含来自相邻的物理单元的未知量。因此,方程存在结构,同时,给定物理单元的方程含有来自该物理单元和来自相邻物理单元的未知量。最合宜地,使用节点和连接的组合对其进行描绘,其中节点是由小圆圈描绘的,而连接是由两个节点之间的线条描绘的。节点处的方程含有该节点处的未知量和连接至其上的相邻节点处的未知量。所有节点处的方程集合成单个的矩阵方程。通常,获得所期望的偏微分方程的解的关键任务是求解该矩阵方程。实现该任务的最有效的方式之一是通过使用不完全LU分解法或者ILU,其中原始矩阵被近似分解为两个矩阵L和U的乘积。矩阵L和U为下三角矩阵和上三角矩阵而且分别具有与原始矩阵的下部和上部类似的非零结构。使用这种分解, 通过前向和后向替换迭代地获得了解。一直存在对获得更好的求解准确性的需求。实现该需求的一种方式是将物理模型划分成更小的物理单元,或者换句话讲,使用更多的节点,可能是百万计数量的节点。当然, 为完成其而所需进行的计算的时间增加了。避免这种时间增加的一种方式是在多个处理器上以并行方式执行计算。存在两种类型的并行式计算机,即使用共享式内存和使用分布式内存的计算机。 共享式内存计算机只使用少量的处理器,其限制了可能的运行时间减少。常见的是使用数十个处理器的分布式内存计算机,但是也存在一些使用数千个处理器的分布式内存计算机。期望使用分布式内存并行处理。当使用分布式内存时,通过将物理模型划分成域而使计算并行化,同时,域的数量等于同时使用的处理器的数量。每个域被分配给一个特定的处理器,其执行与该域相关的计算。每个域包含特定的节点组,且每个节点设置在域内。整个建模过程涉及很多计算,几乎所有的计算都是逐个节点进行的。节点处的一些这样的计算只需要节点的本地信息。当信息被完全包含在与节点相同的域内时,该信息对于节点是本地的。这种计算有时被称作密集并行,因为它们不需要为了并行实施而执行特殊处理。其它的计算需要节点处和其相邻节点处的信息。如果节点在自己的域与另一个域的边界上,其一个或更多的相邻节点将位于另一个域内。为了实施需要边界节点处相邻信息的计算,必须从这些相邻节点所属的域内获得关于这些相邻节点的信息。如果所需的信息事先已知,其可以容易地通过“消息传递”获得,而且该计算易于并行进行。重要的是信息事先要已知,这是因为消息的传递将花费时间。具体地,与通常的计算时间相比,存在一个较长的延迟;换句话讲,消息的第一元素需要花费有限的时间到达其接受方。如果该信息是事先已知的,在另一个处理需要该信息之前,含有该信息的消息能够被发送。以这种方式,在需要该信息之前,其已经到达另一个处理。遗憾的是,在分解计算中,所需的信息事先是不知道的。正相反,其是在分解期间产生的。计算是具有“固有顺序”的。计算的一般流程如下1、以在其已被分解的相邻节点处实施的计算为基础,更新当前的节点方程。2、在当前节点处对所得到的修改过的方程进行分解。3、将与当前节点的分解相关的信息提供给其还未被分解的相邻节点。“相邻节点”不必为最接近的节点。它们可以是在几个节点之外的节点。如果只存在一个域,这些计算的顺序性就不成问题。如果存在多于一个的域,这些计算的顺序性将成为问题。信息必须从一个处理发送到另一个处理。如果直到其马上要被另一个处理需要之前才知道该信息,则当含有该信息的消息被发送时,存在一个延迟。如果对计算进行排序使得任何将发送到另一个处理的信息在其被该处理需要之前是充分已知的,则可以避免这些延迟。进一步考虑这一点,假设有两个域。每个域具有内部节点和边界节点,该内部节点只与在同一域内的节点通信,并且该边界节点与两个域内的节点都通信。可按下面的顺序进行处理1、处理域1中的内部节点。2、处理域1中的边界节点。3、从域1发送边界节点信息至域2。4、处理域2中的边界节点。5、处理域2中的内部节点。如果使用这一顺序,直到域1全部结束,域2才能开始其处理。根本不存在并行化计算。如下是一个更好的处理顺序1、以并行方式处理域1中的内部节点和域2中的内部节点。2、处理域1中的边界节点。3、从域1发送边界节点信息至域2。4、处理域2中的边界节点。使用这一顺序,内部节点的计算是并行实施的。这是意义重大的,因为内部节点多于边界节点。但是,边界节点仍是按顺序处理的。一般地,全部节点的20%-40%为边界节点ο存在相当多的用于ILU分解的并行算法。2003年,工业与应用数学协会,Yousef Saad编写("Saad")的“用于稀疏线性系统的迭代方法(第二版)(Iterative Methodsfor Sparse Linear Systems (second edition)) ”一书中介绍了两种算法。其中之一是四5 页-392页描述的多级筛选算法,该算法利用了稀疏线性系统中存在的独立集的优势。然而该算法可能不适用于分布式数据结构。396页-399页描述的第二种算法是在每个处理器上同时对内部节点进行分解,然后以某种顺序处理边界节点。该第二种算法的缺点是当等待来自其它处理器的数据时,一些处理器保持闲置。George Karypis和Vipin Kumar于1998 年刊载在技术报告(Technical R印ort) #96-061上的“基于平行阈值的ILU分解(Parallel Threshold-based ILU factorization) ”中描述了第三种算法,除了对边界节点着色然后对每种颜色的节点进行分解之外,其类似于第二种算法。然而,其可能需要一些颜色。由于需要更多的颜色,必须在处理器之间传递更多的消息,因此通常消弱了求解器的总体性能。因此,存在对于改进的并行ILU分解算法的需求,该算法应能适用于分布式稀疏线性系统并且减少处理时间。
技术实现思路
本专利技术通过提供用于分布式稀疏线性系统中并行ILU分解的系统和方法,满足了上述需求并克服了现有技术中的一个或更多缺陷,该系统和方法采用了对系统内方程的基本节点排序的独特方法并且减少了处理时间。在一个实施例中,本专利技术包含用于对分布式稀疏线性系统中方程的多个基本节点进行排序的方法,其包括i)指定不具有跨越分区界面的连接的节点为内部节点;ii)指定具有跨越分区界面的连接的节点为边界节点;iii)指定不多于三个的代码,以区分边界节点;和iv)通过a)分配第一代码至每个代表第一边界节点的边界节点,其中每个第一边界节点连接不能跨越分区界面以连接两个第一边界节点;b)分配第二代码至每个代表第二边界节点的边界节点,其中每个第二边界节点连接不能跨越分区界面以连接两个第二边界节点;和c)分配第三代码至每个代表第三边本文档来自技高网
...

【技术保护点】
1.一种用于在分布式稀疏线性系统中对方程的多个基本节点进行排序的方法,其包括:将不具有跨越分区界面的连接的节点指定为内部节点;将具有跨越分区界面的连接的节点指定为边界节点;指定不多于三个的代码,以区分所述边界节点;通过:将第一代码分配给每一代表第一边界节点的边界节点,其中每一第一边界节点连接不能跨越分区界面以连接两个第一边界节点;将第二代码分配给每一代表第二边界节点的边界节点,其中每一第二边界节点连接不能跨越分区界面以连接两个第二边界节点;以及将第三代码分配给每一代表第三边界节点的边界节点,其中每一第三边界节点连接不能跨越分区界面以连接一个内部节点,在计算机系统上处理每一所述边界节点。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:王清华
申请(专利权)人:兰德马克绘图国际公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1