一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向服务的轻量级异构计算集群系统的制作方法

2021-10-19 23:38:00 来源:中国专利 TAG:计算 分布式 集群 面向 异构


1.本技术属于分布式计算技术领域,具体涉及一种面向服务的轻量级异构计算集群系统。


背景技术:

2.当前随着hpc、大数据领域的蓬勃发展,对海量数据运算及分析挖掘的要求越来越高。而分布式计算为充分的数据运算及分析挖掘提供了强有力的手段,在这种环境下,作为整合分布式计算集群资源的一批分布式计算平台应运而生,如mpi、mapreduce、storm、spark等。目前如何平衡计算的易用性、灵活性和数据分析的高效性一直是分布式计算平台的研究热点。
3.现有的mpi模型通过消息传递机制可让程序灵活地调度和分配计算任务,但并行编程需要人工完成,难度较大,无法有效地对大数据挖掘应用进行处理。mapreduce为大数据挖掘应用提供了有力的支持,但复杂的挖掘算法需要多个mapreduce作业才能完成,多个作业之间存在着冗余的磁盘读写开销和多次资源申请过程,使得基于mapreduce的算法实现存在严重的性能问题。相比mapreduce计算平台,storm、spark等计算平台利用迭代计算和内存计算上的优势,可以自动调度复杂的计算任务,避免中间结果的磁盘读写和资源申请,数据处理效率较高,但其规模庞大、部署复杂、资源开销较大、使用复杂度较高,对技术人员而言有着较大的开发和应用门槛。


技术实现要素:

