一种并行计算方法及系统的制作方法

文档序号:9349723阅读:404来源:国知局
一种并行计算方法及系统的制作方法
【技术领域】
[0001] 本发明涉及计算机技术领域,具体涉及一种并行计算方法及系统。
【背景技术】
[0002] 目前,并行计算技术以其强大、快速的数据处理能力,逐渐成为计算机数据处理领 域中十分重要的一部分。所谓并行计算,是指同时使用多种计算资源解决计算问题的过程, 是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来 协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理器 来并行计算。并行计算系统既可以是专门设计的、包含有多个处理器的超级计算机,也可以 是以某种方式互连的若干台独立计算机构成的集群。通过并行计算集群完成对数据的处 理,再将处理结果返回给用户。
[0003] 目前中国研究高性能计算平台的单位主要有清华信息科学与技术国家实验室、中 国科学技术大学超级计算中心、中南大学高性能计算中心和武汉大学高性能计算系统等。 很多科研单位都在建设这样的并行计算研究平台。无论规模大小,这些超级计算硬件平台, 都有一个共同的问题:在运行并行计算系统时,绝大多数用户登录上来,都倾向于用N台服 务器作N个单机计算,也就是说所谓的并行计算还是PC单机的串行计算模式,完全没有发 挥并行计算的优势。因为用户开发单机计算软件很方便,而把单机串行计算软件改造成具 有并行计算功能,却是很复杂,无论是学习成本,还是研发成本都相当高。
[0004] 在现有技术中,单机计算软件要想实现基于网络通信的并行计算,必须对原单机 计算软件进行并行化改造,包括增加网络通信功能,以及将原有的适用于单机的方法求解 算法改造为适用于网络并行化计算的算法,如图1所示。
[0005] 单机计算软件实现并行化改造之后,往往要比原有的单机计算软件更加复杂,主 要表现在:(1)需要将原计算区域划分为多个子区域,以便将这些子区域分配到不同的计 算机上做并行计算;(2)需要对相邻子区域的交界区域作数据交换,以保证计算结果在这 些交界区域具备一致性;(3)单机计算软件的串行算法与并行计算软件有较大不同,有些 串行算法甚至很难改造为并行算法。因此,单机计算软件实现并行计算改造的难度和工作 量很大,个人用户往往无法接受,因此极大限制了个人用户对并行计算的应用。

【发明内容】

