书签 分享 收藏 举报 版权申诉 / 16

一种并行计算方法及系统.pdf

  • 上传人:1**
  • 文档编号:6385623
  • 上传时间:2019-06-06
  • 格式:PDF
  • 页数:16
  • 大小:879.55KB
  • 摘要
    申请专利号:

    CN201510195152.6

    申请日:

    2015.04.22

    公开号:

    CN105068785A

    公开日:

    2015.11.18

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 9/38申请日:20150422|||公开

    IPC分类号:

    G06F9/38

    主分类号:

    G06F9/38

    申请人:

    清华大学

    发明人:

    孙喜明; 董玉杰; 石磊; 马远乐; 李富

    地址:

    100084北京市海淀区清华园82信箱

    优先权:

    专利代理机构:

    北京路浩知识产权代理有限公司11002

    代理人:

    李相雨

    PDF完整版下载: PDF下载
    内容摘要

    本发明涉及一种并行计算方法及系统,该方法通过服务器向终端发送计算任务;每个终端设置有第一计算单元和第二计算单元,第一计算单元采用牛顿迭代法进行计算,使第一计算单元在计算时不需要知道目标方程的具体形式,因此使第一计算单元具有通用性,因此,终端在并行化改造的时候仅需要对第二计算单元进行改造,或者说更新方程库,本发明使并行化计算改造工作量变为小,能够使个人用户以极小的代价实现并行计算。

    权利要求书

    1.一种并行计算方法,其特征在于,包括:
    S1,服务器向终端发送计算任务;
    S2,所述终端中的第一计算单元执行牛顿迭代法,根据所述计算
    任务生成初始值和初始增量值;
    S3,所述终端中的第二计算单元判断方程库中是否具备对所述计
    算任务进行计算的目标方程,
    若具备,则根据所述初始值和初始增量值以及所述目标方程计算
    残差,
    若不具备,则更新所述方程库,并从更新后的方程库中获取所述
    目标方程,根据所述初始值和初始增量值以及所述目标方程计算残差
    和增量残差值;
    S4,所述第二计算单元将所述残差传输至所述第一计算单元,所
    述第一计算单元,根据所述残差和增量残差值计算得到中间值,将所
    述中间值传输至所述第二计算单元,
    所述第二计算单元判断所述中间值是否为所述目标方程的解,
    若所述中间值不是所述目标方程的解,则根据中间值和所述预设
    量得到中间增量值,其中,所述中间增量值为所述中间值和预设量之
    和,根据所述中间值和所述中间增量值计算残差和增量残差值,直至
    所述第一计算单元根据所述第二计算单元得到的残差和增量残差值
    进行计算,得到的中间值为所述目标方程的解,则进入步骤S5;
    S5,输出所述目标方程的解。
    2.根据权利要求1所述并行计算方法,其特征在于,
    所述步骤S3包括:
    S301,所述第二计算单元将所述初始值和所述初始增量值代入所
    述目标方程对应的函数,输出相应的第一残差和第一增量残差;
    所述步骤S4包括:
    S401,所述第一计算单元根据牛顿迭代法对所述第一残差和第一
    增量残差进行计算得到第一中间值,将所述第一中间值传输至所述第
    二计算单元;
    S402,所述第二计算单元判断所述第一中间值是否为所述目标方
    程的解,若不是,则根据所述第一中间值和预设量得到第一增量值,
    将所述第一中间值和第一增量值代入所述函数,根据所述函数计算得
    到第二残差和第二增量残差,将所述第二残差和第二增量残差传输至
    所述第一计算单元,
    S403,循环所述步骤401和402,直至所述第一计算单元根据所述
    第二计算单元得到的残差进行计算得到的中间值为所述目标方程的
    解。
    3.根据权利要求2所述并行计算方法,其特征在于,
    所述预设量为计算机精度所允许的小量。
    4.根据权利要求2所述并行计算方法,其特征在于,所述步骤
    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)为所
    述目标方程对应的函数。
    5.一种并行计算系统,其特征在于,包括:
    发送模块,服务器向终端发送计算任务;
    生成模块,所述终端中的第一计算单元执行牛顿迭代法,根据所
    述计算任务生成初始值和初始增量值;
    判断模块,所述终端中的第二计算单元判断方程库中是否具备对
    所述计算任务进行计算的目标方程,
    若具备,则根据所述初始值和初始增量值以及所述目标方程计算
    残差,
    若不具备,则更新所述方程库,并从更新后的方程库中获取所述
    目标方程,根据所述初始值和初始增量值以及所述目标方程计算残差
    和增量残差值;
    传输模块,所述第二计算单元将所述残差传输至所述第一计算单
    元,所述第一计算单元,根据所述残差和增量残差值计算得到中间值,
    将所述中间值传输至所述第二计算单元,
    所述第二计算单元判断所述中间值是否为所述目标方程的解,
    若所述中间值不是所述目标方程的解,则根据中间值和所述预设
    量得到中间增量值,其中,所述中间增量值为所述中间值和预设量之
    和,根据所述中间值和所述中间增量值计算残差和增量残差值,直至
    所述第一计算单元根据所述第二计算单元得到的残差和增量残差值
    进行计算,得到的中间值为所述目标方程的解,则进入步骤S5;
    输出模块,输出所述目标方程的解。
    6.根据权利要求5所述并行计算系统,其特征在于,
    所述判断模块包括:
    输出子模块,所述第二计算单元将所述初始值和所述初始增量值
    代入所述目标方程对应的函数,输出相应的第一残差和第一增量残差;
    所述传输模块包括:
    第一传输子模块,所述第一计算单元根据牛顿迭代法对所述第一
    残差和第一增量残差进行计算得到第一中间值,将所述第一中间值传
    输至所述第二计算单元;
    第二传输子模块,所述第二计算单元判断所述第一中间值是否为
    所述目标方程的解,若不是,则根据所述第一中间值和预设量得到第
    一增量值,将所述第一中间值和第一增量值代入所述函数,根据所述
    函数计算得到第二残差和第二增量残差,将所述第二残差和第二增量
    残差传输至所述第一计算单元;
    循环子模块,循环所述步骤401和402,直至所述第一计算单元根
    据所述第二计算单元得到的残差进行计算得到的中间值为所述目标
    方程的解。
    7.根据权利要求6所述并行计算系统,其特征在于,
    所述预设量为计算机精度所允许的小量。
    8.根据权利要求6所述并行计算系统,其特征在于,所述输出子
    模块包括:
    求导子模块,
    确定所述目标方程对应的函数在所述初始值处的导数,所述求导
    公式为:
    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)为所
    述目标方程对应的函数。

    说明书

    一种并行计算方法及系统

    技术领域

    本发明涉及计算机技术领域,具体涉及一种并行计算方法及系统。

    背景技术

    目前,并行计算技术以其强大、快速的数据处理能力,逐渐成
    为计算机数据处理领域中十分重要的一部分。所谓并行计算,是指
    同时使用多种计算资源解决计算问题的过程,是提高计算机系统计
    算速度和处理能力的一种有效手段。它的基本思想是用多个处理器
    来协同求解同一问题,即将被求解的问题分解成若干个部分,各部
    分均由一个独立的处理器来并行计算。并行计算系统既可以是专门
    设计的、包含有多个处理器的超级计算机,也可以是以某种方式互
    连的若干台独立计算机构成的集群。通过并行计算集群完成对数据
    的处理,再将处理结果返回给用户。

    目前中国研究高性能计算平台的单位主要有清华信息科学与技
    术国家实验室、中国科学技术大学超级计算中心、中南大学高性能
    计算中心和武汉大学高性能计算系统等。很多科研单位都在建设这
    样的并行计算研究平台。无论规模大小,这些超级计算硬件平台,
    都有一个共同的问题:在运行并行计算系统时,绝大多数用户登录
    上来,都倾向于用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)为目标方
    程对应的函数。

    关于牛顿迭代法的介绍及在本实例中的应用,见上述介绍,在此
    不再一一赘述。

    综上所述,根据本发明所公开的并行计算系统,该系统通过发送
    模块服务器向终端发送计算任务;通过生成模块使终端的第一计算单
    元生成初始值,通过判断模块和传输模块,采用牛顿迭代法进行迭代
    计算,直至最终计算出目标方程的解。本领域技术人员应该可以知道,
    采用牛顿迭代法计算出的方程的解实际是个近拟解。本发明使第一计
    算单元在计算时不需要知道目标方程的具体形式,因此使第一计算单
    元具有通用性。因此,终端在并行化改造的时候仅需要对第二计算单
    元进行改造,或者说更新方程库,本发明使并行化计算改造工作量由
    大变为小,能够使个人用户以极小的代价实现并行计算;同时本发明
    第二计算单元不需要将计算区域划分为多个子区域,避免了现有技术
    中第二计算单元将计算区域划分为多个子区域时对交界区域作数据
    交换的步骤。

    在本发明中,术语“第一”、“第二”仅用于描述目的,而不能理
    解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非
    另有明确的限定。

    虽然结合附图描述了本发明的实施方式,但是本领域技术人员可
    以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样
    的修改和变型均落入由所附权利要求所限定的范围之内。

    关 键  词:
    一种 并行 计算方法 系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种并行计算方法及系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6385623.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1