4.本技术的目的在于提供一种面向服务的轻量级异构计算集群系统,提升分布式计算平台的易用性、灵活性以及数据处理效率。
5.为实现上述目的,本技术所采取的技术方案为:
6.一种面向服务的轻量级异构计算集群系统,运行在分布式异构集群中,该分布式异构集群具有n个终端节点、2个管理节点和n个计算节点,所述面向服务的轻量级异构计算集群系统包括轻量级服务中间件组件、资源调度管理组件、轻量级分布式通信组件、用户编程接口组件,所述用户编程接口组件包括终端节点侧api接口和计算节点侧api接口,其中:
7.所述轻量级服务中间件组件,运行在每一管理节点中,包括会话管理模块和服务管理模块,用于实现终端节点和计算节点之间的连接和会话管理以及实现计算节点的注册使用和管理;
8.所述资源调度管理组件,运行在每一管理节点中,包括资源表示模型、资源分配策略和资源调度算法,用于对分布式异构集群中的资源进行统一度量、分配和管理;
9.所述轻量级分布式通信组件,运行在每一管理节点、终端节点和计算节点中,包括高并发异步io模式、异步消息传递机制和多种消息通信模式,用于基于管理节点实现终端节点和计算节点之间的信息交互;
10.所述终端节点侧api接口,设置在每一终端节点中,用于提供编写终端节点程序的
编程接口,并提供同步和异步两种方式基于管理节点将终端节点侧的数据发送至计算节点侧;
11.所述计算节点侧api接口,设置在每一计算节点中,用于提供编写并行计算服务的编程接口。
12.以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
13.作为优选,所述资源表示模型基于容器技术实现对分布式异构集群中的资源的度量、隔离和限定,通过容器将多个维度的资源按照预设比例进行封装;
14.所述资源分配策略采用三级资源分配策略,当监测到计算节点存在空闲资源时,依次选择调度队列、选择已提交的并行计算服务和选择并行计算服务中的容器请求来分配该空闲资源;
15.所述资源调度算法基于先进先出调度器、容量调度器或公平调度器完成资源管理调度。
16.作为优选,所述三级资源分配策略包括:
17.第一、选择调度队列:采用层次组织队列方式,从根队列开始,根据分配原则采用基于队列优先级的深度遍历方式进行队列选择,得到最终选择的叶子队列,所述分配原则为选择队列整体资源使用率低的队列作为优先分配的队列;
18.第二、选择已提交的并行计算服务:在选择得到合适的叶子队列后,根据资源调度算法对叶子队列中资源进行分配,其中先进先出调度器优先将空闲资源分配给当前提交最早但尚未完成的并行计算服务;容量调度器则通过配置多队列的方式为多用户同时提供并行计算服务;公平调度器则是对各个并行计算服务当前占用的资源进行排序,将空闲资源优先分配给占用量较小的并行计算服务;
19.第三、选择并行计算服务中的容器请求:当调度队列和并行计算服务都选择好后,选择并行计算服务中优先级高的容器请求进行分配。
20.作为优选,所述多种消息通信模式包括一对一结对模型、请求回应模型、发布订阅模型、推拉模型。
21.作为优选,所述会话管理模块包括会话控制器、会话状态管理、会话建立与销毁,所述会话控制器根据应用类型选择合适的会话管理器,在相应会话管理器不存在的情况下,在管理节点中申请资源,并创建会话管理器;
22.所述服务管理模块用于对计算节点侧的并行计算服务进行服务注册、服务查询、服务挂接、服务监控。
23.作为优选,所述面向服务的轻量级异构计算集群系统进行一次计算任务时,执行如下操作:
24.通过终端节点侧api接口编写终端节点程序,提交计算任务,并基于轻量级分布式通信组件与会话控制器建立连接;
25.会话控制器查找与所提交的计算任务所属的类型应用对应的会话管理器,如果对应的会话管理器不存在,则向资源调度管理组件申请管理节点的资源,创建并启动相应的会话管理器;会话管理器根据用户提交的计算任务向资源调度管理组件申请计算资源;
26.资源调度管理组件根据会话管理器的申请分配计算节点侧空闲的计算资源;
27.服务管理模块获得所需的计算资源后,在对应的计算节点中启动并行计算服务实例,将终端节点程序与并行计算服务进行挂接;
28.会话管理器建立终端节点与计算节点的会话,并发送任务和数据到对应挂接的并行计算服务实例,并将并行计算服务实例计算完成的结果返回至终端节点,管理并记录会话状态,并在完成计算任务后销毁会话,结束本次计算。
29.本技术提供的面向服务的轻量级异构计算集群系统,通过业务交互逻辑与计算密集逻辑相分离、计算密集逻辑并行服务化、轻量级分布式组件以及简便易用api接口的设计来实现计算平台的易用性、灵活性以及数据分析高效性的统一。
附图说明
30.图1为现有技术中分布式异构集群的示意图;
31.图2为本技术面向服务的轻量级异构计算集群系统的结构示意图。
具体实施方式
32.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
33.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本技术。
34.其中一个实施例中,提供一种面向服务的轻量级异构计算集群系统(系统也可理解为框架),以降低分布式计算平台的开发和应用门槛,提高处理效率、易用性和灵活性。
35.本实施例中的面向服务的轻量级异构计算集群系统运行在分布式异构集群中,如图1所示,该分布式异构集群具有n个终端节点、2个管理节点和n个计算节点。其中终端节点负责数据分发、服务提交以及计算结果汇总展现等;管理节点负责异构计算集群资源管理、任务分配、负载均衡、集群监控、服务管理、会话管理和节点协调管理等,两个管理节点分为管理节点(备)和管理节点(主),且管理节点(备)和管理节点(主)之间通过心跳程序保持联系;计算节点包括cpu节点和cpu gpu异构节点,负责接受管理节点分配的任务,管理运行在其上的并行计算服务,实时接收来自终端节点的数据进行计算处理,并返回计算结果。
36.如图2所示,本实施例的面向服务的轻量级异构计算集群系统包括轻量级服务中间件组件、资源调度管理组件、轻量级分布式通信组件、用户编程接口组件,并且用户编程接口组件包括终端节点侧api接口和计算节点侧api接口。
37.1)其中轻量级服务中间件组件,运行在每一管理节点中,包括会话管理模块(session manage)和服务管理模块(service manage),用于实现终端节点和计算节点之间的连接和会话管理以及实现计算节点的注册使用和管理。
38.具体的,会话管理模块包括会话控制器、会话状态管理、会话建立与销毁。会话控制器根据应用类型选择合适的会话管理器,在相应会话管理器不存在的情况下,在管理节
点中申请资源,并创建会话管理器。
39.系统中的会话状态指终端节点与计算节点之间的临时数据和状态以及请求和响应情况等,一次会话包括从会话建立、会话状态记录、会话状态管理到会话销毁的整个流程。
40.服务管理模块用于对计算节点侧的并行计算服务进行服务注册、服务查询、服务挂接、服务监控。这里的服务是指根据计算节点侧api编写的并行计算服务,服务注册完成某种并行计算服务在系统中的登记,包括名称、功能、资源需求、接口等,并将此服务记录在服务目录库中。服务查询实现对用户所需并行计算服务的查找,可根据服务名称、功能等信息进行服务搜索;服务挂接用来实现终端节点程序与并行计算服务间的连接;同时在服务运行过程中,可以实时监测服务执行情况。
41.2)资源调度管理组件,运行在每一管理节点中,包括资源表示模型、资源分配策略和资源调度算法,用于对分布式异构集群中的资源进行统一度量、分配和管理。
42.1、资源表示模型,基于容器技术实现对分布式异构集群中的资源的度量、隔离和限定,通过容器将多个维度的资源(如cpu核数、gpu、内存大小、网络、磁盘i/o等)按照预设比例进行封装。
43.容器资源的多少根据用户应用程序或并行计算服务的容器请求信息来动态生成。容器请求信息包括所需容器数量、容器的资源容量、容器请求的优先级、资源所在位置等信息。其中容器的资源容量表示cpu、gpu、内存大小、网络带宽、i/o等资源信息;资源所在位置是指某个节点或某个机架等;容器请求的优先级表示任务内部若干容器请求的优先级顺序。
44.2、资源分配策略,采用三级资源分配策略,当监测到计算节点存在空闲资源时,依次选择调度队列、选择已提交的并行计算服务和选择并行计算服务中的容器请求来分配该空闲资源。
45.本实施例中三级资源分配策略具体包括:
46.第一、选择调度队列:采用层次组织队列方式,从根队列开始,根据分配原则采用基于队列优先级的深度遍历方式进行队列选择,得到最终选择的叶子队列,所述分配原则为选择队列整体资源使用率低的队列作为优先分配的队列。
47.第二、选择已提交的并行计算服务:在选择得到合适的叶子队列后,不同的调度器采取不同的资源调度算法对叶子队列中的资源进行分配。其中先进先出调度器优先将空闲资源分配给当前提交最早但尚未完成的并行计算服务;容量调度器则通过配置多队列的方式为多用户同时提供并行计算服务;公平调度器则是对各个并行计算服务当前占用的资源进行排序,将空闲资源优先分配给占用量较小的并行计算服务。
48.第三、选择并行计算服务中的容器请求:当调度队列和并行计算服务都选择好后,此时接着选择并行计算服务内部的容器请求,根据容器请求的优先级对该请求进行封装。并行计算服务中包含的容器请求有多种类型,选择并行计算服务中优先级高的容器请求进行分配。
49.3、资源调度算法,基于先进先出调度器(fifo scheduler)、容量调度器(capacity scheduler)或公平调度器(fair scheduler)完成资源管理调度。
50.其中先进先出调度器根据并行计算服务提交的先后顺序安排并行计算服务在资
源竞争中的顺序。当系统存在空闲资源时,其优先将空闲资源分配给当前提交最早但尚未完成的并行计算服务。
51.容量调度器通过多队列的设计,允许多个用户共享整个集群资源。通过为用户分配专属队列,再为各队列分配相应的资源量,即可通过配置多队列的方式实现为多用户同时提供计算服务。
52.公平调度器的目标是确保系统中所有并行计算服务公平享有计算资源。在系统存在空闲资源的情况下,其对系统中的各项并行计算服务当前占用的资源进行排序,将空闲资源优先分配给占用量较小的并行计算服务。
53.3)轻量级分布式通信组件,运行在每一管理节点、终端节点和计算节点中,包括高并发异步io模式、异步消息传递机制和多种消息通信模式,用于基于管理节点实现终端节点和计算节点之间的信息交互。
54.其中高并发异步io模式,在该异构计算集群系统中,考虑到节点间高效通信的需要,几乎所有的i/o操作按照异步设计,主线程不会被阻塞。在轻量级分布式通信组件初始化时,将根据用户要求创建相应数量的i/o线程,每个线程都有与之绑定的poller。在分布式通信的server端开始监听或client端发起连接时,在主线程中创建connecter或listener,并将其绑定到i/o线程,i/o线程将connecter或listener添加到poller中用以侦听读/写事件。
55.其中异步消息传递机制,提供进程内、进程间、节点间、广播等方式的消息通信协议。
56.本实施例的多种消息通信模式,根据异构计算集群系统中节点间的通信场景,提供多种消息模型,包括一对一结对模型(exclusive

pair)、请求回应模型(request

reply)、发布订阅模型(publish

subscribe)、推拉模型(push

pull)。
57.一对一结对模型:可以认为是一个tcp connection,但是tcp server只能接受一个连接。数据可以双向流动。
58.请求回应模型:由请求端发起请求,然后等待回应端应答。一个请求对应一个回应,从请求端的角度来看是发

