基于轻量级虚拟机的并行计算方法、装置及系统与流程

文档序号:12719033阅读:211来源:国知局
基于轻量级虚拟机的并行计算方法、装置及系统与流程

本发明涉及计算机领域,尤其涉及基于轻量级虚拟机的并行计算方法、装置及系统。



背景技术:

21世纪是信息化的时代,由于传感技术和通信网络的发展、数据收集和存储的规模在飞速增大,如何从海量数据中挖据出有效的信息是当前的研究热点。目前较为普遍的方案是采用集群系统和分布式框架来提高数据处理的效率。并行计算是提高计算机系统计算速度和处理能力的一种有效手段。

并行计算或称平行计算是相对于串行计算来说的。它是一种一次可执行多个指令的算法,目的是提高计算速度,以及通过扩大问题求解规模,解决大型而复杂的计算问题。所谓并行计算可分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。并行计算是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解为若干个部分,各部分均由一个独立的处理机来并行计算。并行计算系统既可以是专门设计的、含有多个处理器的超级计算机,也可以是以某种方式互连的若干台独立计算机构成的集群。

MPI(信息传递接口)是目前开发并行应用程序的主要编程模型,消息传递编程模型的事实标准。MPI存在的问题是,针对不同的并行算法,需要重写数据分配、通信等细节,代码重用率低,机器扩展性能差,对编程人员的要求高,且优化和调试成本高。

MapReduce是谷歌提出的一种并行化编程框架,其通过简单的编程模型,使得用户从编写底层程序中解放出来,只需将注意力放在上层应用。然而用户很难对复杂数据进行处理,用于不得不编写大量的MapReduce任务,往往导致执行效率低下。尤其在迭代过程中,Map和Reduce会频繁进行序列化和反序列化操作,这些操作导致了较高的输入和输出开销。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供基于轻量级虚拟机的并行计算方法,其能解决现有技术中执行效率低、复杂度高的问题。

本发明的目的之二在于提供基于轻量级虚拟机的并行计算装置,其能解决本发明的目的之一。

本发明的目的之三在于提供基于轻量级虚拟机的并行计算系统,其解决现有技术中执行效率低、复杂度高的问题。

本发明的目的之一采用以下技术方案实现:

基于轻量级虚拟机的并行计算方法,包括如下步骤:

S1:接收计算请求并将该计算请求放入任务队列中,并向控制节点发送查询请求;所述任务队列中包含至少一个计算请求,该任务队列中的所有计算请求按照计算请求的时间的先后顺序依次排列;计算请求包括计算数据和代码;

S2:根据查询请求查询所有计算节点的状态信息;所述状态信息包括可用于计算和不可用于计算;

S3:根据计算节点的状态信息将计算数据和代码发送至可用于计算的计算节点,使所有可用于计算的计算节点对应的轻量级虚拟机同步运行代码进行计算。

优选的,S1中,计算数据和代码由用户输入。

优选的,S1中,根据任务队列中排在首位的计算请求向控制节点发送查询请求。

优选的,所述状态信息还包括错误。

优选的,S3中,可用于计算的计算节点对应的轻量级虚拟机运行代码进行计算包括如下步骤:

Sa:接收计算数据和代码;

Sb:从计算数据中提取并行算法以及所需计算的数据;

Sc:判断是否提取成功,若是,则根据并行算法编译对应的轻量级虚拟机,否则返回Sb;

Sd:判断是否编译成功,若是,则使对应的轻量级虚拟机进行计算,并将计算结果返回至服务节点,否则,重新根据并行算法编译轻量级虚拟机。

本发明的目的之二采用以下技术方案实现:

基于轻量级虚拟机的并行计算装置,包括

接收单元:用于接收计算请求并将该计算请求放入任务队列中,并向控制节点发送查询请求;所述任务队列中包含至少一个计算请求,该任务队列中的所有计算请求按照计算请求的时间的先后顺序依次排列;计算请求包括计算数据和代码;

查询单元:用于根据查询请求查询所有计算节点的状态信息;所述状态信息包括可用于计算和不可用于计算;

