基于动态数据拆分的分布式并行计算的系统及其方法技术方案

技术编号:2913752 阅读:248 留言:0更新日期:2012-04-11 18:40
一种基于动态数据拆分的分布式并行计算的系统及其方法,该系统包括:拆分单元,其负责分割待计算的数据项目,把待计算数据根据划分规则划分成若干相对独立计算项;运算单元,其负责对所述计算项进行分布式并行计算,包括若干运算机;环境单元,其负责在并行计算前部署所述运算机中的执行环境,并且在计算执行完成后将所述运算机还原到执行前的状态;负载均衡单元,其负责检查所有运算机的负载情况,并根据各运算机的资源消耗情况动态地分配相应数量的计算项至各运算机。本发明专利技术的优点为:1)最大程度加快计算速度;2)最大程度利用了计算机的空闲资源;3)方便控制、监控和查看数据计算;4)运算单元自容灾。

【技术实现步骤摘要】

本专利技术涉及计算机、网络通信领域,特别涉及一种基于动态数据拆分的分布式并行计算的系统及其方法
技术介绍
随着计算机及网络的普及,由于网络通信活动的日益频繁,为网络中的计算机提供各种服务的服务器越来越多,例如各种门户网站、各种即时通讯服务提供商、各种搜索引擎等,而提供这些网络服务的各种服务器每天不但要接收到海量的数据,而且还要在各种复杂计算模型下对这些数据进行计算。以即时通讯服务提供商为例,其每天接收到的数据总量可能超过500G,每个月则达到16T;而针对接收到的这些数据,还需要通过计算服务器(运算机)进行数十项计算模型的计算,而且这些计算模型的逻辑都非常复杂,因此对这样的海量数据进行计算耗时极长;即使是单个模型的计算,月度汇总的耗时都可能超过10天,而年度汇总则耗时更长。对于这样的状况,以前的做法是按计算模型并行计算,即将没有关联的计算模型分机器执行;即使这样,由于单个模型的计算时间长,而且部分模型之间又有直接的联系,导致耗时仍然很长;另一方面,由于各模型所需计算时间的不同,所采用的计算服务器并不都是一直在参与运算,部分计算服务器在每天计算完成后总是有段空闲时间,直到第二天的运算开始,因此会造成运算资源的浪费。而现有技术中,为提高数据的运算效率,通过按任务分服务器(静态数据拆分)在多服务器上并行计算,每台服务器固定计算整个模型中的一部分任务;例如大型游戏服务器中,作为整个计算模型中的一部分任务,将角色的AI(Artificial Intelligence,人工智能)放到一台计算服务器上运算,将场景的动画放到另一台计算服务器上运算,等等;其中每台运算机(计算服务器)-->所要执行的任务是固定的,每台运算机的计算环境相应于其所执行的任务而固定。但是,这种按任务来进行静态数据拆分的方法,存在如下缺点:1、各种任务有大有小,所需运算资源分配不均,因此运算机利用率不高;2、必须额外做容灾,使得运算机利用率更低;3、不能灵活的增删运算机,以增加计算效率或分离运算机;4、运算机计算环境切换困难,运算机的计算环境对应其所执行的任务而固定。另一方面,现有技术中还存在一种基于对等式分布计算技术的并行信息传送技术方案,在此方案中,信息不是通过服务器和客户机之间一对一传送而是通过多个同位体和客户机之间并行传送,可以有效缩短传送信息所需的时间;此外,中央服务器不是在中央控制来自所有客户机的所有请求,而是多个同位体同时进行并行处理这些请求,从而可以大大减少服务器的负荷,以便减少用于构造服务器的成本并且网络总的可利用带宽可以增大。这种方案的缺点在于:1、该方案仅适用互联网上的数据传输,不适合内网数据传输;2、该技术方案仅能加快信息的传送,而不能对数据进行模型计算,可提高信息的传送效率而无法提高数据的计算效率。
技术实现思路
因此,本专利技术的目的在于提供一种基于动态拆分数据,使用多台服务器协同并同时计算一个数据项目的系统及其方法。为实现上述目的,本专利技术提供一种基于动态数据拆分的分布式并行计算的系统,其包括:拆分单元,其负责分割待计算的数据项目,把待计算数据根据划分规则划分成若干相对独立的子集,这些子集中,每个与其它子集的计算无相关性的子集作为一个计算项;运算单元,其负责对所述计算项进行分布式并行计算,包括若干运算机,各运算机分别计算其所分配到的计算项;环境单元,其负责在并行计算前部署所述运算机中的执行环境,并且在计算执行完成后将所述运算机还原到执行前的状态;负载均衡单元,其负责检查所有运算机的负载情况,并根据各运算机的资源消耗情况动态地分配相应数量的计算项至各运算机。其中,该系统还包括控制单元,该控制单元包括至少一控制机,通过该控制机可配置管理所述系统和执行控制指令。-->其中,该系统还包括显示单元,该显示单元负责显示和监控所述系统的各单元的运行情况,并且在系统执行指令失败或系统资源紧张时告警。其中,该系统还包括以邮件或短信的方式发送告警的告警单元,该告警单元包括邮件代理和短信代理,以及设于所述系统的其他各单元的发送邮件或短信的工具。其中,该系统还包括汇总单元,当所述待计算数据的某些计算无法由所述拆分单元拆分时,运算单元并行计算的所有数据项结果都传到该汇总单元中,传输完成后,由该汇总单元进行汇总运算。其中,所述划分规则为根据用户需求按待计算数据的散列或者日期去分割。其中,在所述运算单元中,当一计算项在一运算机上计算失败时,该计算项自动重新分配至另一运算机进行计算。其中,所述运算单元可以修改保存所述运算机相关信息的配置文件,从而在该运算单元中增加或删除运算机。其中,部署所述运算机中的执行环境包括在所述运算机中部署计算脚本、创建必须的目录和设置必要的环境变量。其中,所述系统的显示单元、控制单元、负载均衡单元、环境单元以及拆分单元设置于一台服务器中。其中,所述运算机中对计算项的数据传输和计算同时进行。其中,所述运算单元包括由一台服务器虚拟而成的数个运算机。相应地,本专利技术还提供一种基于动态数据拆分的分布式并行计算的方法,其包括步骤:S1、分割待计算的数据项目,把待计算数据根据划分规则划分成若干相对独立的子集,这些子集中,每个与其它子集的计算无相关性的子集作为一个计算项;S2、在若干运算机中部署执行环境;S3、检查所有运算机的负载情况,并根据各运算机的资源消耗情况动态地分配相应数量的计算项至各运算机;S4、各运算机分别计算其所分配到的计算项;S5、计算执行完成后将所述运算机还原到执行前的状态。-->其中,还包括步骤:执行步骤S1后,所述待计算数据的某些计算无法拆分时,则对执行步骤S4所得的所有数据项结果执行汇总运算。其中,步骤S1中的划分规则为根据用户需求按待计算数据的散列或者日期去分割。其中,执行步骤S4时,当一计算项在一运算机上计算失败时,该计算项自动重新分配至另一运算机进行计算。其中,还包括步骤:修改保存所述运算机相关信息的配置文件,从而增加或删除运算机。其中,还包括步骤:将一台服务器虚拟成多台运算机。本专利技术所提供的基于动态数据拆分的分布式并行计算的系统及其方法具有如下优点:1)最大程度加快计算速度;2)最大程度利用了计算机的空闲资源;3)方便控制、监控和查看数据计算;4)运算单元自容灾,如果其中部分运算机坏了,不影响计算结果,只是计算效率有所降低。附图说明下面结合附图,通过对本专利技术的具体实施方式详细描述,将使本专利技术的技术方案及其有益效果显而易见。附图中,图1为本专利技术基于动态数据拆分的分布式并行计算的系统的结构示意图;图2为本专利技术基于动态数据拆分的分布式并行计算的系统的一较佳实施例的结构示意图;图3为本专利技术基于动态数据拆分的分布式并行计算的系统的又一较佳实施例的结构示意图;图4为本专利技术基于动态数据拆分的分布式并行计算的系统中数据传输和计算的方式的示意图;图5为本专利技术基于动态数据拆分的分布式并行计算的方法的流程图。具体实施方式-->为了使本专利技术所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。参见图1,其为本专利技术基于动态数据拆分的分布式并行计算的系统的结构示意图,该系统主要包括拆分单元10、运算单元11、环本文档来自技高网
...