收配对,从回应端的角度是收

发配对。跟一对一结对模型的区别在于请求端可以是1~n个。该模型主要用于远程调用及任务分配等。
59.发布订阅模型:发布端单向分发数据,且不关心是否把全部信息发送给订阅端。如果发布端开始发布信息时,订阅端尚未连接,则这些信息会被直接丢弃。订阅端未连接导致信息丢失的问题,可以通过与请求回应模型组合来解决。订阅端只负责接收,而不能反馈,且在订阅端消费速度慢于发布端的情况下,会在订阅端堆积数据。该模型主要用于数据分发。
60.推拉模型:server端作为push端,而client端作为pull端,如果有多个client端同时连接到server端,则server端会在内部做一个负载均衡,采用平均分配的算法,将所有消息均衡发布到client端上。该模型主要用于多任务并行。
61.4)用户编程接口组件,包括终端节点侧api接口和计算节点侧api接口。
62.4.1)终端节点侧api接口,设置在每一终端节点中,用于提供编写终端节点程序的编程接口,并提供同步和异步两种方式基于管理节点将终端节点侧的数据发送至计算节点侧。api接口基于轻量级分布式通信组件实现通信,进一步本实施例将终端节点和计算节点
侧的轻量级分布式通信组件封装至api接口中,以更加便于用户使用。
63.同步方式:支持将终端节点侧任务数据发送给计算节点侧,然后终端节点侧进入阻塞状态,直至计算节点侧返回计算结果。
64.异步方式:支持将任务数据发送给计算节点侧,然后设置回调函数,当计算节点侧执行的计算完成时,会调用回调函数进行下一步处理。
65.4.2)计算节点侧api接口,设置在每一计算节点中,用于提供编写并行计算服务的编程接口。包括服务创建(oncreateservice)、会话绑定(onsessionbind)、任务执行(ontaskexec)、解除绑定(onsessionunbind)、服务销毁(ondestoryservice)等接口。
66.基于本实施例提供的面向服务的轻量级异构计算集群系统,以一次计算任务为例,该系统的执行过程如下:
67.通过终端节点侧api接口编写终端节点程序,提交计算任务,并基于轻量级分布式通信组件与会话控制器建立连接;
68.会话控制器查找与所提交的计算任务所属的类型应用对应的会话管理器,如果对应的会话管理器不存在,则向资源调度管理组件申请管理节点的资源,创建并启动相应的会话管理器;会话管理器根据用户提交的计算任务向资源调度管理组件申请计算资源;
69.资源调度管理组件根据会话管理器的申请分配计算节点侧空闲的计算资源;
70.服务管理模块获得所需的计算资源后,在对应的计算节点中启动并行计算服务实例,将终端节点程序与并行计算服务进行挂接;
71.会话管理器建立终端节点与计算节点的会话,并发送任务和数据到对应挂接的并行计算服务实例,并将并行计算服务实例计算完成的结果返回至终端节点,管理并记录会话状态,并在完成计算任务后销毁会话,结束本次计算。
72.为了说明本实施例提供的面向服务的轻量级异构计算集群系统具有强大的应用场景,以下结合一具体实例进一步说明其使用步骤:
73.a、首先进行热点分析,根据用户的业务应用软件的特点,找出程序中可并行化的热点部分;
74.b、将用户的业务应用软件分割为可并行化部分与不可并行部分,并规划好两者之间的衔接逻辑关系;即用户业务应用软件分解为用户节点程序部分(终端节点上运行)和一个或多个并行计算服务(一个或多个计算节点上运行);
75.c、使用用户编程接口组件中的终端节点侧api接口编写用户节点程序部分,得到在终端节点中运行的终端节点程序,使用计算节点侧api接口编写并行化程序部分,得到在计算节点中运行的并行计算服务;
76.d、将终端节点上的计算任务通过管理节点中的资源调度管理组件提交并行计算服务,如果对运行该并行计算服务程的计算节点有相应要求,如计算节点类型(cpu节点或异构节点)、计算节点数目等,需在提交并行计算服务时明确指定;
77.e、通过轻量级服务中间件组件中的服务管理模块查看提交的并行服务服务状态,如是否排队中、是否已调度运行、是否失败等;
78.f、若并行计算服务调度运行失败,则通过轻量级服务中间件组件中的服务管理模块查看失败原因;在并行计算服务已调度运行的情况下,可以查看并行计算服务从提交到调度运行的时延以及运行并行计算服务的各个节点的信息等;
79.g、在并行计算服务已调度运行后,终端节点程序可实现与多个并行计算服务的挂接和使用,实时将数据分发至并行计算服务,并行计算服务进行数据的处理分析,并将处理结果返回至端节点程序进行汇总展现;
80.h、在并行计算服务调度运行过程中,可通过轻量级服务中间件组件中的服务管理模块监控系统状态、并行计算服务状态和资源状态等,并进行管理配置工作。同时,在运行过程中,通过轻量级服务中间件组件中的服务管理模块可查看并行计算服务性能统计及分析情况,辅助用户查找性能瓶颈,进行性能优化。
81.本实施例提供的轻量级异构计算集群系统具有面向服务的分布式计算:采用分布式计算技术与面向服务技术相融合的方式,结合各个技术的优点,通过面向服务技术的融入,将并行计算程序服务化,并行计算服务相对独立且可重用。支持并行计算服务的注册、挂接、组合、使用和释放,上层应用可灵活使用各种各样的并行计算服务。本实施例中各个技术本身为现有技术,主要通过技术融合提供一个结合各个技术优点的计算平台。
82.本实施例提供的轻量级异构计算集群系统具有高效的分布式计算框架:通过轻量级分布式通信组件的高并发异步io框架及多种消息模式设计,简化分布式计算架构,优化集群系统节点间通信及处理效率;通过将用户应用的业务逻辑与计算密集逻辑相分离,针对计算密集逻辑进行并行化设计开发,多个并行化计算服务同时运行,最大化提高数据处理加速比。
83.本实施例提供的轻量级异构计算集群系统具有简便易用的轻量级框架:异构计算集群框架采用轻量级分布式组件的设计开发来实现,框架规模小、部署简单,同时通过用户编程接口组件提供简单易用的终端节点侧api接口和计算节点侧api接口供开发人员使用,便于其分布式应用设计开发。
84.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
85.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