用于提供分发机制的方法与流程

文档序号:36069283发布日期:2023-11-17 22:57阅读:28来源:国知局
用于提供分发机制的方法与流程

本发明涉及一种用于提供分发机制的方法。此外,本发明涉及用于该目的的计算机程序和设备。


背景技术:

1、从现有技术中已知:集群可以具有多个异构的分布式的计算节点,即特别是具有不同能力的计算机。这些计算节点必要时可以通过消息传递中间件进行通信,以使得能够执行传入的(eingehend)应用,其中所述消息传递中间件例如提供一种形式的发布/订阅语义。

2、为了在集群中执行传入的应用,必须首先将该应用分配到其中一个计算节点。所述分配、即映射在此应该以这样的方式执行,使得在所述计算节点上满足应用的要求,并且同时有利地充分考虑到集群的其他目标,例如负载均衡(lastausgleich)。这尤其是在非常异构的集群的情况下可能是有问题的。

3、传统的映射解决方案例如由中央化的协调器(zentralisierten orchestrator)执行。例如,所述协调器拥有中央化的调度器组件,所述中央化的调度器组件决策出必须在哪个计算节点上提供应用、例如传入的服务或功能。在此情况下,用于决策出目标节点的度量通常可以是静态的并且并不涉及到计算节点的变化的状态(例如处理器和存储器的当前可用性)。

4、也已知用于将应用分配到片上系统(soc)内的不同内核的解决方案。但是,这些不适用于分布式系统。由于没有考虑分布式系统的许多属性,针对soc的方法不能相应地套用到分布式系统。


技术实现思路

1、本发明的主题是具有权利要求1的特征的方法、具有权利要求13的特征的计算机程序以及具有权利要求14的特征的设备。本发明的进一步特征和细节从相应的从属权利要求、说明书和附图中得出。在此,在根据本发明的方法的上下文中描述的特征和细节当然也适用于根据本发明的计算机程序和根据本发明的设备的上下文,并且分别反之亦然,从而关于本发明的各个方面的公开始终交替地被参考或者说可以被参考。

2、该方法特别是用于:为了在分布式计算节点的系统中分发至少一个应用而提供分发机制。这尤其意味着提供了一种机制,该机制决策出或准备好决策:应该在系统的其中哪个计算节点上执行传入的应用。在这种情况下,分发机制可以考虑至少一个标准,例如计算节点的应用和/或资源的一个或多个要求,和/或计算节点的负载(auslastung)和/或系统负载分布的优化。

3、为了至少部分地提供分发机制,系统的计算节点或系统的其中至少一个计算节点可以分别执行接下来的评价步骤,其中计算节点优选地分别相继地以指定顺序和/或自动化地执行这些评价步骤:

4、-从请求服务(anfragedienst)接收应用要求,特别是从至少一个或多个请求服务器(英文request server)接收应用要求,其中,该应用要求说明该应用、特别是在系统中传入的应用对计算节点的至少一个资源的至少一个要求;

5、-评估接收到的应用要求,以便将该应用的至少一个要求与计算节点上的至少一个资源的可用性进行比较,以确定关于该计算节点执行该应用的适用度的适用度结果;

6、-将所确定的适用度结果传输到消息服务,特别是传输到网络和/或中间件和/或通过互联网通信来传输,以便在那里提供该适用度结果以及关于系统的其他计算节点的适用度的其他适用度结果,以便优选地根据这些适用度结果而分发该应用以用于在计算节点之一上执行,其中该应用特别优选地在根据这些适用度结果而具有最高适用度的那个计算节点上被执行。

7、该方法的优点是计算节点可以自己评价它是否适合以及在多大程度上适合执行该应用。这种分发机制的分散式的(dezentral)设计实现了良好的可扩展性和高度灵活性。此外,与静态解决方案不同地,能够实现动态分发,即考虑动态标准,例如计算节点的当前负载。

8、还可以设置后续的进一步分发步骤:

9、-根据这些适用度结果而分发至少一个应用以用于在这些计算节点中具有最高适用度的计算节点上执行。

10、该步骤可以可选地分别由计算节点或由请求服务或由另一中央服务器执行,以便能够根据计算节点的最佳适用度执行分配。计算节点上的至少一个资源的可用性可以包括动态可用性,例如计算节点的资源的负载,例如处理器和/或存储器负载。动态可用性因此可以取决于由计算节点当前正在执行的应用的数量和/或由这些应用对计算节点的当前负载。动态可用性还可以取决于计算节点的基本上现有的功率能力和/或通信能力,即优选地取决于由计算节点的硬件和/或软件装备所定义的资源的类型和范围。替代地或附加地,可用性可以包括静态可用性,其表示该计算节点的如下特征,与动态可用性不同,这些特征在应用的运行时间期间并不改变。这例如涉及计算节点的功能,例如特定硬件加速器的存在。

