CN105068785B - 一种并行计算方法及系统 - Google Patents
一种并行计算方法及系统 Download PDFInfo
- Publication number
- CN105068785B CN105068785B CN201510195152.6A CN201510195152A CN105068785B CN 105068785 B CN105068785 B CN 105068785B CN 201510195152 A CN201510195152 A CN 201510195152A CN 105068785 B CN105068785 B CN 105068785B
- Authority
- CN
- China
- Prior art keywords
- mrow
- computing unit
- increment
- median
- residual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种并行计算方法及系统,该方法通过服务器向终端发送计算任务;每个终端设置有第一计算单元和第二计算单元,第一计算单元采用牛顿迭代法进行计算,使第一计算单元在计算时不需要知道目标方程的具体形式,因此使第一计算单元具有通用性,因此,终端在并行化改造的时候仅需要对第二计算单元进行改造,或者说更新方程库,本发明使并行化计算改造工作量变为小,能够使个人用户以极小的代价实现并行计算。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种并行计算方法及系统。
背景技术
目前,并行计算技术以其强大、快速的数据处理能力,逐渐成为计算机数据处理领域中十分重要的一部分。所谓并行计算,是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理器来并行计算。并行计算系统既可以是专门设计的、包含有多个处理器的超级计算机,也可以是以某种方式互连的若干台独立计算机构成的集群。通过并行计算集群完成对数据的处理,再将处理结果返回给用户。
目前中国研究高性能计算平台的单位主要有清华信息科学与技术国家实验室、中国科学技术大学超级计算中心、中南大学高性能计算中心和武汉大学高性能计算系统等。很多科研单位都在建设这样的并行计算研究平台。无论规模大小,这些超级计算硬件平台,都有一个共同的问题:在运行并行计算系统时,绝大多数用户登录上来,都倾向于用N台服务器作N个单机计算,也就是说所谓的并行计算还是PC单机的串行计算模式,完全没有发挥并行计算的优势。因为用户开发单机计算软件很方便,而把单机串行计算软件改造成具有并行计算功能,却是很复杂,无论是学习成本,还是研发成本都相当高。
在现有技术中,单机计算软件要想实现基于网络通信的并行计算,必须对原单机计算软件进行并行化改造,包括增加网络通信功能,以及将原有的适用于单机的方法求解算法改造为适用于网络并行化计算的算法,如图1所示。
单机计算软件实现并行化改造之后,往往要比原有的单机计算软件更加复杂,主要表现在:(1)需要将原计算区域划分为多个子区域,以便将这些子区域分配到不同的计算机上做并行计算;(2)需要对相邻子区域的交界区域作数据交换,以保证计算结果在这些交界区域具备一致性;(3)单机计算软件的串行算法与并行计算软件有较大不同,有些串行算法甚至很难改造为并行算法。因此,单机计算软件实现并行计算改造的难度和工作量很大,个人用户往往无法接受,因此极大限制了个人用户对并行计算的应用。
发明内容
本发明所要解决的技术问题是如何让个人用户以极小的代价实现并行计算。
为此目的,本发明提出了一种能让个人用户以极小的代价实现并行计算的并行计算方法及系统。
本发明提供一种并行计算方法,包括:
S1,服务器向终端发送计算任务;
S2,所述终端中的第一计算单元执行牛顿迭代法,根据所述计算任务生成初始值和初始增量值;
S3,所述终端中的第二计算单元判断方程库中是否具备对所述计算任务进行计算的目标方程,
若具备,则根据所述初始值和初始增量值以及所述目标方程计算残差,
若不具备,则更新所述方程库,并从更新后的方程库中获取所述目标方程,根据所述初始值和初始增量值以及所述目标方程计算残差和增量残差值;
S4,所述第二计算单元将所述残差传输至所述第一计算单元,所述第一计算单元,根据所述残差和增量残差值计算得到中间值,将所述中间值传输至所述第二计算单元,
所述第二计算单元判断所述中间值是否为所述目标方程的解,
若所述中间值不是所述目标方程的解,则根据中间值和所述预设量得到中间增量值,其中,所述中间增量值为所述中间值和预设量之和,根据所述中间值和所述中间增量值计算残差和增量残差值,直至所述第一计算单元根据所述第二计算单元得到的残差和增量残差值进行计算,得到的中间值为所述目标方程的解,则进入步骤S5;
S5,输出所述目标方程的解。
可选地,所述步骤S3包括:
S301,所述第二计算单元将所述初始值和所述初始增量值代入所述目标方程对应的函数,输出相应的第一残差和第一增量残差;
所述步骤S4包括:
S401,所述第一计算单元根据牛顿迭代法对所述第一残差和第一增量残差进行计算得到第一中间值,将所述第一中间值传输至所述第二计算单元;
S402,所述第二计算单元判断所述第一中间值是否为所述目标方程的解,若不是,则根据所述第一中间值和预设量得到第一增量值,将所述第一中间值和第一增量值代入所述函数,根据所述函数计算得到第二残差和第二增量残差,将所述第二残差和第二增量残差传输至所述第一计算单元,
S403,循环所述步骤401和402,直至所述第一计算单元根据所述第二计算单元得到的残差进行计算得到的中间值为所述目标方程的解。
可选地,所述预设量为计算机精度所允许的小量。
可选地,所述步骤S301包括:
S3011,确定所述目标方程对应的函数在所述初始值处的导数,所述求导公式为:
S3012,根据牛顿迭代公式计算所述残差,所述牛顿迭代公式为:
其中,n为自然数,当n为0时,x0为初始值,x0+Δx为初始增量值,n大于等于1时,xn为残差,f(x)=0为所述目标方程,f(x)为所述目标方程对应的函数。
本发明还提供一种并行计算系统,包括:
发送模块,服务器向终端发送计算任务;
生成模块,所述终端中的第一计算单元执行牛顿迭代法,根据所述计算任务生成初始值和初始增量值;
判断模块,所述终端中的第二计算单元判断方程库中是否具备对所述计算任务进行计算的目标方程,
若具备,则根据所述初始值和初始增量值以及所述目标方程计算残差,
若不具备,则更新所述方程库,并从更新后的方程库中获取所述目标方程,根据所述初始值和初始增量值以及所述目标方程计算残差和增量残差值;
传输模块,所述第二计算单元将所述残差传输至所述第一计算单元,所述第一计算单元,根据所述残差和增量残差值计算得到中间值,将所述中间值传输至所述第二计算单元,
所述第二计算单元判断所述中间值是否为所述目标方程的解,
若所述中间值不是所述目标方程的解,则根据中间值和所述预设量得到中间增量值,其中,所述中间增量值为所述中间值和预设量之和,根据所述中间值和所述中间增量值计算残差和增量残差值,直至所述第一计算单元根据所述第二计算单元得到的残差和增量残差值进行计算,得到的中间值为所述目标方程的解,则进入步骤S5;
输出模块,输出所述目标方程的解。
可选地,所述判断模块包括:
输出子模块,所述第二计算单元将所述初始值和所述初始增量值代入所述目标方程对应的函数,输出相应的第一残差和第一增量残差;
所述传输模块包括:
第一传输子模块,所述第一计算单元根据牛顿迭代法对所述第一残差和第一增量残差进行计算得到第一中间值,将所述第一中间值传输至所述第二计算单元;
第二传输子模块,所述第二计算单元判断所述第一中间值是否为所述目标方程的解,若不是,则根据所述第一中间值和预设量得到第一增量值,将所述第一中间值和第一增量值代入所述函数,根据所述函数计算得到第二残差和第二增量残差,将所述第二残差和第二增量残差传输至所述第一计算单元;
循环子模块,循环所述步骤401和402,直至所述第一计算单元根据所述第二计算单元得到的残差进行计算得到的中间值为所述目标方程的解。
可选地,所述预设量为计算机精度所允许的小量。
可选地,所述输出子模块包括:
求导子模块,
确定所述目标方程对应的函数在所述初始值处的导数,所述求导公式为:
计算子模块,
根据牛顿迭代公式计算所述残差,所述牛顿迭代公式为:
其中,n为自然数,当n为0时,x0为初始值,x0+Δx为初始增量值,n大于等于1时,xn为残差,f(x)=0为所述目标方程,f(x)为所述目标方程对应的函数。
本发明所公开了一种并行计算方法及系统,该方法通过服务器向终端发送计算任务;每个终端设置有第一计算单元和第二计算单元,第一计算单元采用牛顿迭代法进行计算,使第一计算单元在计算时不需要知道目标方程的具体形式,因此,第一计算单元具有通用性。从而使得在对多个终端进行并行化改造的时候仅需要对第二计算单元进行改造,或者说仅需更新方程库,而无需改造每个终端中的串行算法,降低了并行改造难度。本发明使并行化计算改造工作量大为减小,能够使个人用户以极小的代价实现并行计算。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明的现有技术的并行计算方法的网络结构示意图;
图2示出了本发明的其中一个实施例的并行计算方法的网络结构示意图;
图3示出了本发明的其中一个实施例的并行计算方法的流程示意图;
图4示出了本发明的其中一个实施例的并行计算方法的具体流程示意图;
图5示出了本发明的其中一个实施例的并行计算方法的牛顿迭代法的坐标示意图;
图6示出了本发明的其中一个实施例的并行计算系统的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明提供一种并行计算方法,如图2和图3所示,包括:
S1,服务器向终端发送计算任务;
S2,终端中的第一计算单元执行牛顿迭代法,根据计算任务生成初始值和初始增量值;
S3,终端中的第二计算单元判断方程库中是否具备对计算任务进行计算的目标方程,
若具备,则根据初始值和初始增量值以及目标方程计算残差,
若不具备,则更新方程库,并从更新后的方程库中获取目标方程,根据初始值和初始增量值以及目标方程计算残差和增量残差值;
S4,第二计算单元将残差传输至第一计算单元,第一计算单元,根据残差和增量残差值计算得到中间值,将中间值传输至第二计算单元,
第二计算单元判断中间值是否为目标方程的解,
若中间值不是目标方程的解,则根据中间值和预设量得到中间增量值,其中,中间增量值为中间值和预设量之和,根据中间值和中间增量值计算残差和增量残差值,直至第一计算单元根据第二计算单元得到的残差和增量残差值进行计算,得到的中间值为目标方程的解,则进入步骤S5;
S5,输出目标方程的解。
本发明所公开了一种并行计算方法,该方法通过服务器向终端发送计算任务;每个终端设置有第一计算单元和第二计算单元,第一计算单元采用牛顿迭代法进行计算,使第一计算单元在计算时不需要知道目标方程的具体形式,因此使第一计算单元具有通用性。因此,终端在并行化改造的时候仅需要对第二计算单元进行改造,或者说更新方程库,本发明使并行化计算改造工作量由大变为小,能够使个人用户以极小的代价实现并行计算。
在具体实施时,步骤S3包括:
S301,第二计算单元将初始值和初始增量值代入目标方程对应的函数,输出相应的第一残差和第一增量残差。
进一步地,如图4所示,步骤S301包括:
S3011,确定目标方程对应的函数在初始值处的导数,求导公式为:
S3012,根据牛顿迭代公式计算残差,牛顿迭代公式为:
其中,n为自然数,当n为0时,x0为初始值,x0+Δx为初始增量值,n大于等于1时,xn为残差,f(x)=0为目标方程,f(x)为目标方程对应的函数。
在具体实施时,预设量为计算机精度所允许的小量。该小量是指计算精度所允许的最小量附近的预设数值范围,可以根据计算时的实际情况进行设置。
本领域人员应当理解,牛顿迭代法又称为牛顿-拉弗森方法,它是牛顿提出的一种在实数域和复数域上近似求解方程的方法。牛顿迭代法及其延伸算法,例如非精确牛顿迭代法或拟牛顿迭代法等,都属于牛顿迭代法的范畴。
例如,用牛顿迭代法求解目标方程f(x)=0,如图5所示,其中曲线为f(x),曲线与x轴的交点为目标方程f(x)=0的解。首先,选择一个接近使f(x)为0的x0,计算相应的f(x0)和切线斜率(或者计算f(x)在x0的导数)f'(x0),如公式(1)所示。然后计算穿过点(x0,f(x0))并且斜率为f'(x0)的直线和X轴的交点坐标,也就是求如下方程的解:
f(x0)=(x0-x)·f'(x0) (3)
将新求得的点的x坐标命名为x1,通常x1会比x0更接近目标方程f(x)=0的解。再利用x1开始下一轮迭代。迭代公式如公式(2)所示:
在牛顿迭代法的中,根据公式(1)可知,f'(xn)可以根据方程f(x)=0的残差f(xn)和f(xn+Δx)来计算得出,本领域技术人员应该可以知道,根据公式(1)计算得出的f'(xn)实际上为近似值。所谓方程f(x)=0的残差,就是指把x的具体数值,例如xn,代入f(x)计算得到的数值f(xn)。尽管针对不同的计算问题,目标方程f(x)=0的形式各不相同,导致第二计算单元各不相同,但是由于第一计算单元采用牛顿迭代法,在每一步迭代时,只需要知道方程f(x)=0的残差f(xn)和f(xn+Δx)的数值,不需要了解方程f(x)=0的具体形式,可以实现对方程f(x)=0的迭代求解,因此能实现第一计算单元在终端上的通用性。尽管针对不同目标方程f(x)=0的第二计算单元各不相同,第一计算单元仍是相同的。本发明采用牛顿迭代法,能够实现基于网络通信的并行数值计算。
需要说明的是,上述实施例仅是一维方程的例子,如果是多个方程组的牛顿迭代求解,那么f'(xn)将是一个矩阵。本发明的并行计算方法求中间的过程实际是对公式(2)中的矩阵f'(xn)求逆矩阵的过程,而对矩阵f'(xn)求逆矩阵的并行计算方法是已知且公开的。
在具体实施时,步骤S4包括:
S401,第一计算单元根据牛顿迭代法对第一残差和第一增量残差进行计算得到第一中间值,将第一中间值传输至第二计算单元;
S402,第二计算单元判断第一中间值是否为目标方程的解,若不是,则根据第一中间值和预设量得到第一增量值,将第一中间值和第一增量值代入函数,根据函数计算得到第二残差和第二增量残差,将第二残差和第二增量残差传输至第一计算单元,
S403,循环步骤401和402,直至第一计算单元根据第二计算单元得到的残差进行计算得到的中间值为目标方程的解。
根据本发明一个实施例的并行计算方法,通过服务器向终端发送计算任务;每个终端设置有第一计算单元和第二计算单元,根据牛顿迭代法,使第一计算单元在计算时不需要知道目标方程的具体形式,因此使第一计算单元具有通用性,因此,终端在并行化改造的时候仅需要对第二计算单元进行改造,或者说更新方程库,本发明使并行化计算改造工作量由大变为小,能够使个人用户以极小的代价实现并行计算。
本发明还提供一种并行计算系统,如图6所示,包括:
发送模块11,服务器向终端发送计算任务;
生成模块12,终端中的第一计算单元执行牛顿迭代法,根据计算任务生成初始值和初始增量值;
判断模块13,终端中的第二计算单元判断方程库中是否具备对计算任务进行计算的目标方程,
若具备,则根据初始值和初始增量值以及目标方程计算残差,
若不具备,则更新方程库,并从更新后的方程库中获取目标方程,根据初始值和初始增量值以及目标方程计算残差和增量残差值;
传输模块14,第二计算单元将残差传输至第一计算单元,第一计算单元,根据残差和增量残差值计算得到中间值,将中间值传输至第二计算单元,
第二计算单元判断中间值是否为目标方程的解,
若中间值不是目标方程的解,则根据中间值和预设量得到中间增量值,其中,中间增量值为中间值和预设量之和,根据中间值和中间增量值计算残差和增量残差值,直至第一计算单元根据第二计算单元得到的残差和增量残差值进行计算,得到的中间值为目标方程的解,则进入步骤S5;
输出模块15,输出目标方程的解。
根据本发明一个实施例的计算系统包括发送模块、生成模块、判断模块、传输模块和输出模块,发送模块使服务器向终端分配计算任务;生成模块、判断模块和传输模块使第一计算单元和第二计算单元采用牛顿迭代法计算出目标方程的解。由于第一计算单元在计算时不需要知道目标方程的具体形式,因此使第一计算单元具有通用性,因此,终端在并行化改造的时候仅需要对第二计算单元进行改造,或者说更新方程库,本发明使并行化计算改造工作量由大变为小,能够使个人用户以极小的代价实现并行计算。
判断模块13包括:
输出子模块131,第二计算单元将初始值和初始增量值代入目标方程对应的函数,输出相应的第一残差和第一增量残差,图中未示出;
传输模块14包括:
第一传输子模块141,第一计算单元根据牛顿迭代法对第一残差和第一增量残差进行计算得到第一中间值,将第一中间值传输至第二计算单元,图中未示出;
第二传输子模块142,第二计算单元判断第一中间值是否为目标方程的解,若不是,则根据第一中间值和预设量得到第一增量值,将第一中间值和第一增量值代入函数,根据函数计算得到第二残差和第二增量残差,将第二残差和第二增量残差传输至第一计算单元,图中未示出;
循环子模块143,循环步骤401和402,直至第一计算单元根据第二计算单元得到的残差进行计算得到的中间值为目标方程的解,图中未示出。
在具体实施时,预设量为计算机精度所允许的小量。该小量是指计算精度所允许的最小量附近的预设数值范围,可以根据计算时的实际情况进行设置。
判断模块131,图中未示出,包括:
求导子模块1311,确定目标方程对应的函数在初始值处的导数,求导公式为:
计算子模块1312,根据牛顿迭代公式计算残差,牛顿迭代公式为:
其中,n为自然数,当n为0时,x0为初始值,x0+Δx为初始增量值,n大于等于1时,xn为残差,f(x)=0为目标方程,f(x)为目标方程对应的函数。
关于牛顿迭代法的介绍及在本实例中的应用,见上述介绍,在此不再一一赘述。
综上所述,根据本发明所公开的并行计算系统,该系统通过发送模块服务器向终端发送计算任务;通过生成模块使终端的第一计算单元生成初始值,通过判断模块和传输模块,采用牛顿迭代法进行迭代计算,直至最终计算出目标方程的解。本领域技术人员应该可以知道,采用牛顿迭代法计算出的方程的解实际是个近拟解。本发明使第一计算单元在计算时不需要知道目标方程的具体形式,因此使第一计算单元具有通用性。因此,终端在并行化改造的时候仅需要对第二计算单元进行改造,或者说更新方程库,本发明使并行化计算改造工作量由大变为小,能够使个人用户以极小的代价实现并行计算;同时本发明第二计算单元不需要将计算区域划分为多个子区域,避免了现有技术中第二计算单元将计算区域划分为多个子区域时对交界区域作数据交换的步骤。
在本发明中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (8)
1.一种并行计算方法,其特征在于,包括:
S1,服务器向终端发送计算任务;
S2,所述终端中的第一计算单元执行牛顿迭代法,根据所述计算任务生成初始值和初始增量值;
S3,所述终端中的第二计算单元判断方程库中是否具备对所述计算任务进行计算的目标方程,
若具备,则根据所述初始值和初始增量值以及所述目标方程计算残差和增量残差,
若不具备,则更新所述方程库,并从更新后的方程库中获取所述目标方程,根据所述初始值和初始增量值以及所述目标方程计算残差和增量残差值;
S4,所述第二计算单元将所述残差和增量残差传输至所述第一计算单元,所述第一计算单元,根据所述残差和增量残差值计算得到中间值,将所述中间值传输至所述第二计算单元;
所述第二计算单元判断所述中间值是否为所述目标方程的解,
若所述中间值不是所述目标方程的解,则根据中间值和预设量得到中间增量值,其中,所述中间增量值为所述中间值和预设量之和,根据所述中间值和所述中间增量值计算残差和增量残差值,直至所述第一计算单元根据所述第二计算单元得到的残差和增量残差值进行计算,得到的中间值为所述目标方程的解,则进入步骤S5;
S5,输出所述目标方程的解。
2.根据权利要求1所述并行计算方法,其特征在于,
所述步骤S3包括:
S301,所述第二计算单元将所述初始值和所述初始增量值代入所述目标方程对应的函数,输出相应的第一残差和第一增量残差;
所述步骤S4包括:
S401,所述第一计算单元根据牛顿迭代法对所述第一残差和第一增量残差进行计算得到第一中间值,将所述第一中间值传输至所述第二计算单元;
S402,所述第二计算单元判断所述第一中间值是否为所述目标方程的解,若不是,则根据所述第一中间值和预设量得到第一增量值,将所述第一中间值和第一增量值代入所述函数,根据所述函数计算得到第二残差和第二增量残差,将所述第二残差和第二增量残差传输至所述第一计算单元,将所述第二残差和第二增量残差作为所述第一计算单元中的第一残差和第一增量残差;
S403,循环所述步骤401和402,直至所述第一计算单元将所述第二计算单元得到的第二残差和第二增量残差作为所述第一计算单元中的第一残差和第一增量残差进行计算得到的第一中间值为所述目标方程的解。
3.根据权利要求2所述并行计算方法,其特征在于,
所述预设量为计算机精度所允许的小量,所述小量是指计算精度所允许的最小量附近的预设数值范围,根据计算时的实际情况进行设置。
4.根据权利要求2所述并行计算方法,其特征在于,所述步骤S301包括:
S3011,确定所述目标方程对应的函数在所述初始值处的导数,求导公式为:
<mrow>
<msup>
<mi>f</mi>
<mo>,</mo>
</msup>
<mrow>
<mo>(</mo>
<msub>
<mi>x</mi>
<mi>n</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfrac>
<mrow>
<mi>f</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>x</mi>
<mi>n</mi>
</msub>
<mo>+</mo>
<mi>&Delta;</mi>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mi>f</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>x</mi>
<mi>n</mi>
</msub>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mi>&Delta;</mi>
<mi>x</mi>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
S3012,根据牛顿迭代公式计算残差,所述牛顿迭代公式为:
<mrow>
<msub>
<mi>x</mi>
<mrow>
<mi>n</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>=</mo>
<msub>
<mi>x</mi>
<mi>n</mi>
</msub>
<mo>-</mo>
<mfrac>
<mrow>
<mi>f</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>x</mi>
<mi>n</mi>
</msub>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msup>
<mi>f</mi>
<mo>,</mo>
</msup>
<mrow>
<mo>(</mo>
<msub>
<mi>x</mi>
<mi>n</mi>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中,n为自然数,当n为0时,x0为初始值,Δx为计算机精度所允许的小量,x0+Δx为初始增量值,n大于等于1时,xn为残差,xn+Δx为xn的增量值,f(x)=0为所述目标方程,f(x)为所述目标方程对应的函数。
5.一种并行计算系统,其特征在于,包括:
发送模块,用于服务器向终端发送计算任务;
生成模块,用于所述终端中的第一计算单元执行牛顿迭代法,根据所述计算任务生成初始值和初始增量值;
判断模块,用于所述终端中的第二计算单元判断方程库中是否具备对所述计算任务进行计算的目标方程,
若具备,则根据所述初始值和初始增量值以及所述目标方程计算残差和增量残差,
若不具备,则更新所述方程库,并从更新后的方程库中获取所述目标方程,根据所述初始值和初始增量值以及所述目标方程计算残差和增量残差值;
传输模块,用于所述第二计算单元将所述残差和增量残差传输至所述第一计算单元,所述第一计算单元,根据所述残差和增量残差值计算得到中间值,将所述中间值传输至所述第二计算单元,
所述第二计算单元判断所述中间值是否为所述目标方程的解,
若所述中间值不是所述目标方程的解,则根据中间值和预设量得到中间增量值,其中,所述中间增量值为所述中间值和预设量之和,根据所述中间值和所述中间增量值计算残差和增量残差值,直至所述第一计算单元根据所述第二计算单元得到的残差和增量残差值进行计算,得到的中间值为所述目标方程的解,则进入输出模块;
输出模块,用于输出所述目标方程的解。
6.根据权利要求5所述并行计算系统,其特征在于,
所述判断模块包括:
输出子模块,用于所述第二计算单元将所述初始值和所述初始增量值代入所述目标方程对应的函数,输出相应的第一残差和第一增量残差;
所述传输模块包括:
第一传输子模块,用于所述第一计算单元根据牛顿迭代法对所述第一残差和第一增量残差进行计算得到第一中间值,将所述第一中间值传输至所述第二计算单元;
第二传输子模块,用于所述第二计算单元判断所述第一中间值是否为所述目标方程的解,若不是,则根据所述第一中间值和预设量得到第一增量值,将所述第一中间值和第一增量值代入所述函数,根据所述函数计算得到第二残差和第二增量残差,将所述第二残差和第二增量残差传输至所述第一计算单元,将所述第二残差和第二增量残差作为所述第一计算单元中的第一残差和第一增量残差;
循环子模块,用于循环所述第一传输子模块和第二传输子模块,直至所述第一计算单元将所述第二计算单元得到的第二残差和第二增量残差作为所述第一计算单元中的第一残差和第一增量残差进行计算得到的第一中间值为所述目标方程的解。
7.根据权利要求6所述并行计算系统,其特征在于,
所述预设量为计算机精度所允许的小量,所述小量是指计算精度所允许的最小量附近的预设数值范围,根据计算时的实际情况进行设置。
8.根据权利要求6所述并行计算系统,其特征在于,所述输出子模块包括:
求导子模块,用于
确定所述目标方程对应的函数在所述初始值处的导数,求导公式为:
<mrow>
<msup>
<mi>f</mi>
<mo>,</mo>
</msup>
<mrow>
<mo>(</mo>
<msub>
<mi>x</mi>
<mi>n</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfrac>
<mrow>
<mi>f</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>x</mi>
<mi>n</mi>
</msub>
<mo>+</mo>
<mi>&Delta;</mi>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mi>f</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>x</mi>
<mi>n</mi>
</msub>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mi>&Delta;</mi>
<mi>x</mi>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
计算子模块,用于
根据牛顿迭代公式计算残差,所述牛顿迭代公式为:
<mrow>
<msub>
<mi>x</mi>
<mrow>
<mi>n</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>=</mo>
<msub>
<mi>x</mi>
<mi>n</mi>
</msub>
<mo>-</mo>
<mfrac>
<mrow>
<mi>f</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>x</mi>
<mi>n</mi>
</msub>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msup>
<mi>f</mi>
<mo>,</mo>
</msup>
<mrow>
<mo>(</mo>
<msub>
<mi>x</mi>
<mi>n</mi>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中,n为自然数,当n为0时,x0为初始值,Δx为计算机精度所允许的小量,x0+Δx为初始增量值,n大于等于1时,xn为残差,xn+Δx为xn的增量值,f(x)=0为所述目标方程,f(x)为所述目标方程对应的函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510195152.6A CN105068785B (zh) | 2015-04-22 | 2015-04-22 | 一种并行计算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510195152.6A CN105068785B (zh) | 2015-04-22 | 2015-04-22 | 一种并行计算方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105068785A CN105068785A (zh) | 2015-11-18 |
CN105068785B true CN105068785B (zh) | 2018-04-10 |
Family
ID=54498166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510195152.6A Active CN105068785B (zh) | 2015-04-22 | 2015-04-22 | 一种并行计算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105068785B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666367A (en) * | 1996-11-08 | 1997-09-09 | Hewlett-Packard Company | Method for simulating a circuit |
CN101432696A (zh) * | 2004-10-20 | 2009-05-13 | 卡登斯设计系统公司 | 模型编译方法 |
CN103049663A (zh) * | 2012-12-25 | 2013-04-17 | 深圳先进技术研究院 | 磁共振弹性成像中的弹性模量重建方法和系统 |
CN103425833A (zh) * | 2013-08-07 | 2013-12-04 | 湖南大学 | 一种基于熵格子波尔兹曼模型的并行流体计算实现方法 |
CN103795058A (zh) * | 2014-02-12 | 2014-05-14 | 国家电网公司 | 电力系统的静态电压稳定裕度分析及系统故障排序方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2479603A1 (en) * | 2004-10-01 | 2006-04-01 | Sureshchandra B. Patel | Sequential and parallel loadflow computation for electrical power system |
US8340945B2 (en) * | 2009-08-24 | 2012-12-25 | International Business Machines Corporation | Method for joint modeling of mean and dispersion |
-
2015
- 2015-04-22 CN CN201510195152.6A patent/CN105068785B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666367A (en) * | 1996-11-08 | 1997-09-09 | Hewlett-Packard Company | Method for simulating a circuit |
CN101432696A (zh) * | 2004-10-20 | 2009-05-13 | 卡登斯设计系统公司 | 模型编译方法 |
CN103049663A (zh) * | 2012-12-25 | 2013-04-17 | 深圳先进技术研究院 | 磁共振弹性成像中的弹性模量重建方法和系统 |
CN103425833A (zh) * | 2013-08-07 | 2013-12-04 | 湖南大学 | 一种基于熵格子波尔兹曼模型的并行流体计算实现方法 |
CN103795058A (zh) * | 2014-02-12 | 2014-05-14 | 国家电网公司 | 电力系统的静态电压稳定裕度分析及系统故障排序方法 |
Non-Patent Citations (1)
Title |
---|
"油藏化学驱平衡方程解法改进";陈书堂 等;《清华大学学报》;20021230;第42卷(第10期);第1334-1346页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105068785A (zh) | 2015-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fan et al. | Performance evaluation of blockchain systems: A systematic survey | |
Gendre et al. | Non-intrusive and exact global/local techniques for structural problems with local plasticity | |
Xie et al. | Power of d choices for large-scale bin packing: A loss model | |
Seshadhri et al. | Wedge sampling for computing clustering coefficients and triangle counts on large graphs | |
Brandfass et al. | Rank reordering for MPI communication optimization | |
CN103049710B (zh) | 用于sm2数字签名验证算法的fpga芯片 | |
CN106681688A (zh) | 一种基于minhash的集合相似度计算方法和系统 | |
Valero‐Lara et al. | cuThomasBatch and cuThomasVBatch, CUDA routines to compute batch of tridiagonal systems on NVIDIA GPUs | |
CN108052387A (zh) | 一种移动云计算中的资源分配预测方法及系统 | |
CN105068785B (zh) | 一种并行计算方法及系统 | |
DE102018126931A1 (de) | Vorrichtung und Verfahren auf der Basis direkter anonymer Attestierung | |
Cao et al. | Integrating Amdahl-like laws and divisible load theory | |
Kruse et al. | Parallel solution of saddle point systems with nested iterative solvers based on the Golub‐Kahan Bidiagonalization | |
Edrees et al. | Hardware-Optimized Ziggurat Algorithm for High-Speed Gaussian Random Number Generators. | |
CN112733416B (zh) | 一种计算粒子间相互作用力的方法及系统 | |
Wyrzykowski et al. | Parallel processing and applied mathematics | |
Chen et al. | Mesh partitioning for distributed systems | |
Carracciuolo et al. | Implementation of a non‐linear solver on heterogeneous architectures | |
CN113157806A (zh) | 网格数据分布式存储服务系统、方法、装置、设备及介质 | |
Peinado et al. | Speeding up solving of differential matrix Riccati equations using GPGPU computing and MATLAB | |
Yessayan et al. | Development of a parallel performance model for the THOR neutral particle transport code | |
CN105224806A (zh) | 一种获取非晶态物质径向分布的方法 | |
Yuan et al. | ParaCopasi: A package for parallel biochemical simulation and analysis | |
CN114218184B (zh) | 工业互联网平台数据处理方法、装置及电子设备 | |
CN106033465A (zh) | 一种信息推送方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |