一种计算单元超大集群架构的系统

2022-12-29 0 639

技术领域

本发明涉及计算机计算优化领域,具体是指一种计算单元超大集群架构的系统。

背景技术

中国有超过15亿的手机用户,超过10亿的个人电脑用户。绝大多数手机和个人电脑计算单元的利用率都很低,普通的操作,包括微信、MSOffice等使用率很高的应用及软件,对计算单元的利用率都不高,计算单元有大量富余及闲置。现在是万物互联的时代,随着5G技术的应用普及以及有线网络的升级改造,互联程度会更高,信息的传递会更加方便。现在单个计算单元的运行速度越来越快,核心数也在不断增多,虽然单次运行速度越来越快,但闲置率更高、利用率更低。

基于现在的网络编程技术和计算算法技术完全可以实现超大计算集群的构建,并运行。这将是对我国超算系统的补充,相当于藏一个超超级计算机于万民之中,对我国计算能力和计算安全是一个有益的保障。以平均每个计算单元(单核)2G赫兹的速度,15亿手机用户就可达到超300亿亿赫兹的算力,当然整合多端运行会有延时,但任务分解分发运行后,可以完成超大型计算的需求。

实用新型内容

本实用新型要解决的技术问题是,针对以上问题提供一种计算单元超大集群架构的系统。

为解决上述技术问题,本实用新型提供的技术方案为:一种计算单元超大集群架构的系统,包括超算程序分解模块、分段程序分发模块、数据库、计算结果纠错和补算模块、计算单元软硬件信息及算力评估模块、计算保障及计算安全模块、计算结果整合模块、浏览器集群计算模块、多核并行计算、客户机,所述的超算程序分解模块、分段程序分发模块、数据库、计算结果纠错和补算模块、计算结果整合模块均设于计算单元超大集群架构的云端服务器内,云端服务器通过有线的光纤和无线信息传输连接客户机模块,所述的浏览器集群计算模块、多核并行计算设于客户机内的软件,且浏览器集群计算模块包括浏览器集群计算代码分解模块和浏览器集群计算执行模块,所述的浏览器集群计算代码分解模块分发在云端服务器,浏览器集群计算执行模块在客户机的浏览器端,所述的计算单元软硬件信息及算力评估模块、计算保障及计算安全模块是设于云端服务器和客户机之间的双端模块,但储存于云端服务器,功能面向是客户机,所述的客户机本身也具有计算保障和计算安全机制,基于沙盒运行。

本实用新型与现有技术相比的优点在于:本实用新型的计算单元超大集群架构系统针对超高清3D电影,渲染时间很长,超大集群计算就能在较短时间内完成,地震、气象、天文、科学计算都可以通过本集群计算模式完成,如果国家有急需,在超级计算机停摆或不够用的时候,每个人的手机、个人电脑将成为超超级计算机的一个单元。

作为改进,所述的超算程序分解模块、分段程序分发模块、计算结果纠错和补算模块、计算结果整合模块设于算单元超大集群架构的云端服务器,且呈顺序流程分布及串联式连接。

作为改进,所述的计算单元软硬件信息及算力评估模块、计算保障及计算安全模块是设于云端服务器和客户机之间的模块,且采用并联式连接云端服务器和客户机。

作为改进,所述的超算程序分解模块对过程步骤进行分解,每一步骤可以划分为一个计算单元,相当于顺序结构和分阶段实现;在每一步骤的计算单元里面可能会有多分支结构,也可在每一步骤下对每一分支进行再次分解,成一个相对较小的计算单元;当遇到循环次数超多的情况,可以在循环初始值和终值之间进行分段计算,比如“for(long n=0; n<100000000000; n++){…}”,可以把100000000000分成10000000个10000,从0->10000,10001->20000,20001->30000……直到100000000000。这样单机只需循环10000次,普通手机或个人电脑在很短时间就能完成。即使while(true){…; break;}这样的循环,也可以对“喂入”的超大超多数据进行分割分段试算。如果每一过程步骤之前存在条件判断,可在分割后的运算结果数据返回后做次判断,判断是一个耗时很少的动作。对数据已超出基本数据类型的范围,如一个超过20位十进制数,long长整型也越界,double双精度数虽能表示,但精度已损失,这种情况是不能满足科学计算的需求。某些编程语言如Java有BigInteger和BigDecimal,从理论上讲是可以表示任意大的数并进行运算,如果用到数组或集合,而数据量超出了数组或集合的最大容纳范围,也可基于BigInteger或BigDecimal重新构造一个新的数组或集合数据结构。