11、计算网络,也简称为计算机集群或简称集群,可以包括多个联网的计算节点,即特别是计算机。根据本发明的系统可以实施为分布式系统,即实施为具有分布式计算节点的计算网络。有利地规定:系统的计算节点被异构地实施,也就是说鉴于功率能力方面并且特别是鉴于所使用的硬件和/或软件方面不同。系统的可扩展设计因此是可能的,其中可以与计算节点的结构无关地补充另外的计算节点。根据本发明的方法于是具有以下优点,即,尤其是在异构集群的情况下,可以以特别可靠的方式确定适合的计算节点。

12、应用也可以理解为容器和/或虚拟机和/或被封装的功能。此外,该方法优选地不限于每个计算节点一个应用,而是可以由一个计算节点启动和执行多个应用。

13、应用要求可以定义如下要求,所述要求优选地是对于由计算节点对该应用进行的托管的所期望的或必要的条件。也可以由应用要求的应用清单来指定对资源的要求。应用要求可以作为消息由传入的应用传输到消息服务和/或请求服务,以便以这种方式启动由分发机制进行的分发并因此启动评价步骤的执行。

14、求服务,特别是以至少一个请求服务器的形式,可以用作将应用要求发送到分布式集群的入口点(einstiegspunkt)和转发代理(weiterleitungsagent)。由于分发优选由计算节点以自组织的方式进行,因此请求服务的功能可以是将用于发起所述分发的应用要求转发给计算节点,并在必要时接下来监控应用是否已经启动成功。如果没有计算节点在预配置的时间段内成功启动该应用,则请求服务还可以重新启动(或拒绝)应用要求。请求服务可以必要时存储或缓存应用要求,直到它们被成功托管,或者指示消息服务存储副本。如果在启动应用时不同计算节点之间出现分歧(unstimmigkeit),则请求服务也可以可选地实施为调解者(vermittler)。也可能有请求服务的多个实例,以便要么保证冗余和高可用性,要么实现对于跨大型集群的扩展的适用度。请求服务可以实施为中央请求服务器,并且因此中央地设置,以便从一个或多个应用获得应用要求并将其转发给其中多个计算节点,例如通过消息服务。

15、消息服务,英文也称为messaging interconnect(消息互连),可以被设置用于计算节点之间的消息传送。为此,可以将消息服务实施为网络。

16、适用度结果,尤其是以适用度度量的形式,可以反映计算节点对托管、即启动和执行特定应用的适用度。应用可以通过应用要求而指定其对计算节点资源的具体要求。系统的每个计算节点都可以通过评价步骤如此创建适用度度量,使得其说明与这些要求和其自身资源的符合程度。因此,适用度度量是应用特定的和/或计算节点特定的和/或对于当前时间点特定的,因为例如计算节点的资源可用性可能随时间变化。适用度度量可以包括标量值或元组,所述标量值作为各种项(begriffe)的加权平均值被计算,所述元组说明了是否满足这些要求。此外,还能够以适用度度量来说明用于补充特定软件要求的复杂谓词应用特定的适用度度量可以可选地与集群定义的负载度量相结合,以便均衡不同计算节点之间的负载。换句话说,在创建适用度矩阵时也可以考虑计算节点和/或系统的其他计算节点的负载。因此,例如计算节点也可以定期在消息服务中发布自己的负载状态,并且一致同意如下规则:过载的计算节点不申请新应用。在必要时,还可以在适用度度量中说明更复杂的度量,所述更复杂的度量说明了计算节点在特定时间内执行功能的能力。为此,可以可选地在应用清单中说明鉴于计算、缓存和带宽配置文件方面的详细配置文件,其包括计算节点的指令组合(befehlsmix)在内。

17、可以规定,计算节点分别具有进程处理器(prozesshandler),其中当通过应用而使应用要求在请求服务上、特别是请求服务器上变得可用时,通过这些进程处理器至少部分地在时间上并行地执行这些评价步骤。“时间上并行地”可以理解为多个计算节点至少部分地同时执行这些评价步骤。以这样的方式,这些进程处理器作为该系统的分布式进程处理器,可以在消息服务上提供适用度结果。进程处理器在下文中也可以简称为dph(英文:distributed process handler(分布式进程处理器))。