[0006] 本发明所要解决的技术问题是如何让个人用户以极小的代价实现并行计算。
[0007] 为此目的,本发明提出了一种能让个人用户以极小的代价实现并行计算的并行计 算方法及系统。
[0008] 本发明提供一种并行计算方法,包括:
[0009] S1,服务器向终端发送计算任务;
[0010] S2,所述终端中的第一计算单元执行牛顿迭代法,根据所述计算任务生成初始值 和初始增量值;
[0011] S3,所述终端中的第二计算单元判断方程库中是否具备对所述计算任务进行计算 的目标方程,
[0012] 若具备,则根据所述初始值和初始增量值以及所述目标方程计算残差,
[0013] 若不具备,则更新所述方程库,并从更新后的方程库中获取所述目标方程,根据所 述初始值和初始增量值以及所述目标方程计算残差和增量残差值;
[0014] S4,所述第二计算单元将所述残差传输至所述第一计算单元,所述第一计算单元, 根据所述残差和增量残差值计算得到中间值,将所述中间值传输至所述第二计算单元,
[0015] 所述第二计算单元判断所述中间值是否为所述目标方程的解,
[0016] 若所述中间值不是所述目标方程的解,则根据中间值和所述预设量得到中间增量 值,其中,所述中间增量值为所述中间值和预设量之和,根据所述中间值和所述中间增量值 计算残差和增量残差值,直至所述第一计算单元根据所述第二计算单元得到的残差和增量 残差值进行计算,得到的中间值为所述目标方程的解,则进入步骤S5 ;
[0017] S5,输出所述目标方程的解。
[0018] 可选地,所述步骤S3包括:
[0019] S301,所述第二计算单元将所述初始值和所述初始增量值代入所述目标方程对应 的函数,输出相应的第一残差和第一增量残差;
[0020] 所述步骤S4包括:
[0021] S401,所述第一计算单元根据牛顿迭代法对所述第一残差和第一增量残差进行计 算得到第一中间值,将所述第一中间值传输至所述第二计算单元;
[0022] S402,所述第二计算单元判断所述第一中间值是否为所述目标方程的解,若不是, 则根据所述第一中间值和预设量得到第一增量值,将所述第一中间值和第一增量值代入所 述函数,根据所述函数计算得到第二残差和第二增量残差,将所述第二残差和第二增量残 差传输至所述第一计算单元,
[0023] S403,循环所述步骤401和402,直至所述第一计算单元根据所述第二计算单元得 到的残差进行计算得到的中间值为所述目标方程的解。
[0024] 可选地,所述预设量为计算机精度所允许的小量。
[0025] 可选地,所述步骤S301包括:
[0026] S3011,确定所述目标方程对应的函数在所述初始值处的导数,所述求导公式为:
[0030] 其中,n为自然数,当n为0时,X。为初始值,X。+A X为初始增量值,n大于等于1 时,\为残差,f(x) = 〇为所述目标方程,f(x)为所述目标方程对应的函数。
[0031] 本发明还提供一种并行计算系统,包括:
[0032] 发送模块,服务器向终端发送计算任务;
[0033] 生成模块,所述终端中的第一计算单元执行牛顿迭代法,根据所述计算任务生成 初始值和初始增量值;
[0034] 判断模块,所述终端中的第二计算单元判断方程库中是否具备对所述计算任务进 行计算的目标方程,
[0035] 若具备,则根据所述初始值和初始增量值以及所述目标方程计算残差,
[0036] 若不具备,则更新所述方程库,并从更新后的方程库中获取所述目标方程,根据所 述初始值和初始增量值以及所述目标方程计算残差和增量残差值;
[0037] 传输模块,所述第二计算单元将所述残差传输至所述第一计算单元,所述第一计 算单元,根据所述残差和增量残差值计算得到中间值,将所述中间值传输至所述第二计算 单元,
[0038] 所述第二计算单元判断所述中间值是否为所述目标方程的解,
[0039] 若所述中间值不是所述目标方程的解,则根据中间值和所述预设量得到中间增量 值,其中,所述中间增量值为所述中间值和预设量之和,根据所述中间值和所述中间增量值 计算残差和增量残差值,直至所述第一计算单元根据所述第二计算单元得到的残差和增量 残差值进行计算,得到的中间值为所述目标方程的解,则进入步骤S5 ;
[0040] 输出模块,输出所述目标方程的解。
[0041 ] 可选地,所述判断模块包括:
[0042] 输出子模块,所述第二计算单元将所述初始值和所述初始增量值代入所述目标方 程对应的函数,输出相应的第一残差和第一增量残差;
[0043] 所述传输模块包括:
[0044] 第一传输子模块,所述第一计算单元根据牛顿迭代法对所述第一残差和第一增量 残差进行计算得到第一中间值,将所述第一中间值传输至所述第二计算单元;
[0045] 第二传输子模块,所述第二计算单元判断所述第一中间值是否为所述目标方程的 解,若不是,则根据所述第一中间值和预设量得到第一增量值,将所述第一中间值和第一增 量值代入所述函数,根据所述函数计算得到第二残差和第二增量残差,将所述第二残差和 第二增量残差传输至所述第一计算单元;
[0046] 循环子模块,循环所述步骤401和402,直至所述第一计算单元根据所述第二计算 单元得到的残差进行计算得到的中间值为所述目标方程的解。
[0047] 可选地,所述预设量为计算机精度所允许的小量。
[0048] 可选地,所述输出子模块包括:
[0049] 求导子模块,
[0050] 确定所述目标方程对应的函数在所述初始值处的导数,所述求导公式为:
[0055] 其中,n为自然数,当n为0时,X。为初始值,X。+ A X为初始增量值,n大于等于1 时,\为残差,f(x) = 〇为所述目标方程,f(x)为所述目标方程对应的函数。
[0056] 本发明所公开了一种并行计算方法及系统,该方法通过服务器向终端发送计算任 务;每个终端设置有第一计算单元和第二计算单元,第一计算单元采用牛顿迭代法进行计 算,使第一计算单元在计算时不需要知道目标方程的具体形式,因此,第一计算单元具有通 用性。从而使得在对多个终端进行并行化改造的时候仅需要对第二计算单元进行改造,或 者说仅需更新方程库,而无需改造每个终端中的串行算法,降低了并行改造难度。本发明使 并行化计算改造
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1