【技术保护点】
一种基于动态数据拆分的分布式并行计算的系统,其特征在于,其包括: 拆分单元,其负责分割待计算的数据项目,把待计算数据根据划分规则划分成若干相对独立的子集,这些子集中,每个与其它子集的计算无相关性的子集作为一个计算项; 运算单元, 其负责对所述计算项进行分布式并行计算,包括若干运算机,各运算机分别计算其所分配到的计算项; 环境单元,其负责在并行计算前部署所述运算机中的执行环境,并且在计算执行完成后将所述运算机还原到执行前的状态; 负载均衡单元,其负责检查所 有运算机的负载情况,并根据各运算机的资源消耗情况动态地分配相应数量的计算项至各运算机。

【技术特征摘要】
1、一种基于动态数据拆分的分布式并行计算的系统,其特征在于,其包括:拆分单元,其负责分割待计算的数据项目,把待计算数据根据划分规则划分成若干相对独立的子集,这些子集中,每个与其它子集的计算无相关性的子集作为一个计算项;运算单元,其负责对所述计算项进行分布式并行计算,包括若干运算机,各运算机分别计算其所分配到的计算项;环境单元,其负责在并行计算前部署所述运算机中的执行环境,并且在计算执行完成后将所述运算机还原到执行前的状态;负载均衡单元,其负责检查所有运算机的负载情况,并根据各运算机的资源消耗情况动态地分配相应数量的计算项至各运算机。2、如权利要求1所述的基于动态数据拆分的分布式并行计算的系统,其特征在于,其还包括控制单元,该控制单元包括至少一控制机,通过该控制机可配置管理所述系统和执行控制指令。3、如权利要求1所述的基于动态数据拆分的分布式并行计算的系统,其特征在于,其还包括汇总单元,当所述待计算数据的某些计算无法由所述拆分单元拆分时,运算单元并行计算的所有数据项结果都传到该汇总单元中,传输完成后,由该汇总单元进行汇总运算。4、如权利要求1—3任一所述的基于动态数据拆分的分布式并行计算的系统,其特征在于,所述划分规则为根据用户需求按待计算数据的散列或者日期去分割。5、如权利要求1—3任一所述的基于动态数据拆分的分布式并行计算的系统,其特征在于,在所述运算单元中,当一计算项在一运算机上计算失败时,该计算项自动重新分配至另一运算机进行计算。6、如权利要求1—3任一所述的基于动态数据拆分的分布式并行计算的系统,其特征在于,所述运算单元可以修改保存所述运算机相关信息的配置文件,从而在该运算单元中增加或删除运算机。7、如权利要求1—3任一所述的基于动态数据拆分的分布式并...

【专利技术属性】
技术研发人员:凌国惠陈川聂晶李郁韬伍倡辉
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利