作为改进,所述的分段程序分发模块工作机制不管是即时计算、预约计算还是定时计算,都是根据客户机的实际情况而定,为保障超算任务的顺利完成,计算任务的实际计算程序都是在计算开始前才从服务器下行到客户机,计算成功完成并通过结果验证后,客户端会对计算程序进行不可恢复销毁,任务分发是基于客户机的软硬件信息及实际算力而定,服务器端会据此向客户端发送超算任务清单,同一任务可能会在多个理想目标客户机上显示,当客户接受任务后,其他客户机对此任务只能具有备选状态,备选的目的是在防止客户机不能完成计算任务的情况下,可以让备选客户机完成计算任务,所以每一分发任务,可能会有选定,第一备选,第二备选等多种选择状态。

作为改进,所述的超算程序分解模块、分段程序分发模块、数据库三部分组成计算中心系统,当接到超算任务以后,中心将先对任务程序进行分解,分解完成以后会形成很多计算单元,每一计算单元的信息会存入数据库,每一计算单元会被编译成class(类)或dll(类库)(或其他类型)文件,存在服务器端,在数据库中会存储类或类库存储地址,以供下行分发到每一计算单元进行运算。分发将按每一计算单元的实际算力和客户的许可时间进行计算任务分发。每一计算单元完成分发的计算任务的计算之后,将计算结果伴随标签编号特征值传输入数据库,服务器在收到计算结果后会进行验证,如果验证不通过,服务器会向客户端发送再次计算请求,并提示计算错误及处理方法,如果时间来不及,将直接启动备选机进行计算。

作为改进,所述的计算结果纠错和补算模块为超大集群计算设计了分块(子集群)验证机制,事先设定结果范围,对超出结果范围的进行补算,并分发即时计算任务给多个客户机。

作为改进,所述的计算单元软硬件信息及算力评估模块为保障每一客户机都能在规定的时间内完成计算任务,必须有客户机的软硬件信息。通过硬件信息的采集可以分析出客户机的最大算力,和安全运行范围。通过软件信息,可以知道在CPU或GPU运算时实际上的运行速度和效率。所以客户端在安装好后和任务分发前都会对客户端软硬件信息进行采集,并传输入计算中心数据库,并进行评估,确定计算任务完成的可实现度,然后确定分发内容。

作为改进,所述的计算保障及计算安全模块在同一计算任务有多个客户机备用的情况下,保障了计算任务的完成。为进一步保障计算安全,下行的class或dll文件,均已特殊加密处理,在调入内存运行前,才进行解密。计算所用数据也进行特殊加密处理,并限定调用程序或函数。并有监控程序后台运行,一旦有程序侵入,会终止侵入程序,并重新计算,如果不能处理,系统会通知并启动备选客户机进行计算。成功计算后,计算结果通过特殊加密处理后上传至服务器数据库,通过计算中心验证后,反馈成功信息给客户机。

作为改进,所述的计算结果整合模块对集群分段计算结果,依然会有整合计算,因为耗时的超算过程已完成,对数据库内结果集整合计算就会变得简单。整合计算实际就是过程步骤间的连接计算。计算完成后将把最终结果发送超算客户。

作为改进,所述的浏览器集群计算模块是通过Web编程实现的,通过Servlet或jsp或php对不同终端响应不同的自动运行的JavaScript代码完成的,因浏览器端,单页面驻留时间不确定,JavaScript也是明码,所以可靠度和安全度都较差。但对一些不太严肃的超算,可以采用这种方式。

作为改进,所述的多核并行计算是因为手机和个人电脑CPU运算速度越来越快,核心数越来越多,手机的CPU大多也是多核心的。为加快分发任务的运行,节省时间,分发任务都采用多核并行计算模式,多核并行编程也是一种常规的编程技术。

作为改进,所述的客户机分为手机等掌端用户和个人电脑用户,客户机装有计算的软件,软件安装以后,会采集用户信息,客户端的硬件、系统及软件信息,上行至计算中心数据库,计算中心服务器会自动评估每一客户机的实际计算能力,并将能力指标存入数据库,作为任务分发的参考。客户端会显示多个分发任务,每一任务会有计算耗时、计算要求等信息,但不会显示超算的内容。客户有权自由选择执行哪个任务。计算任务分为即时计算、预约计算和定时计算三种模式。即时计算和预约计算完成无时间要求的超算任务,定时计算完成有计算时间要求的超算任务。对于定时计算,客户端会显示每一超算任务所需的客户机数量,直到客户机数全部凑齐,才开始全集群计算。客户端在运行计算程序的时候,是通过反射等技术进行调用的,下行任务的时候,如Java,会从服务器端下载执行程序的类名和函数名,通过Class.forName(),ClassLoader,Method.Invoke()运行计算程序。