18、此外,在本发明的范畴内可能有利的是,适用度结果分别包括说明(angabe),以及尤其是用于评价相应计算节点对托管该应用的适用度的度量。在这种情况下,进程处理器对所确定的适用度结果的传输可以导致发起至少一个或恰好一个自动化竞争,其中将适用度结果作为托管该应用的竞标而相互比较。因此,可以确定出计算节点中具有最高的托管适用度的那个计算节点,以便为了所述分发而将该应用分派给具有最高的执行适用度的所述计算节点。如果在这些评价步骤中通过评估而得出:该计算节点能够满足特别是在应用清单中的所指定的要求,则有利地规定该dph以适用度度量的形式计算适用度结果。然后,可以在具有此dph的计算节点(即竞标者)上发出针对托管该应用的竞标,其方式为,dph通过系统中的消息服务发布适用度度量。为此,可以例如通过消息服务上的广播或多播来传播所述适用度度量。然后,具有最高适用度度量的竞标者可以赢得该“竞标回合”,这意味着:向该竞标者提供该应用。竞争也可以理解为是拍卖,从而使所述分发机制也相应地是基于拍卖的。

19、此外,可以规定:系统被划分为至少两个或至少三个或至少五个或更多分区,其中首先分别针对分区中的仅一个或每个分区执行自动化竞争,以便在所述一个或每个分区中确定这些计算节点中具有分区内最高托管适用度的那个计算节点。优选地,接下来可以根据所述确定,即根据所确定的分区内最高适用度的计算节点优选地通过进一步竞争而确定这些计算节点中具有跨分区最高的托管适用度的那个计算节点。例如,这些分区可以至少部分地同时执行竞争,使得接下来可以在其中每个分区中的获胜者之间进行竞争。也在分区之间应用轮询法(round-robin)。应用要求于是可以以轮询法被提交给这些分区。如果在此根据第一种情况而找到适合的计算节点,则可以在那里执行应用。如果根据第二种情况无法找到适合的计算节点,则可以在其中另一个分区中发起竞争。新应用也总是可以以轮询规划被发送到新分区。另一种可能性是:每个分区都有一个特定的计算节点,即分区领导者(partitionsführer),该分区领导者知道其分区中的不同计算节点的能力和它们的当前状态,例如相应资源的可用性。于是,可以最初只在分区领导者之间进行竞争。一旦分区领导者获胜,它就可以在其分区中的计算节点之间发起第二次竞争。这具有在较大集群中的特别高效和可扩展的分发的优点。

20、根据另一优点,可以规定:这些计算节点分别具有进程处理器,其通过如下方式而确定相应计算节点的至少一个资源的可用性:进程处理器执行相应计算节点的至少一个资源的监控。还可以重复执行该确定,以便通过监控而考虑和/或识别可用性的变化,并且能够基于该变化而动态地适配适用度结果。因此,可以动态地考虑在应用分布中计算节点的例如由于通过执行其他应用所引起的负载而变化的状态。相应地,可以在计算节点的应用运行时间期间执行监控。在此,诸如处理和存储能力等资源的当前可用性例如取决于计算节点的当前负载,并且因此受到不断的变化。

21、本发明范畴内的另一优点可以在如下情况下得以实现,即,在通过至少一个计算节点、并且特别是通过所述多个计算节点执行评价步骤之前执行以下请求步骤:

22、-通过应用将应用要求传输到请求服务,特别是至少或恰好一个中央请求服务器,以便最初由该应用来请求执行,其中这些应用要求可以具有应用清单,其说明该应用对由计算节点进行的执行的要求,其中优选地,应用清单然后在评估应用要求的评价步骤中由所述至少一个或多个计算节点处理,以便分别提供关于相应计算节点对所述执行的适用度的适用度结果。

23、这具有如下优点:分发机制可以很容易地由应用本身发起并受应用清单定义的影响。该应用清单在此可以是针对该应用而静态地定义的或被动态地适配于当前的发展(entwicklung)。

24、有利地,在本发明的范畴内可以规定:系统的计算节点被实施为异构计算节点,其针对应用的执行而言鉴于功率能力方面不同,特别是鉴于至少一个处理器和/或存储器的尺寸和/或通信带宽和/或架构和/或至少一个软件功能方面不同。此外,该系统可以实施为可扩展系统,以通过另外的计算节点进行扩展。这此情况下的优点是:分发机制由于其分散式的设计而可以在扩展后立即使用。系统的计算节点也可以通过如下方式而是异构的,即,使所述计算节点包括具有不同架构(arm、intel等)和不同能力(cpu、gpu、定制加速器)的计算机。根据本发明的解决方案可以具有如下优点:所述分发不限于类似于计算中心的架构中的多个同构机架的排列(reihe)。也可能的是,计算节点在地理上是分散的。可选地,应用还可以通过应用要求而设定关于时间规划(例如,在x时间单位内结束或所需的往返响应时间)和/或对特定硬件功能的需求和/或与计算节点子集的亲和力等方面的经扩展的要求。