计算单元:用于根据计算节点的状态信息将计算数据和代码发送至可用于计算的计算节点,使所有可用于计算的计算节点对应的轻量级虚拟机同步运行代码进行计算。

优选的,计算请求来自客户端,且该客户端中的计算数据和代码由用户输入。

优选的,接收单元根据任务队列中排在首位的计算请求向控制节点发送查询请求。

优选的,所述状态信息还包括错误。

本发明的目的之三采用以下技术方案实现:

基于轻量级虚拟机的并行计算系统,包括客户端、控制管理器、数据库、服务管理器、轻量级虚拟机,

所述客户端用于发送计算请求至服务管理器;所述计算请求包括计算数据和代码;

所述服务管理器用于将计算请求放入任务队列中,并向控制管理器发送查询请求,使控制管理器根据查询请求查询所有计算节点的状态信息;服务管理器还根据来自控制管理器的状态信息将计算数据和代码发送至可用于计算的计算节点;所述任务队列中包含至少一个计算请求,该任务队列中的所有计算请求按照服务管理器接收到计算请求的时间的先后顺序依次排列;状态信息包括可用于计算和不可用于计算;

数据库用于存储控制管理器所查询的计算节点的状态信息;

轻量级虚拟机应用于计算节点中,计算节点用于接收来自服务管理器的计算请求,使对应的轻量级虚拟机同步运行代码进行计算。

相比现有技术,本发明的有益效果在于:

本发明的代码可以重用,编程复杂度低,面对复杂的计算任务不用编写大量MapReduce任务,并行计算代码从客户端传送到计算节点,再编译轻量级虚拟机,执行效率高。

附图说明

图1为本发明的基于轻量级虚拟机的并行计算方法的流程图。

图2为本发明的基于轻量级虚拟机的并行计算系统的结构图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述:

本发明提供一种基于轻量级虚拟机的并行计算方法,其中,本发明所指的轻量级虚拟机是指contiki系统编译出来的轻量级虚拟机,contiki是采用c语言开发的非常小型的嵌入式操作系统,在编译过程中可以在其中嵌入不同的代码。轻量级虚拟机可以自动创建、复制、迁移、删除、并根据嵌入代码实现不同的功能。本发明将轻量级虚拟机应用在计算节点,可以灵活处理复制的计算任务,不需要处理消息传递、代码可以重用,编译复杂度低,不同机器容易扩展。面对复杂的计算任务时,不用编写大量的MapReduce任务,并行计算代码从客户端传送到计算节点,再编译轻量级虚拟机,提高执行效率。

参见图1所示,包括如下步骤:

S1:接收计算请求并将该计算请求放入任务队列中;所述任务队列中包含至少一个计算请求,该任务队列中的所有计算请求按照计算请求的时间的先后顺序依次排列;计算请求包括计算数据和代码;

本发明的并行计算是从客户端开始,用户在客户端进行并行算法编程,也就是输入代码,并且输入计算数据,这里的代码也就是轻量级虚拟机嵌入代码。S1中的计算请求来自客户端,并且计算请求中的计算数据可代码由用户输入。根据客户端发送计算请求的时间对所有来自客户端的计算请求进行先后排序,并加入到任务队列中,也就是任务队列中的所有计算请求都是按时间顺序排列的。其中,计算请求中包含有客户端发送该计算请求至服务节点的时间。在本步骤中,实际是发送关于任务队列中排在首位的计算请求的查询请求。

S2:根据查询请求查询所有计算节点的状态信息,并将该状态信息反馈至服务节点;所述状态信息包括可用于计算和不可用于计算;作为优选,状态信息还可以包括错误。可用于计算的状态表明该计算节点可以用作计算,不可用于计算的状态表明该计算节点不可用于计算,但是计算节点是可以正常使用的,而错误状态则该计算节点不可以用于计算,并且该计算节点出错,需要修复。

查询请求由上一步骤发起,本步骤承担分发和收集的任务,只作为控制功能,不作计算使用。多个计算节点的选择,查询计算节点的状态,返回可用于计算的计算节点,全部分配计算任务。