附图说明

一种计算单元超大集群架构的系统

图1是一种计算单元超大集群架构的系统的流程图。

一种计算单元超大集群架构的系统

图2是一种计算单元超大集群架构的系统使用状态下的流程示意图。

具体实施方式

下面结合附图对本实用新型做进一步的详细说明。

本发明在具体实施时,一种计算单元超大集群架构的系统,包括超算程序分解模块、分段程序分发模块、数据库、计算结果纠错和补算模块、计算单元软硬件信息及算力评估模块、计算保障及计算安全模块、计算结果整合模块、浏览器集群计算模块、多核并行计算、客户机,所述的超算程序分解模块、分段程序分发模块、数据库、计算结果纠错和补算模块、计算结果整合模块均设于计算单元超大集群架构的云端服务器内,云端服务器通过有线的光纤和无线信息传输连接客户机模块,所述的浏览器集群计算模块、多核并行计算设于客户机内的软件,且浏览器集群计算模块包括浏览器集群计算代码分解模块和浏览器集群计算执行模块,所述的浏览器集群计算代码分解模块分发在云端服务器,浏览器集群计算执行模块在客户机的浏览器端,所述的计算单元软硬件信息及算力评估模块、计算保障及计算安全模块是设于云端服务器和客户机之间的双端模块,但储存于云端服务器,功能面向是客户机,所述的客户机本身也具有计算保障和计算安全机制,基于沙盒运行。

所述的超算程序分解模块、分段程序分发模块、计算结果纠错和补算模块、计算结果整合模块设于算单元超大集群架构的云端服务器,且呈顺序流程分布及串联式连接。

所述的计算单元软硬件信息及算力评估模块、计算保障及计算安全模块是设于云端服务器和客户机之间的模块,且采用并联式连接云端服务器和客户机。

所述的超算程序分解模块对过程步骤进行分解,每一步骤可以划分为一个计算单元,相当于顺序结构和分阶段实现;在每一步骤的计算单元里面可能会有多分支结构,也可在每一步骤下对每一分支进行再次分解,成一个相对较小的计算单元;当遇到循环次数超多的情况,可以在循环初始值和终值之间进行分段计算,比如“for(long n=0; n<100000000000; n++){…}”,可以把100000000000分成10000000个10000,从0->10000,10001->20000,20001->30000……直到100000000000。这样单机只需循环10000次,普通手机或个人电脑在很短时间就能完成。即使while(true){…; break;}这样的循环,也可以对“喂入”的超大超多数据进行分割分段试算。如果每一过程步骤之前存在条件判断,可在分割后的运算结果数据返回后做次判断,判断是一个耗时很少的动作。对数据已超出基本数据类型的范围,如一个超过20位十进制数,long长整型也越界,double双精度数虽能表示,但精度已损失,这种情况是不能满足科学计算的需求。某些编程语言如Java有BigInteger和BigDecimal,从理论上讲是可以表示任意大的数并进行运算,如果用到数组或集合,而数据量超出了数组或集合的最大容纳范围,也可基于BigInteger或BigDecimal重新构造一个新的数组或集合数据结构。

所述的分段程序分发模块工作机制不管是即时计算、预约计算还是定时计算,都是根据客户机的实际情况而定,为保障超算任务的顺利完成,计算任务的实际计算程序都是在计算开始前才从服务器下行到客户机,计算成功完成并通过结果验证后,客户端会对计算程序进行不可恢复销毁,任务分发是基于客户机的软硬件信息及实际算力而定,服务器端会据此向客户端发送超算任务清单,同一任务可能会在多个理想目标客户机上显示,当客户接受任务后,其他客户机对此任务只能具有备选状态,备选的目的是在防止客户机不能完成计算任务的情况下,可以让备选客户机完成计算任务,所以每一分发任务,可能会有选定,第一备选,第二备选等多种选择状态。