25、根据另一种可能性,可以规定:计算节点的至少一个资源包括以下资源中的至少一个,其中所述应用要求说明对该资源的要求,以便特别是在分发时考虑分布式系统的参数:

26、-计算节点的功率能力,特别是处理器和/或存储器供应(prozessor-und/oderspeicherangebot),优选存储器带宽,

27、-计算节点的加速机制,特别是gpu加速和/或硬件加速,

28、-计算节点的软件,

29、-与计算节点的网络连接质量,

30、-计算节点的时钟发生器的同步状态。

31、因此,特别是在不同的异构的节点情况下考虑各种标准,例如节点之间网络条件的不同质量、可能是不同步的时钟发生器、具有对定时的指定要求的应用、可靠性、节点能力和其他特征。

32、根据本发明的一个有利的扩展,可以规定:该系统被设计为边缘计算系统或云计算系统。该应用可以优选地实施为指定车辆的至少部分自主的驾驶功能。此外,该方法可以替代地或附加地用于分布式中间件和/或操作系统和/或管理程序(hypervisor)和/或物联网应用和/或车辆控制器中。

33、还可以设想:消息服务提供计算节点之间的通信并且优选地实施为通信网络,在所述通信网络中,作为广播或多播来进行所述适用度结果的传输。计算机网络中的广播是传输给网络中所有参与者的消息,特别是不需要任何反馈。同样,多播是指消息从一个点传输到一个组,但不一定传输到所有参与者。

34、此外,在本发明的范畴内可以规定,执行后续的分发步骤,其在传输所确定的适用度结果之后执行,特别是分别通过计算节点或通过请求服务或通过另一中央服务器执行:

35、-根据该适用度结果与其他适用度结果的比较,进行在该计算节点上执行该应用的决策,使得优选地所述应用根据所述适用度结果而被分发以在所述计算节点之一上执行和/或所述应用在具有最高适用度的那个计算节点上被执行。

36、因此,所述决策可以由每个计算节点自己做出,也可以分散地或替代地集中地做出。这具有如下优点:根据结构和大小以及对可扩展性的要求而提供最佳解决方案。

37、根据第一可能性,根据本发明的方法可以提供作为分散和/或分布式机制和/或以用于将应用分发到系统内的计算节点的“调度器(dispatcher)”的形式的分发机制。分发机制至少可以通过评价步骤来提供,并且特别是可以通过根据该适用度结果与其他适用度结果的比较进行在该计算节点上执行该应用的决策来提供。在此,分发机制可以分散地、即由系统的多个或所有计算节点提供。因此,计算节点中的每一个都可以具有进程处理器,其必要时与消息服务交互以便执行评价步骤和/或以上述方式对执行进行决策。应用在分发的范畴内被分派到并且在其上执行或应执行所述应用的计算节点也可以被称为目标节点。在分散式的分发机制的情况下,每个计算节点都可以自己执行适用度结果的比较并因此确定哪个是目标节点。应用可以封装在容器中,以便能够在目标节点上执行这些应用。目标节点也可能具有用于执行该应用的适合软件(例如操作系统和/或相关库)。该应用可以是针对平台而被预编译的(vorkompilieren),或者也可以使用与硬件无关的语言,例如webassembly,其中目标节点作为针对该应用的适合的运行时环境而提供所述语言。替代地,也可以在应用清单中指定这些要求。特别是,目标节点于是必须满足这些要求以托管该应用。

38、本发明的主题也是一种计算机程序,优选计算机程序产品,特别是进程处理器,其包括指令,当由计算机、特别是计算节点执行该计算机程序时,所述指令促使所述计算机、特别是所述计算节点执行根据本发明的方法。因此,根据本发明的计算机程序带来了与参照根据本发明的方法详细描述的相同的优点。

39、本发明的主题也是一种用于数据处理的设备,尤其是系统的计算节点,其被设置为执行根据本发明的方法。因此,根据本发明的设备带来了与参照根据本发明的方法详细描述的相同的优点。

40、作为所述设备或计算机,例如可以设置执行该计算机程序的数据处理设备和/或计算节点。该计算机可以具有至少一个用于执行计算机程序的处理器。也可以设置非易失性数据存储器,所述计算机程序被存储在所述非易失性数据存储器中并且可以由处理器从所述非易失性数据存储器中读取所述计算机程序以用于执行。

41、本发明的主题还可以是一种计算机可读存储介质,其包括根据本发明的计算机程序。该存储介质例如设计为数据存储器、诸如硬盘和/或非易失性存储器和/或存储卡。该存储介质可以例如被集成在计算机中。

42、此外,根据本发明的方法也可以实施为计算机实现的方法。

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