一种并行计算方法及系统技术领域
本发明涉及计算机技术领域,具体涉及一种并行计算方法及系统。
背景技术
目前,并行计算技术以其强大、快速的数据处理能力,逐渐成
为计算机数据处理领域中十分重要的一部分。所谓并行计算,是指
同时使用多种计算资源解决计算问题的过程,是提高计算机系统计
算速度和处理能力的一种有效手段。它的基本思想是用多个处理器
来协同求解同一问题,即将被求解的问题分解成若干个部分,各部
分均由一个独立的处理器来并行计算。并行计算系统既可以是专门
设计的、包含有多个处理器的超级计算机,也可以是以某种方式互
连的若干台独立计算机构成的集群。通过并行计算集群完成对数据
的处理,再将处理结果返回给用户。
目前中国研究高性能计算平台的单位主要有清华信息科学与技
术国家实验室、中国科学技术大学超级计算中心、中南大学高性能
计算中心和武汉大学高性能计算系统等。很多科研单位都在建设这
样的并行计算研究平台。无论规模大小,这些超级计算硬件平台,
都有一个共同的问题:在运行并行计算系统时,绝大多数用户登录
上来,都倾向于用N台服务器作N个单机计算,也就是说所谓的并
行计算还是PC单机的串行计算模式,完全没有发挥并行计算的优势。
因为用户开发单机计算软件很方便,而把单机串行计算软件改造成
具有并行计算功能,却是很复杂,无论是学习成本,还是研发成本
都相当高。
在现有技术中,单机计算软件要想实现基于网络通信的并行计
算,必须对原单机计算软件进行并行化改造,包括增加网络通信功
能,以及将原有的适用于单机的方法求解算法改造为适用于网络并
行化计算的算法,如图1所示。
单机计算软件实现并行化改造之后,往往要比原有的单机计算
软件更加复杂,主要表现在:(1)需要将原计算区域划分为多个子
区域,以便将这些子区域分配到不同的计算机上做并行计算;(2)
需要对相邻子区域的交界区域作数据交换,以保证计算结果在这些
交界区域具备一致性;(3)单机计算软件的串行算法与并行计算软
件有较大不同,有些串行算法甚至很难改造为并行算法。因此,单
机计算软件实现并行计算改造的难度和工作量很大,个人用户往往
无法接受,因此极大限制了个人用户对并行计算的应用。
发明内容
本发明所要解决的技术问题是如何让个人用户以极小的代价实
现并行计算。
为此目的,本发明提出了一种能让个人用户以极小的代价实现并
行计算的并行计算方法及系统。
本发明提供一种并行计算方法,包括:
S1,服务器向终端发送计算任务;
S2,所述终端中的第一计算单元执行牛顿迭代法,根据所述计算
任务生成初始值和初始增量值;
S3,所述终端中的第二计算单元判断方程库中是否具备对所述计
算任务进行计算的目标方程,
若具备,则根据所述初始值和初始增量值以及所述目标方程计算
残差,
若不具备,则更新所述方程库,并从更新后的方程库中获取所述
目标方程,根据所述初始值和初始增量值以及所述目标方程计算残差
和增量残差值;
S4,所述第二计算单元将所述残差传输至所述第一计算单元,所
述第一计算单元,根据所述残差和增量残差值计算得到中间值,将所
述中间值传输至所述第二计算单元,
所述第二计算单元判断所述中间值是否为所述目标方程的解,
若所述中间值不是所述目标方程的解,则根据中间值和所述预设
量得到中间增量值,其中,所述中间增量值为所述中间值和预设量之
和,根据所述中间值和所述中间增量值计算残差和增量残差值,直至
所述第一计算单元根据所述第二计算单元得到的残差和增量残差值
进行计算,得到的中间值为所述目标方程的解,则进入步骤S5;
S5,输出所述目标方程的解。
可选地,所述步骤S3包括:
S301,所述第二计算单元将所述初始值和所述初始增量值代入所
述目标方程对应的函数,输出相应的第一残差和第一增量残差;
所述步骤S4包括:
S401,所述第一计算单元根据牛顿迭代法对所述第一残差和第一
增量残差进行计算得到第一中间值,将所述第一中间值传输至所述第
二计算单元;
S402,所述第二计算单元判断所述第一中间值是否为所述目标方
程的解,若不是,则根据所述第一中间值和预设量得到第一增量值,
将所述第一中间值和第一增量值代入所述函数,根据所述函数计算得
到第二残差和第二增量残差,将所述第二残差和第二增量残差传输至
所述第一计算单元,
S403,循环所述步骤401和402,直至所述第一计算单元根据所述
第二计算单元得到的残差进行计算得到的中间值为所述目标方程的
解。
可选地,所述预设量为计算机精度所允许的小量。
可选地,所述步骤S301包括:
S3011,确定所述目标方程对应的函数在所述初始值处的导数,
所述求导公式为:
f , ( x n ) = f ( x n + Δx ) - f ( x n ) Δx ; ]]>
S3012,根据牛顿迭代公式计算所述残差,所述牛顿迭代公式为:
x n + 1 = x n - f ( x n ) f , ( x n ) ; ]]>
其中,n为自然数,当n为0时,x0为初始值,x0+Δx为初始增量
值,n大于等于1时,xn为残差,f(x)=0为所述目标方程,f(x)为所
述目标方程对应的函数。
本发明还提供一种并行计算系统,包括:
发送模块,服务器向终端发送计算任务;
生成模块,所述终端中的第一计算单元执行牛顿迭代法,根据所
述计算任务生成初始值和初始增量值;
判断模块,所述终端中的第二计算单元判断方程库中是否具备对
所述计算任务进行计算的目标方程,
若具备,则根据所述初始值和初始增量值以及所述目标方程计算
残差,
若不具备,则更新所述方程库,并从更新后的方程库中获取所述
目标方程,根据所述初始值和初始增量值以及所述目标方程计算残差
和增量残差值;
传输模块,所述第二计算单元将所述残差传输至所述第一计算单
元,所述第一计算单元,根据所述残差和增量残差值计算得到中间值,
将所述中间值传输至所述第二计算单元,
所述第二计算单元判断所述中间值是否为所述目标方程的解,
若所述中间值不是所述目标方程的解,则根据中间值和所述预设
量得到中间增量值,其中,所述中间增量值为所述中间值和预设量之
和,根据所述中间值和所述中间增量值计算残差和增量残差值,直至
所述第一计算单元根据所述第二计算单元得到的残差和增量残差值
进行计算,得到的中间值为所述目标方程的解,则进入步骤S5;
输出模块,输出所述目标方程的解。
可选地,所述判断模块包括:
输出子模块,所述第二计算单元将所述初始值和所述初始增量值
代入所述目标方程对应的函数,输出相应的第一残差和第一增量残差;
所述传输模块包括:
第一传输子模块,所述第一计算单元根据牛顿迭代法对所述第一
残差和第一增量残差进行计算得到第一中间值,将所述第一中间值传
输至所述第二计算单元;
第二传输子模块,所述第二计算单元判断所述第一中间值是否为
所述目标方程的解,若不是,则根据所述第一中间值和预设量得到第
一增量值,将所述第一中间值和第一增量值代入所述函数,根据所述
函数计算得到第二残差和第二增量残差,将所述第二残差和第二增量
残差传输至所述第一计算单元;
循环子模块,循环所述步骤401和402,直至所述第一计算单元根
据所述第二计算单元得到的残差进行计算得到的中间值为所述目标
方程的解。
可选地,所述预设量为计算机精度所允许的小量。
可选地,所述输出子模块包括:
求导子模块,
确定所述目标方程对应的函数在所述初始值处的导数,所述求导
公式为:
f , ( x n ) = f ( x n + Δx ) - f ( x n ) Δx ; ]]>
计算子模块,
根据牛顿迭代公式计算所述残差,所述牛顿迭代公式为:
x n + 1 = x n - f ( x n ) f , ( x n ) ; ]]>
其中,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,确定目标方程对应的函数在初始值处的导数,求导公式
为:
f , ( x n ) = f ( x n + Δx ) - f ( x n ) Δx - - - ( 1 ) ; ]]>
S3012,根据牛顿迭代公式计算残差,牛顿迭代公式为:
x n + 1 = x n - f ( x n ) f , ( x n ) - - - ( 2 ) ; ]]>
其中,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)
所示:
x n + 1 = x n - f ( x n ) f , ( x n ) - - - ( 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,确定目标方程对应的函数在初始值处的导数,
求导公式为:
f , ( x n ) = f ( x n + Δx ) - f ( x n ) Δx ; ]]>
计算子模块1312,根据牛顿迭代公式计算残差,牛顿迭代公式为:
x n + 1 = x n - f ( x n ) f , ( x n ) ; ]]>
其中,n为自然数,当n为0时,x0为初始值,x0+Δx为初始增量
值,n大于等于1时,xn为残差,f(x)=0为目标方程,f(x)为目标方
程对应的函数。
关于牛顿迭代法的介绍及在本实例中的应用,见上述介绍,在此
不再一一赘述。
综上所述,根据本发明所公开的并行计算系统,该系统通过发送
模块服务器向终端发送计算任务;通过生成模块使终端的第一计算单
元生成初始值,通过判断模块和传输模块,采用牛顿迭代法进行迭代
计算,直至最终计算出目标方程的解。本领域技术人员应该可以知道,
采用牛顿迭代法计算出的方程的解实际是个近拟解。本发明使第一计
算单元在计算时不需要知道目标方程的具体形式,因此使第一计算单
元具有通用性。因此,终端在并行化改造的时候仅需要对第二计算单
元进行改造,或者说更新方程库,本发明使并行化计算改造工作量由
大变为小,能够使个人用户以极小的代价实现并行计算;同时本发明
第二计算单元不需要将计算区域划分为多个子区域,避免了现有技术
中第二计算单元将计算区域划分为多个子区域时对交界区域作数据
交换的步骤。
在本发明中,术语“第一”、“第二”仅用于描述目的,而不能理
解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非
另有明确的限定。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可
以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样
的修改和变型均落入由所附权利要求所限定的范围之内。