S3:根据计算节点的状态信息将计算数据和代码发送至可用于计算的计算节点,使所有可用于计算的计算节点对应的轻量级虚拟机同步运行代码进行计算,并将计算结果返回服务节点。

根据计算节点的状态信息得到每个计算节点的处理能力,把计算数据和代码发送给计算几点。计算节点接收到计算请求后,基于轻量级虚拟机进行计算,该轻量级虚拟机可以自动创建、复制、迁移、删除、动态编译和运行并行算法代码,计算完成后计算节点将计算的结果发送给服务节点。之后服务节点接收完所有来自计算节点的计算结果后,返回全部计算结果至客户端。

在步骤S3中,可用于计算的计算节点对应的轻量级虚拟机运行代码进行计算包括如下步骤:

Sa:接收计算数据和代码;

Sb:从计算数据中提取并行算法以及所需计算的数据;

Sc:判断是否提取成功,若是,则根据并行算法编译对应的轻量级虚拟机,否则返回Sb;

Sd:判断是否编译成功,若是,则使对应的轻量级虚拟机进行计算,并将计算结果返回至服务节点,否则,重新根据并行算法编译轻量级虚拟机。

相对应上述并行计算方法,本发明提供一种基于轻量级虚拟机的并行计算装置,与并行计算方法一一对应,包括:

接收单元:用于接收计算请求并将该计算请求放入任务队列中,并向控制节点发送查询请求;所述任务队列中包含至少一个计算请求,该任务队列中的所有计算请求按照计算请求的时间的先后顺序依次排列;计算请求包括计算数据和代码;

查询单元:用于根据查询请求查询所有计算节点的状态信息;所述状态信息包括可用于计算和不可用于计算;

计算单元:用于根据计算节点的状态信息将计算数据和代码发送至可用于计算的计算节点,使所有可用于计算的计算节点对应的轻量级虚拟机同步运行代码进行计算。

另外一方面,参见图2,本发明还提供基于轻量级虚拟机的并行计算系统,包括客户端、控制管理器、数据库、服务管理器、轻量级虚拟机,

所述客户端用于发送计算请求至服务管理器;所述计算请求包括计算数据和代码;

所述服务管理器用于将计算请求放入任务队列中,并向控制管理器发送查询请求,使控制管理器根据查询请求查询所有计算节点的状态信息;服务管理器还根据来自控制管理器的状态信息将计算数据和代码发送至可用于计算的计算节点;所述任务队列中包含至少一个计算请求,该任务队列中的所有计算请求按照服务管理器接收到计算请求的时间的先后顺序依次排列;状态信息包括可用于计算和不可用于计算;

数据库用于存储控制管理器所查询的计算节点的状态信息;

轻量级虚拟机应用在计算节点中,计算节点用于接收来自服务管理器的计算请求,动态编译轻量级虚拟机承担计算任务,使对应的轻量级虚拟机同步运行代码进行计算。

实际上服务管理器与计算节点之间的联系通过分发器和收集器完成,分发器将计算数据和代码转发给各计算节点,收集器用于收集各计算节点的计算结果。

在客户端的流程主要包括:编写并行计算算法,也就是所述的代码;编写计算数据;打包并行计算算法和计算数据,发送计算请求,并接收结果。

在服务节点的流程主要包括:服务管理器接收计算请求;将计算请求写入任务队列;如果该计算请求处于队列头,也就是按时间顺序排列在首位,则向控制节点查询计算节点信息,否则,不查询,直到该计算请求处于队列头时再查询。如果有满足条件的计算节点,则分发器转发计算请求至满足条件的所有计算节点,收集器收集计算街而过,返回计算结果给客户端。

控制节点与数据库相关,当控制节点接收到服务管理器的查询请求,读数据库查询计算节点状态,写数据库,将计算节点的状态信息写入数据库,并反馈信息给服务管理器。

本发明可以通过软件以及硬件平台的方式来实现,也可以全部通过硬件来实施,本发明的技术方案对背景设计做出贡献的全部或部分可以以软件产品的形式体现出来,计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施部分。

对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1