基于虚拟树型网络技术的分布式高性能计算的方法

文档序号:8383837阅读:280来源:国知局
基于虚拟树型网络技术的分布式高性能计算的方法
【技术领域】
[0001]本发明涉及计算机分布式计算领域,具体涉及基于虚拟树型网络技术的分布式高性能计算方法。
【背景技术】
[0002]高性能计算一直是国家、科学界、企业界特别关注的主题。每年国际上都有超级计算机排名。从核武器模拟到引力波探测,都需要巨大的计算能力。高性能计算如仿真模拟、力学计算、生物信息学计算、系统生物学计算等等都是各领域的关键。我们知道,这些关键任务一般需执行数小时、几天、几个月,甚至连目前最强大的超级计算机都根本计算不出来。一般情况下,解决此类的关键任务需要高性能的计算机。然而,高性能计算机价格昂贵(“天河二号”每日仅电费一项开支就超30万人民币),并且经常满足不了高强度计算的需要。因此,如何将任务在大规模网络上并行执行从而提高效率和减少执行时间,使这些任务能在价格低廉的计算机(如Cluster、甚至PC机)上运行,具有非常重大的科学价值和经济、社会意义。
[0003]云计算将网络、计算机等组成一个统一的资源为用户提供透明的服务。在云计算环境下,利用大量的价格低廉的计算机是高性能计算一个可行的解决办法。云计算是近年来发展起来旨在解决大规模网络环境下的资源、信息共享与协同的分布式计算环境。随着云计算环境中计算机节点的增加,云计算环境规模越来越大。大规模云计算环境下计算处理能力和存贮能力大大提高。
[0004]将任务划分为子任务,分配到多个节点并行执行从而提供整体计算能力是当前国际上分布式计算研究的趋势。并行计算在集群机(Cluster)方面,有很好的方法;如利用MPI标准的集群并行计算。MPI的并行计算属于语言级的并行计算。然而,在大规模云计算环境下,则存在很多问题。由于网络的复杂性引起的通信的开销,语言级的并行计算显然不适合。
[0005]目前,利用MapReduce进行并行计算也是一种趋势。然后,MapReduce也有许多缺点,不适合所有问题的并行计算。
[0006]本发明利用语义P2P网络技术本方法采用语义P2P网络技术(一种基于P2P的查找有关节点子集合的方法,专利号:200910096247;—种建立基于P2P的大规模分布式文件系统的方法,专利号:200910097651;—种构建具有语义的P2P网络的方法,专利号:200910100682; —种构建垂直虚拟组的P2P网络的方法,专利号:200910100926)将低端、高端计算机一起组成分级的巨大网络,从而进行大规模的并行计算,具有价格低廉与高性能的优点。本发明方法比之单机计算具有加速比ER=CiM (0<α〈1),这里,M为计算机节点个数,α为由于各种开销引起计算性能下降的系数;一般地,α大于0.5;由于本发明M无上限,所有,本发明具有非常强的计算能力。

【发明内容】

[0007]基于虚拟树型网络技术的分布式高性能计算方法的具体步骤如下:一.计算机包括集群、个人计算机等组成虚拟分级拓扑结构的步骤。其中,计算机节点通过一定的方法形成虚拟分级拓扑结构,可以是用户加入相应的虚拟组,也可以是计算机程序自动形成虚拟分级拓扑结构。对于超级计算机或集群机,可以采用一个PC作为前端代理,也可以将内部节点作为单独计算机,和其他计算机节点一起构建虚拟分级拓扑网络;在虚拟分级拓扑结构中,先将所有计算机节点分组,然后从每组中选出Ι-d个节点组成上一级虚拟组,以此类推,直到形成唯一的一个顶级组,从而形成了虚拟分类树。二.找到求解的问题可以递归划分为子问题的方法,即问题P划分为η个子问题sPi,每个子问题又可以划分为m个子问题sPj。三.1.求解的问题划分为η个子问题,每个子问题分配给虚拟分级树的顶级组,如果这个组的计算机可以求出子问题,则求出结果,然后返回结果;如果这个组的计算机不能求出结果,则将此子问题进一步划分成m个子子问题,再将此子子问题分配到下一层组的计算机;2.下一层的计算机如果能求出子子问题,则求出结果,然后返回结果;否则,则进一步划分为子子子问题,再将此子子子问题分配到下一层组的计算机;3.以此类推,直到所有子…子问题都求出为止;4.将所有返回的结果进行整合;求出问题的完全解。
[0008]计算机包括集群、个人计算机等组成虚拟分级拓扑结构的步骤。假设有1073741824 (1024 X 1024 X 1024)台计算机的用户加入分布式计算组并同意贡献其计算能力。组成3级虚拟分级拓扑结构可能方法之一如下:1048576组叶节点虚拟组,每组含1024台计算机。1048576个叶节点虚拟组每个选择I台计算加入上级虚拟组;结果成为1024个上级虚拟组(每个上级虚拟组包含1024台计算机);此1024个上级虚拟组每个选择I台计算机,形成包含1024台计算机的顶级虚拟组。
[0009]求解问题需要发现可以递归划分为子问题的方法。问题划分为η个子问题,子问题是可求解的或可更进一步划分为子子问题。问题与子问题的求解算法可以相同,也可以不同。
[0010]划分的子问题的分配与发送。划分的子问题通过通信分配到下层虚拟组的计算机,通信协议需要明确问题的发起者和发送消息的源,结果可根据问题的发起者和发送消息的源进行回传。
[0011]结果整合:合并整理返回的子问题求解结果。
[0012]本案实施方案1:背包问题求解。
[0013]求解问题需要发现可以递归划分为子问题的方法。背包问题是NP问题。当规模较大时,单台计算机是无法完成的。假设某一背包问题是具有100个元素;我们可以将此背包问题划分为1024个包含90个元素的背包问题(求出前10个元素的组合值);而此包含90个元素的背包问题又可以划分为1024个包含80个元素的背包问题;以此类推,直至分解为能够为单台计算机完成的背包问题(例如20个元素的背包问题)。
[0014]划分的子问题的分配与发送。假设某一台电脑需要求解具有100个元素的背包问题;判断不能完成单独完成计算;此电脑此背包问题划分为1024个包含90个元素的背包问题;并将每一个发往顶级虚拟组的一台电脑;每一个顶级虚拟组的一台电脑将计算分解为1024个包含80个元素的背包子问题;并将每一个包含80个元素的背包子问题发往下级虚拟组,以此类推,直至计算机接收到的背包子问题能够单独完成计算(例如20个元素的背包问题);计算结果向相反的方向汇总,即下层虚拟组的计算机向上层虚拟组计算机汇总,上层计算机向上上层汇总有结果的解;总后顶级虚拟组的计算机
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1