所述的超算程序分解模块、分段程序分发模块、数据库三部分组成计算中心系统,当接到超算任务以后,中心将先对任务程序进行分解,分解完成以后会形成很多计算单元,每一计算单元的信息会存入数据库,每一计算单元会被编译成class(类)或dll(类库)(或其他类型)文件,存在服务器端,在数据库中会存储类或类库存储地址,以供下行分发到每一计算单元进行运算。分发将按每一计算单元的实际算力和客户的许可时间进行计算任务分发。每一计算单元完成分发的计算任务的计算之后,将计算结果伴随标签编号特征值传输入数据库,服务器在收到计算结果后会进行验证,如果验证不通过,服务器会向客户端发送再次计算请求,并提示计算错误及处理方法,如时间不许可,将直接在备选客户机上运行。

所述的计算结果纠错和补算模块为超大集群计算设计了分块(子集群)验证机制,事先设定结果范围,对超出结果范围的进行补算,并分发即时计算任务给多个客户机。

所述的计算单元软硬件信息及算力评估模块为保障每一客户机都能在规定的时间内完成计算任务,必须有客户机的软硬件信息。通过硬件信息的采集可以分析出客户机的最大算力,和安全运行范围。通过软件信息,可以知道在CPU或GPU运算时实际上的运行速度和效率。所以客户端在安装好后和任务分发前都会对客户端软硬件信息进行采集,并传输入计算中心数据库。

所述的计算保障及计算安全模块在同一计算任务有多个客户机备用的情况下,保障了计算任务的完成。为进一步保障计算安全,下行的class或dll文件,均已特殊加密处理,在调入内存运行前,才进行解密。计算所用数据也进行特殊加密处理,并限定调用程序或函数。并有监控程序运行,一旦有程序侵入,会终止侵入程序,并重新计算,如果不能处理,系统会通知并启动备选客户机进行计算。成功计算后,计算结果通过特殊加密处理后上传至服务器数据库,通过计算中心验证后,反馈成功信息给客户机。

所述的计算结果整合模块对集群分段计算结果,依然会有整合计算,因为耗时的超算过程已完成,对数据库内结果集整合计算就会变得简单。整合计算实际就是过程步骤间的连接计算,整合计算由服务器云端完成,计算完成后将把最终结果发送超算客户。

所述的浏览器集群计算模块是通过Web编程实现的,通过Servlet或jsp或php对不同终端响应不同的自动运行的JavaScript代码完成的,因浏览器端,单页面驻留时间不确定,JavaScript也是明码,所以可靠度和安全度都较差。但对一些不太严肃的超算,可以采用这种方式。

所述的多核并行计算是因为手机和个人电脑CPU运算速度越来越快,核心数越来越多,手机的CPU大多也是多核心的。为加快分发任务的运行,节省时间,分发任务都采用多核并行计算模式,多核并行编程也是一种常规的编程技术。

所述的客户机分为手机等掌端用户和个人电脑用户,客户机装有计算的软件,软件安装以后,会采集用户信息,客户端的硬件、系统及软件信息,上行至计算中心数据库,计算中心服务器会自动评估每一客户机的实际计算能力,并将能力指标存入数据库,作为任务分发的参考。客户端会显示多个分发任务,每一任务会有计算耗时、计算要求等信息,但不会显示超算的内容。客户有权自由选择执行哪个任务。计算任务分为即时计算、预约计算和定时计算三种模式。即时计算和预约计算完成无时间要求的超算任务,定时计算完成有计算时间要求的超算任务。对于定时计算,客户端会显示每一超算任务所需的客户机数量,直到客户机数全部凑齐,才开始全集群计算。客户端在运行计算程序的时候,是通过反射等技术进行调用的,下行任务的时候,如Java,会从服务器端下载执行程序的类名和函数名,通过Class.forName(),ClassLoader,Method.Invoke()运行计算程序。

本实用新型的工作原理:当接到超算任务以后,中心将先对任务程序进行分解,分解完成以后会形成很多计算单元,每一计算单元的信息会存入数据库,每一计算单元会被编译成class(类)或dll(类库)文件,存在服务器端,在数据库中会存储类或类库存储地址,以供下行分发到每一计算单元进行运算。分发将按每一计算单元的实际算力和客户的许可时间进行计算任务分发。每一计算单元完成分发的计算任务的计算之后,将计算结果伴随标签编号特征值传输入数据库,服务器在收到计算结果后会进行验证,如果验证不通过,服务器会向客户端发送再次计算请求,并提示计算错误及处理方法,如时间不许可,将直接在备选客户机上运行。

客户机在安装软件时候,注册进入软件后,会计算单元软硬件信息及算力评估模块为保障每一客户机都能在规定的时间内完成计算任务,必须有客户机的软硬件信息。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务