CN113168347A - 容器化应用程序的编排 - Google Patents
容器化应用程序的编排 Download PDFInfo
- Publication number
- CN113168347A CN113168347A CN201980079235.5A CN201980079235A CN113168347A CN 113168347 A CN113168347 A CN 113168347A CN 201980079235 A CN201980079235 A CN 201980079235A CN 113168347 A CN113168347 A CN 113168347A
- Authority
- CN
- China
- Prior art keywords
- task
- computing
- tasks
- scheduling
- predicted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种用于编排计算任务的执行的系统和方法。编排引擎可通过网络从多个过程引擎接收任务请求。与编排引擎相比,过程引擎可对应于位于远处的相应边缘或现场设备。每个任务请求可指示用于执行相应计算任务的至少一个任务要求。可从一组计算实例选择具有可用计算资源的多个计算实例。可为计算任务中的每一个生成预测运行时间。在示例中,基于预测的运行时间、任务要求、可用计算资源以及关联的网络状况,由编排引擎确定调度和分配方案。调度和分配方案限定何时执行多个计算任务中的每一个,以及多个选择的计算实例中的哪个执行多个计算任务中的每一个。所选择的计算实例根据该调度和分配方案执行多个计算任务。
Description
相关申请的交叉引用
本申请要求2018年10月2日提交的美国临时申请序列号62/740,034的权益,该专利申请的公开内容通过引用整体并入本文。
技术领域
本申请涉及计算,例如效用计算。更具体地,本申请涉及用于在计算平台上编排计算任务的系统和方法。
背景技术
容器化可被用于部署位于远程位置或难以访问位置的控制软件。然而,当此类部署对时间敏感时,此类软件通常由现场技术支持提供。例如,可将专业技术人员派遣到远程或限制访问的位置,诸如海上石油平台、沙漠太阳能农场等。在本文已经认识到,在此类位置提供现场支持不仅昂贵,而且其可能会阻止对其他关键事件做出立即响应,诸如可停止生产或对基础设施造成无法弥补的破坏的事件。在一些情况下,可在远程位置实现高性能计算硬件,而不是将专家派遣到远程位置。然而,在本文中进一步认识到,除了其他缺点之外,这种硬件可能是昂贵的并且难以维护。此外,在遭受不利条件的远程地区,维护可能特别困难。
在效用计算应用程序中,容器可包括轻量的可执行软件包。容器可包括运行该软件所需的所有内容。软件容器可在不同环境中实现精简的应用程序可移植性。因此,除其他外,容器化应用程序是将服务从主机系统导出到计算平台的常见做法。容器技术的最新进展允许基于实时操作系统(即实时容器)的容器开发。实时容器的挑战之一是在使用最少的计算资源的同时,通过实时保证来调度容器执行。
发明内容
本发明的实施例通过提供编排与实时要求相关联的应用程序的容器化的方法、系统和装置来解决并克服了本文所描述的一个或多个缺点。本发明的各方面包括用于执行多个计算任务的方法和系统。编排引擎可通过网络从多个过程引擎接收任务请求。与编排引擎相比,过程引擎可对应于位于远处的相应边缘和/或现场设备。每个任务请求可指示用于执行相应计算任务的至少一个任务要求。可从一组计算实例中选择具有可用计算资源的多个计算实例。可为计算任务中的每一个生成预测的运行时间。在一个示例中,基于预测的运行时间、任务要求和可用计算资源,由编排引擎确定调度和分配方案。调度和分配方案限定何时执行多个计算任务中的每一个,以及多个选择的计算实例中的哪个执行多个计算任务中的每一个。所选择的计算实例根据调度和分配方案执行所述多个计算任务。
附图说明
当结合附图阅读时,根据以下详细描述最好地理解本发明的前述和其他方面。为了说明本发明,在附图中示出了目前优选的实施方式,但应当理解,本发明不限于所公开的具体手段。在附图中包括以下附图:
图1是根据本公开的实施例的包括编排引擎的示例性架构的框图。
图2是描绘根据本公开的实施例的由编排引擎和示例性计算平台内的其他节点执行的示例性过程的过程图。
图3是根据本公开的实施例的示例性编排引擎的框图。
图4是根据本公开的实施例的用于执行计算任务的示例性过程的流程图。
图5示出了可在其中实现本公开的实施例的计算环境的示例。
具体实施方式
公开了用于将应用程序的容器化从具有实时要求的边缘和/或现场设备编排到计算平台上的方法和系统。在本文中认识到,用于实时应用的容器化解决方案的当前方法缺乏能力和效率。例如,经常不能保证实时性能,因为每个应用程序都被授予专用计算实例用于其执行,从而产生实时行为,但是没有适当的机制来强制执行它。在此进一步认识到,对于每个应用程序具有专用计算实例是效率低下的并且不能扩展到大量应用程序。更进一步,在当前方法中没有考虑网络传输延迟。
在示例方面,编排引擎通过网络从多个过程引擎接收任务请求。与编排引擎相比或与执行任务的计算平台相比,过程引擎可对应于位于远处的相应边缘和/或现场设备。每个任务请求可指示用于执行相应计算任务的至少一个任务要求。例如,一些计算任务可能需要实时执行。在一些情况下,实时执行的计算任务可能意味着来自任务的数据可在具体时间要求内作为反馈使用。一些计算任务以实时输出数据执行,这些数据可几乎立即(例如在几毫秒内)用作反馈。在示例中,基于任务的预测运行时间、任务要求和可用计算资源,编排引擎确定调度和分配方案。调度和分配方案限定何时执行多个计算任务中的每一个以及在何处(即,哪个计算实例)执行计算任务中的每一个。
所公开的方法和系统对用于执行这种基于计算机的任务的计算机的功能进行了改进。此外,所公开的方法和系统可通过提取位于远程或困难访问位置的实时控制软件来减少对昂贵的高性能本地计算硬件的需求。这样的本地硬件在实践中可能难以维护。在各种示例中,可将实时软件提取到计算平台,其中可使用大量计算资源并且可即时提供技术支持。在一些情况下,根据各种示例性实施例,即使5G接入和核心网可提供低延迟和高通信可靠性,在将时间关键性应用程序进行容器化以在外部平台上进行计算时考虑网络影响。
首先参考图1,示出了根据本公开的实施例的用于执行计算任务的示例性架构或系统100。系统100包括计算平台102,该计算平台包括编排引擎104和与编排引擎104通信的多个计算实例106。尤其是,编排引擎104可指示计算实例106在特定时间执行相应任务,从而在满足任务要求(诸如实时任务要求)同时节省计算实例106的计算资源。计算实例106可包括虚拟中央处理单元(CPU)、虚拟服务器,边缘裸金属(英语:bare-metal)资源等。在一些示例中,计算实例106可基于在其中实现计算实例106的计算平台而不同。计算实例106可相对于彼此具有相同或不同的处理能力。计算平台102可被实现为云计算平台,使得编排引擎104和计算实例106在云中运行。另外地,计算实例106和编排引擎104中的每一个可在单独的、不同的资源上运行。仍然另选地,计算实例106和编排引擎104可在云和单独资源的组合上运行。
应当理解,为了说明的目的,示例性系统100被简化,并且可使用其他系统来执行本文的计算任务编排,并且所有此类系统都被认为在本公开的范围内。例如,计算平台102可根据需要包括任何数量的计算实例106。此外,编排引擎104和计算实例106可被托管在任何数量的实体位置处任何数量的设备上。在示例中,编排引擎104被托管在单个设备上,该单个设备与计算实例106位于同一位置,尽管应理解,本文的实施例不限于此。
示例性系统100还包括多个任务108。任务108可被发送到容器中的编排引擎104。如本文所用,除非另有说明,否则容器是指软件的可执行程序包。例如,编排引擎104可接收容器中的实时任务或容器化实时应用程序。另外地或可替代地,任务108可作为数据被发送到编排引擎104。例如,任务108可被发送到编排引擎104,作为计算平台102已经可用的软件的输入数据。因此,任务108可作为容器和/或数据提供给编排引擎106。
再参考图2,示出了可在计算平台102内执行的示例性过程。图2示出了示例性系统200,其包括通过网络112与多个过程引擎110通信的计算平台102。在一些情况下,与编排引擎104并且进而与计算平台102相比,过程引擎110对应于远程定位的相应机器或边缘或现场设备。过程引擎110可将任务108发送到编排引擎104。举例来说,任务108可与对应于过程引擎110的机器或设备的操作相关联,使得计算平台102可提供对机器或设备的实时控制。与过程引擎110相比,计算平台102可以是远程的。因此,与对应于过程引擎110的设备和机器相比,计算平台102可以是远程的。在这样的配置中,计算平台102可远程地提供用于实时操作的服务。例如,过程引擎110可对应于远程油平台上的燃气轮机的操作,使得计算平台102可从与燃气涡轮相比的远程位置控制燃气涡轮。另外地,计算平台102可与过程引擎110位于同一位置。
应该意识到,编排引擎104并且进而计算平台102可被配置为根据需要执行任何过程引擎110的操作。另外,过程引擎110可相对于彼此位于同一位置以便为共同操作提供服务,或过程引擎110可分布在不同的位置以便为彼此独立的操作提供服务。过程引擎110和编排引擎104可通过网络112相互通信,该网络可以是本领域通常已知的任何网络或系统,包括互联网、内联网、局域网(LAN)、广域网(WAN)、城域网(MAN)、直接连接或一系列连接、蜂窝电话网络、或能够促进过程引擎110与计算平台102(尤其是编排引擎104)之间的通信的任何其他网络或介质。网络112可以是有线的、无线的或其组合。另外,几个网络可单独工作或彼此通信以促进网络112中的通信。
继续参考图2,在201处,由过程引擎110发送并由编排引擎104接收任务请求。任务请求可对应于多个计算任务108。可通过网络112从过程引擎110接收任务请求,并且每个任务请求可指示用于执行相应计算任务108的至少一个任务要求。在202处,编排引擎104处理任务请求。尤其是,编排引擎104可生成用于完成每个任务请求的优先级。可按照相应优先级定义的顺序来完成任务108。在一些情况下,与具有较低优先级的其他任务相比,具有较高优先级的任务在较低优先级任务之前执行。在各种示例中,基于任务要求来确定并生成优先级。例如,在一些情况下,包括一个或多个任务108的每个容器与任务要求列表相关联。另外地或附加地,容器内的每个任务可与其自身的任务要求相关联。举例来说,如果存在实时完成给定计算任务的任务要求,则编排引擎104向该任务分配优先级,该优先级高于被要求在例如一小时内或比立即更大的一定时间内完成的不同任务的优先级。
在一些示例中,任务请求或任务108可指示完成相应任务或任务请求的具体期限。因此,任务要求可包括具体期限并且可基于期限来分配优先级。另外地或附加地,示例性任务要求可指示用于完成多个任务的任务优先性。例如,在可执行第二任务之前可能需要执行第一任务,因此第一任务可指示优于第二任务的任务优先性。继续该示例,可为第一个任务分配比第二个任务更高的优先级。此外,任务优先级可随时间推移而变化。例如,给定任务的优先级可能会随着其期限临近而增加。再次参考任务优先性示例,在一些情况下,直到调度了具有优先性的第一任务后,才调度第二任务。因此,第二任务的优先级可取决于第一任务的期限,并且因此第二任务的优先级可随着第一任务的期限临近而增加。除了任务期限、任务优先性等之外,用于确定任务优先级的标准还可包括与处理任务以及发送/接收与任务相关的输入/输出相关联的网络条件,如下文进一步所描述的。
编排引擎104可监测计算实例106。编排引擎104可连续或周期性地监测计算实例106,以便连续或周期性地确定计算实例106的计算资源的状态。编排引擎104可监测每个计算实例106的利用。与其他计算实例106相比,给定计算实例106可具有带不同处理能力的不同虚拟核心。通过监测每个计算实例106的利用,编排引擎104可识别在任何给定时间可用的计算实例106的计算资源的可量化的量。因此,在一个示例中,在通过网络112接收到任务请求之后,编排引擎104从一组计算实例中选择计算实例106,其中所选择的计算实例106具有可用计算资源。
编排引擎104还可连续地或周期性地监测网络112。在一个示例中,编排引擎104监测任务108(例如,每个任务108)的网络影响(诸如延迟或抖动)。此外,编排引擎104可识别与每个完成的计算任务相关联的相应目的地。例如,任务请求可指示相关联的任务是从哪个过程引擎110发起的,其可对应于任务输出的目的地。替代地或另外地,任务请求可指示相关联的任务输出应当被发送到哪个过程引擎110。在202处,编排引擎104还可基于与任务相关联的网络影响来生成任务优先级。因此,编排引擎104可基于网络112的任务要求和性能来生成用于完成任务请求的优先级顺序。举例来说,如果第一示例性任务和第二示例性任务具有相同的任务要求,但第二任务的输出的目的地在于与编排引擎104已经观察到的网络延迟相关联的过程引擎110,则编排引擎104可基于网络影响向第二任务分配比第一任务的优先级更高的优先级。因此,在一些情况下,由于与给定任务相关联的网络状态,即使任务可能具有相同的任务要求,编排引擎104仍可为给定任务分配比另一个任务更高(或更低)的优先级。由于各种原因,与不同任务相关联的网络状态可能会有所不同。例如但不限于,给定任务的网络连接可表现出延迟或抖动,给定任务的过程引擎可在地理上更远离另一个任务的过程引擎,或者相比于与另一个任务相关联的网络连接,与具体任务的处理相关联的网络连接可能会拥塞。因此,与不和网络延迟相关联的相同任务相比,编排引擎104可向与网络延迟(由于各种原因)相关联的任务分配更高的优先级。
仍然参考图2,在204处,编排引擎104可预测给定任务的运行时间。也就是说,在一些情况下,编排引擎104可预测给定任务将花费多长时间来完成。在一些示例中,在203处,编排引擎104监测任务108以获得与过去任务性能相关联的度量。因此,编排引擎104可获得与计算任务和/或计算实例106相关联的历史性能数据。编排引擎104可应用机器学习以基于任务的过去性能对各种任务的运行时间进行建模。因此,当接收到任务请求时,在204处,编排引擎104可预测其运行时间。尤其是,编排引擎104可基于与计算任务108或计算实例106相关联的历史性能数据来生成针对计算任务108的预测运行时间。另外地或可替代地,编排引擎104可收集与网络112相关联的性能数据,并且可基于与网络112相关联的性能数据生成针对计算任务108的预测运行时间。
在204处,也可将给定任务的预测运行时间与和该任务相关联的预定阈值进行比较。在示例中,当预测运行时间大于预定义阈值时,在205处触发警报指示。预定义阈值可表示期间相关联的任务预期要完成的关键持续时间。在示例中,如果给定任务未在其关键持续时间内执行,则可能导致重大后果,诸如工业环境中的操作的延迟或关闭。因此,为了避免或减轻这种后果,当预测运行时间大于其相应预定阈值时,可响应于触发了警报指示而执行各种动作。例如,当预测运行时间大于其相应的预定阈值时,在207处,编排引擎104可确定与预测运行时间相关联的过程引擎110,并且编排引擎104可将警报发送到所确定的过程引擎110。这样做时,过程引擎110可采取动作以减轻被预测为大于其阈值的任务运行时间。举例来说,任务请求可指示发起任务请求的过程引擎110。
在另一个示例中,当预测运行时间中的至少一者大于其预定阈值时,编排引擎104可识别具有可用计算资源的附加计算实例106。在这情况下,编排引擎104可加快预测运行时间太久的任务,例如,通过识别其他计算资源并使用那些其他计算资源来执行加快任务。另外地或附加地,编排引擎104可调整(例如增加)具有大于预定义持续时间的预测运行时间的给定任务的优先级。在这情况下,编排引擎104可根据任务的相应预测运行时间来加快任务。
继续参考图2,编排引擎104确定任务108的调度和分配方案,例如,由编排引擎104接收的每个任务108的执行。调度和分配方案可限定何时执行每个计算任务108,以及多个选择的计算实例110中的哪个执行多个计算任务110中的每一个。编排引擎104可基于对应预测运行时间、任务要求和可用的计算资源来确定任务108的调度和分配方案。尤其是,在206处,编排引擎104生成优化问题,并且在208处,解决优化问题,以便生成调度和分配方案。可基于任务请求的优先级顺序和可用的计算资源来生成优化问题。
在一些情况下,基于事件来更新调度。例如,事件可触发编排引擎104生成新的或更新的调度和分配方案。示例性事件包括接收新任务、正在完成任务的执行等。事件的子集还可触发对调度和分配方案的更新。示例性子集包括但不限于违反任务期限或识别有关计算实例106的问题。另外地或附加地,编排引擎104可周期性地生成调度。
在示例中,在204处生成预测运行时间之后,它可在209处定义对在206处生成的优化问题的输入。在一些情况下,当给定任务的预测运行时间小于预定阈值时,在209触发输入。输入可包括针对具体任务或任务组的预测运行时间。如上所描述的,预定阈值可表示期间相关联的任务或任务组预期要完成的关键持续时间。替代地或附加地,预定阈值可表示一天中的时间,在该时间需要完成相关联的任务或任务组。预测运行时间可指示期间预测完成相关联的任务或任务组的持续时间的范围。替代地或附加地,预测运行时间可指示预测完成相关联的任务或任务组的具体持续时间。预测运行时间还可或替代地指示一天中的时间或一天中的时间范围,预测在此时间完成相关联的任务或任务组。
各种任务信息和资源信息也可在211处限定对在206处生成的优化问题的输入。例如,在202处处理任务以确定其相应优先级之后,可将那些任务优先级输入到优化问题中。更一般地,任务108可指示其相应任务要求,并且可在211处将那些任务要求输入206处生成的优化问题。此外,如上所描述的,编排引擎104可监测计算实例106以选择具有可用计算资源的计算实例。在211处,可用计算资源可被输入到优化问题中。因此,在示例中,优化包括预测运行时间、可用计算资源、任务要求和/或任务优先级作为输入。在一些情况下,优化还可包括网络112的状态或网络112的预测效果作为输入。在一个示例中,每次更新调度时都会生成优化。关于可用计算资源,优化特别考虑了可用计算实例的当前负载。如下面进一步描述的,可在202处处理优化的输出以产生分配和调度方案。
在206处生成优化问题之后,可在213将问题提供给求解器。在208处,解决优化问题以便生成输出。在208生成的输出可包括调度和分配方案。在示例中,在208处,执行离散随机优化以生成调度和分配方案。因此,可使用预测运行时间、任务要求和可用计算资源作为离散随机优化的输入来执行离散随机优化。在一个示例中,当优化引擎104接收到每个任务108时,执行离散随机优化。也就是说,在208处,由优化引擎104接收的一个或多个任务请求(例如预定数量的任务请求)可触发优化,尤其是优化的迭代。替代地或附加地,优化引擎104可周期性地执行优化以生成更新的调度和分配方案。因此,将理解,调度和分配方案可在各个时间生成,或者根据需要响应于各种触发而生成。
仍然参考图2,作为在206和208处执行的优化的结果,可在215处输出调度和分配方案。在202处,编排引擎104可根据调度和分配方案来处理所接收到的任务108。尤其是,在217处,编排引擎104可将指令发送到被选择来执行计算任务108的计算实例106。指令可根据分配方案识别被选择来执行相应的计算任务或任务组的一个或多个计算实例106。指令还可根据在208处生成的时间表指示与应当执行每个任务的时间相关联的时间或顺序。在217处响应于指令,由多个选择计算实例106执行多个计算任务108。
编排引擎104可监测计算实例106对任务的执行。在一些情况下,如果特定任务的执行遇到延迟,例如使得任务错过期限,则编排引擎104检测执行任务中的延迟。响应于检测延迟,编排引擎104可在下一次在201处接收到延迟任务时增加或提高与延迟任务相关联的优先级。类似地,编排引擎104可监测网络112,并且可检测与特定任务或任务组相关联的网络连接是否已经恶化。响应于检测与具体任务或任务组相关联的网络连接已恶化,编排引擎104可增加或提高与恶化的网络连接相关联的当前和/或未来任务的优先级。在这情况下,编排引擎可确保任务按照其相应要求(例如,实时要求)完成。同样,如果降级的网络连接被修复或以其他方式返回其预期操作能力,则编排引擎104可减小或降低与修复的网络连接相关联的当前和/或未来任务的优先级。
计算任务106可根据由编排引擎104生成的调度和分配方案来执行计算任务106,从而生成结果。在一些示例中,在219处,经执行的任务的结果被返回到编排引擎104。结果可包括过程引擎110的数据和/或操作指令。在207处,编排引擎104可通过网络112将经执行的任务的结果发送到发起对应任务请求的相应过程引擎110。替代地或附加地,计算实例106可将经执行的任务的结果直接发送到发起对应任务请求的相应过程引擎。
现在参考图3,编排引擎104可包括一个或多个处理器311和存储器321,其中存储有用于实现本公开的实施例的应用程序、代理和计算机程序模块,包括数据模块322、编排器模块331和人工智能(AI)模块341。编排器模块331可包括优化模块332和求解器模块333。模块可指执行一个或多个功能的软件部件。每个模块可以是离散单元,或者可将多个模块的功能组合成形成大型程序的部分的一个或多个单元。在图3所描绘的示例中,数据模块322、AI模块323和编排器模块331被组织以形成用于编排计算任务的执行的程序。
数据模块322可分析在执行计算任务的编排中使用的数据。例如,数据模块322可分析任务108或任务请求以确定任务的要求和/或向任务分配优先级。数据模块322还可分析与任务或任务组相关联的警报指示,从而基于警报指示来调整任务优先级。给定调度和分配方案的生成可在数据模块322处被触发。尤其是,在一些情况下,在数据模块322处触发和迭代任务或容器编排。数据模块322可用作骨干以与不同分析部件(诸如Al模块323和编排器331)进行通信。数据模块322还可与编排引擎104外部的节点通信,诸如计算实例106或过程引擎110。例如,数据模块322可基于调度和分配方案将指令发送到计算实例106。数据模块还可从过程引擎110接收任务请求或向过程引擎发送任务结果。例如,在一些实施例中,数据模块322包括一个或多个应用程序编程接口(API),其允许分析部件访问和更新分析数据。在基于网络的架构中,可使用代表性状态转移(REST)设计来访问和操纵数据模块322处的分析数据。
AI模块323可监测编排引擎104所连接的网络。尤其是,AI模块可监测编排引擎104与相应过程引擎110之间的网络连接。AI模块323还可监测可用于执行计算任务的计算资源,例如计算实例106。通过监测,AI模块323可获得与任务的运行时间和/或网络延迟或对各种任务执行的影响有关的历史数据。AI模块323可使用历史数据来做出各种预测。例如,AI模块323可将统计和机器学习应用于数据以预测给定任务或任务组的运行时间。附加地或可替代地,AI模块323可将统计和机器学习应用于数据以预测给定任务或任务组的网络影响(即,延迟)。在一些情况下,例如,当预测运行时间大于预定阈值时,AI模块323可生成警报指示。AI模块323的预测或输出数据可被提供给编排器模块331和/或数据模块322。在示例中,将预测的运行时间和/或预测的网络影响提供给编排器模块331,使得它们可限定给优化的输入。在一些情况下,警报指示可被提供给数据模块322,使得可加快任务。
编排器模块331可从数据模块322和AI模块323接收各种数据或预测。尤其是,优化模块332可接收与任务优先级、任务要求、网络状态、可用计算资源、任务的预测运行时间和/或预测的网络影响相关联的数据。优化模块332可基于给编排器331的输入来生成优化问题。可包括一个或多个求解器的求解器模块333可接收优化问题作为输入,并且可解决给定优化问题以便生成调度和分配方案作为输出。调度和分配方案可由数据模块322获得,使得可根据调度和分配方案来执行任务。
图4示出了用于执行多个计算任务的示例性过程400的流程图。在402处,监测多个计算资源。例如,编排引擎104可监测具有各种计算资源的各种计算实例106。通过监测计算实例106,编排引擎202可获得与计算任务和/或计算实例106相关联的历史性能数据。在404处,监测一个或多个网络连接。例如,编排引擎404可监测编排引擎104与多个过程引擎110之间的网络连接。通过监测网络连接,编排引擎104可收集与网络关联的性能数据,和/或编排引擎104可识别与过程引擎110的网络连接相关联的任何问题或延迟。
继续参考图4,在406处,编排引擎104可接收一个或多个任务请求。任务请求可作为容器被接收,这些容器指示计算任务和用于执行计算任务的任务要求。可从与编排引擎相比位于远处的过程引擎或其他设备接收任务请求。举例来说,这些要求可指示需要完成相应任务的时间或持续时间。在408处,编排引擎可为任务或任务组中的每一个分配或确定优先级。较高优先级的任务可在较低优先级的任务之前执行。在410处,基于在402处执行的监测,编排引擎104可选择具有可用计算资源的计算实例。在412处,编排引擎104可根据本公开的实施例来预测与406处接收的任务相关联的运行时间。在412处的预测可基于可用的计算资源和任务优先级,并且进而基于根据其生成任务优先级的任务要求。预测还可基于从402处的监测获得的数据和/或从404处的监测获得的数据。
仍参考图4,根据所示的示例,在414处,编排引擎104确定预测的运行时间是否大于预定阈值。尤其是,例如,编排引擎104可确定预测任务或任务组的执行是否花费太多时间。如果确定任务或任务组的预测运行时间大于预定阈值,则过程可行进到416,其中加快具有太长的预测运行时间的任务,如本文所描述的。例如,可生成警报指示,并且编排引擎可识别用于执行任务的其他可用计算资源(以及关于利用其他可用计算资源的相关联权衡成本)以加快任务。作为其它示例,在416处,可增加任务的优先级以加快具有大于相应预定阈值的预测运行时间的任务。如果确定任务或任务组的预测运行时间小于预定阈值,则过程可行进到418,其中生成调度和分配方案。可基于来自412的预测运行时间以及可在406处接收到的任务要求来确定调度和分配方案。调度和分配方案还可以或者可替代地基于在408分配的优先级。更进一步,调度和分配方案可基于在410处选择的计算实例的可用计算资源和/或在404处获得的网络数据。调度和分配方案可限定何时执行计算任务或计算任务组中的每一个。调度和分配方案还可限定所选择的计算实例中的哪个执行多个计算任务中的每一个。在420处,根据所示出的示例,所选择的计算实例根据调度和分配方案来执行计算任务。
图5示出了可在其中实现本公开的实施例的计算环境的示例。计算环境500包括计算机系统510,该计算机系统可包括诸如系统总线521的通信机制或用于在计算机系统510内传送信息的其他通信机制。计算机系统510还包括与系统总线521耦接以用于处理信息的一个或多个处理器520。
处理器520可包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)或本领域中已知的任何其他处理器。更一般而言,本文的处理器是用于执行存储在计算机可读介质上的机器可读指令以执行任务的设备,并且可包括硬件和固件中的任一者或组合。处理器还可包括存储器,该存储器存储可执行以用于执行任务的机器可读指令。处理器通过操纵、分析、修改、转换或传输信息以供可执行规程或信息设备使用,和/或通过将信息路由到输出设备来对信息进行操作。例如,处理器可使用或包括计算机、控制器或微处理器的能力,并且可使用可执行指令来进行调节,以执行通用计算机没有执行的特殊功能。处理器可包括任何类型的合适处理单元,包括但不限于中央处理单元、微处理器、精简指令集计算机(RISC)微处理器、复杂指令集计算机(CISC)微处理器、微控制器、应用程序专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SoC)、数字信号处理器(DSP)等。另外,处理器520可具有任何合适的微架构设计,包括任何数量的组成部件,诸如寄存器、多路复用器、算术逻辑单元、用于控制对高速缓存存储器的读/写操作的高速缓存控制器、分支预测器等。处理器的微架构设计可以能够支持多种指令集中的任一者。处理器可与任何其他处理器耦接(电地和/或包括可执行部件),从而使得能够在它们之间进行交互和/或通信。用户接口处理器或生成器是包括用于生成显示图像或其部分的电子电路或软件或两者组合的已知元件。用户接口包括一个或多个显示图像,使得用户能够与处理器或其他设备进行交互。
系统总线521可包括系统总线、存储器总线、地址总线或消息总线中的至少一者,并且可允许在计算机系统510的各个部件之间交换信息(例如,数据(包括计算机可执行代码)、信令等)。系统总线521可包括但不限于存储器总线或存储器控制器、外围总线、加速图形端口等。系统总线521可与任何合适的总线架构相关联,包括但不限于,工业标准架构(ISA)、微通道架构(MCA)、增强型ISA(EISA)、视频电子标准协会(VESA)架构、加速图形端口(AGP)架构、外围部件互连(PCI)架构、PCI-Express架构、个人计算机存储卡国际协会(PCMCIA)架构、通用串行总线(USB)架构等。
继续参考图5,计算机系统510还可包括耦接到系统总线521以用于存储将由处理器520执行的信息和指令的系统存储器530。系统存储器530可包括以易失性和/或非易失性存储器形式的计算机可读存储介质,诸如只读存储器(ROM)531和/或随机存取存储器(RAM)532。RAM 532可包括其他动态存储设备(例如,动态RAM、静态RAM和同步DRAM)。ROM 531可包括其他静态存储设备(例如,可编程ROM、可擦除PROM和电可擦除PROM)。此外,系统存储器530可用于在处理器520执行指令期间存储临时变量或其他中间信息。可在ROM 531中存储基本输入/输出系统533(BIOS),该基本输入/输出系统包含帮助在计算机系统510内的元件之间(诸如在启动期间)转移信息的基本例程。RAM 532可包含可立即由处理器520访问和/或当前在处理器上操作的数据和/或程序模块。系统存储器530可附加地包括例如操作系统534、应用程序535和其他程序模块536。应用程序535还可包括用于开发应用程序的用户门户,从而允许根据需要输入并修改输入参数。
操作系统534可被加载到存储器530中,并且可提供在计算机系统510上执行的其他应用软件与计算机系统510的硬件资源之间的接口。更尤其是说,操作系统534可包括计算机可执行指令集,其用于管理计算机系统510的硬件资源,以及用于向其他应用程序提供公共服务(例如,管理各种应用程序之间的存储器分配)。在某些示例性实施例中,操作系统534可控制被描绘为存储在数据存储装置540中的一个或多个程序模块的执行。操作系统534可包括现在已知或将来可开发的任何操作系统,包括但不限于任何服务器操作系统、任何大型机操作系统、或任何其他专有或非专有操作系统。
计算机系统510还可包括耦接到系统总线521的磁盘/介质控制器543以控制用于存储信息和指令的一个或多个存储设备,诸如磁性硬盘541和/或可移除介质驱动器542(例如,软盘驱动器、光盘驱动器、磁带驱动器、闪存驱动器和/或固态驱动器)。可使用适当的设备接口(例如,小型计算机系统接口(SCSI)、集成设备电子器件(IDE)、通用串行总线(USB)或FireWire)将存储设备540添加到计算机系统510。存储设备541、542可在计算机系统510的外部。
计算机系统510还可包括耦接到系统总线521以控制现场设备566(诸如在生产线中使用的设备)的现场设备接口565。计算机系统510可包括用户输入接口或GUI 561,其可包括一个或多个输入设备,诸如键盘、触摸屏、平板电脑和/或指示设备,以用于与计算机用户交互以及将信息提供给处理器520。
计算机系统510可响应于处理器520执行存储器(诸如系统存储器530)中包含的一个或多个指令的一个或多个序列而执行本发明实施例的部分或全部处理步骤。此类指令可从存储装置540的另一个计算机可读介质(诸如磁性硬盘541或可移除介质驱动器542)读入系统存储器530中。磁性硬盘541和/或可移除介质驱动器542可包含由本公开的一个或多个实施例使用的数据存储装置和数据文件。数据存储装置540可包括但不限于数据库(例如,关系的、面向对象的等)、文件系统、平面文件、其中数据存储在计算机网络的一个以上节点上的分布式数据存储、对等网络数据存储等。数据存储装置可存储各种类型的数据,例如技能数据、传感器数据或根据本公开的实施例生成的任何其他数据。数据存储装置的内容和数据文件可被加密以提高安全性。还可在多处理装置中采用处理器520以执行系统存储器530中包含的一个或多个指令序列。在替代实施例中,可使用硬连线电路代替软件指令或与软件指令结合使用。因此,实施例不限于硬件电路和软件的任何具体组合。
如上所叙述的,计算机系统510可包括用于保存根据本发明的实施例编程的指令并用于包含本文的数据结构、表、记录或其他数据的至少一个计算机可读介质或存储器。如本文所使用,术语“计算机可读介质”是指参与向处理器520提供指令以供执行的任何介质。计算机可读介质可采用许多形式,包括但不限于非暂时性、非易失性介质,易失性介质和传输介质。非易失性介质的非限制性示例包括光盘、固态驱动器、磁盘和磁光盘,诸如磁性硬盘541或可移除介质驱动器542。易失性介质的非限制性示例包括动态存储器,诸如系统存储器530。传输介质的非限制性示例包括同轴电缆、铜线和光纤,包括构成系统总线521的线。传输介质也可采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的声波或光波。
用于执行本公开的操作的计算机可读介质指令可以是汇编程序指令、指令集-架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言的任意组合编写的源代码或目标代码,包括面向对象的编程语言(诸如Smalltalk、C++等)以及常规规程编程语言(诸如“C”编程语言或类似的编程语言)。计算机可读程序指令可完全在用户计算机上执行,部分在用户计算机上执行,作为独立软件包执行,部分在用户计算机上执行并且部分在远程计算机上执行,或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可建立与外部计算机的连接(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)、或可编程逻辑阵列(PLA)的电子电路可通过利用计算机可读程序指令的状态信息以个性化电子电路来执行计算机可读程序指令,以便执行本公开的各方面。
在此参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应理解的是,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可由计算机可读介质指令来实现。
计算环境500还可包括计算机系统510,该计算机系统使用与一个或多个远程计算机(诸如远程计算设备580)的逻辑连接在联网环境中操作。网络接口570可实现例如经由网络571与其他远程设备580或系统和/或存储设备541、542的通信。远程计算设备580可以是个人计算机(笔记本电脑或台式机)、移动设备、服务器、路由器、网络PC、对等设备或其他常见网络节点,并且通常包括上文相对于计算机系统510的许多或所有元件。当在联网环境中使用时,计算机系统510可包括用于通过诸如因特网的网络571建立通信的调制解调器572。调制解调器572可经由用户网络接口570或经由另一个适当机构连接到系统总线521。
网络571可以是本领域中通常已知的任何网络或系统,包括Internet、Intranet、局域网(LAN)、广域网(WAN)、城域网(MAN)、直接连接或一系列连接、蜂窝电话网络、或能够促进计算机系统510与其他计算机(例如,远程计算设备580)之间的通信的任何其他网络或介质。网络571可以是有线的、无线的或其组合。可使用以太网、通用串行总线(USB)、RJ-6或本领域通常已知的任何其他有线连接来实现有线连接。可使用Wi-Fi、WMAX和蓝牙、红外、蜂窝网络、卫星或本领域通常已知的任何其他无线连接方法来实现无线连接。另外,几个网络可单独工作或彼此通信以促进网络571中的通信。
应当理解,存储在系统存储器530中的图5中描绘的程序模块、应用程序、计算机可执行指令、代码等仅是说明性的而不是详尽的,并且被描述为由任何具体模块支持的处理可以替代地分布在多个模块上或由不同的模块执行。此外,在计算机系统510/远程设备580上本地托管和/或在可经由一个或多个网络571访问的其他计算设备上托管的各种程序模块、脚本、插件、应用程序接口(API)或任何其他合适的计算机可执行代码可被提供以支持由图5所示的程序模块、应用程序或计算机可执行代码提供的功能和/或附加或替代功能。另外,功能可被不同地模块化,使得被描述为由图5所示的程序模块集合共同支持的处理可由更少或更多数量的模块执行,或者被描述为由任何具体模块支持的功能可至少部分地由另一个模块支持。此外,可根据任何合适的计算模型(例如,客户端-服务器模型/对等模型等),支持本文描述的功能的程序模块可形成可在任何数量的系统或设备上执行的一个或多个应用程序的一部分。另外,被描述为由图5中描绘的任何程序模块支持的任何功能可至少部分地在任意数量的设备上以硬件和/或固件来实现。
应当进一步理解,在不脱离本公开的范围的情况下,计算机系统510可包括除了所描述或描绘的那些之外的替代和/或附加的硬件、软件或固件部件。更尤其是,应当理解,描绘为形成计算机系统510的一部分的软件、固件或硬件部件仅是说明性的,并且在各种实施例中可不存在某些部件或可提供附加部件。尽管已经将各种说明性程序模块描绘和描述为存储在系统存储器530中的软件模块,但应当理解,被描述为由程序模块支持的功能可通过硬件、软件和/或固件的任何组合来实现。还应当理解,在各种实施例中,上述模块中的每一个可表示所支持功能的逻辑分区。为了易于解释功能而描绘了该逻辑分区,并且该逻辑分区可能不表示用于实现功能的软件、硬件和/或固件的结构。因此,应当理解,在各种实施例中,被描述为由具体模块提供的功能可至少部分地由一个或多个其他模块提供。此外,在某些实施例中可能不存在一个或多个所描绘的模块,而在其他实施例中,未描绘的附加模块可存在并且可支持所描述的功能和/或附加功能的至少一部分。此外,尽管某些模块可被描绘和描述为另一个模块的子模块,但在某些实施例中,可将这些模块提供为独立模块或其他模块的子模块。
尽管已经描述了本公开的具体实施例,但本领域的普通技术人员将认识到,许多其他修改和替代实施例也在本公开的范围内。例如,相对于具体设备或部件描述的任何功能和/或处理能力可由任何其他设备或部件执行。此外,尽管已经根据本公开的实施例描述了各种说明性的实现方式和架构,但本领域的普通技术人员将意识到对本文描述的说明性实施方式和架构的许多其他修改也在本公开的范围内。另外,应当理解,本文中描述为基于另一个操作、元件、部件、数据等的任何操作、元件、部件、数据等可附加地基于一个或多个其他操作、元件、部件、数据等。因此,短语“基于”或其变体应解释为“至少部分基于”。
尽管已经以具体于结构特征和/或方法动作的语言描述了实施例,但应当理解,本公开内容不一定限于所描述的具体特征或动作。相反,具体特征和动作被公开为实现实施例的说明性形式。除非另外明确说明或在所使用的上下文中以其他方式理解,否则条件语言(诸如“可”、“可以”、“可能”或“也许”)通常旨在传达某些实施例可包括而其他实施例不包括某些特征、元件和/或步骤。因此,这种条件语言通常不旨在暗示特征、元件和/或步骤以任何方式对于一个或多个实施例是必需的,或者一个或多个实施例必须包括用于在有或没有用户输入或提示的情况下确定在任何具体实施例中是否包括或将要执行这些特征、元件和/或步骤的逻辑。
附图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。就此而言,流程图或框图中的每个框可表示指令的模块、片段或部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中指出的功能可不按图中指出的顺序发生。例如,取决于所涉及的功能,实际上可基本上同时执行连续示出的两个框,或者有时可以相反的顺序执行这些框。还应注意,框图和/或流程图说明的每个框以及框图和/或流程图说明中的框的组合可由执行指定功能或动作或执行特殊用途硬件和计算机指令的组合的基于硬件的专用系统来实现。
Claims (15)
1.一种用于执行多个计算任务的方法,所述方法包括:
由编排引擎通过网络从多个过程引擎接收任务请求,每个任务请求指示用于执行所述多个计算任务中的相应计算任务的至少一个任务要求;
从一组计算实例中选择多个计算实例,所选择的计算实例分别具有可用计算资源;
生成针对所述计算任务中的每一个的预测的运行时间;
基于所述预测的运行时间、所述任务要求和所述可用计算资源,确定调度和分配方案,所述调度和分配方案限定何时执行所述多个计算任务中的每一个,以及多个所述所选择的计算实例中的哪个执行所述多个计算任务中的每一个;以及
由所述多个所选择的计算实例根据所述调度和分配方案执行所述多个计算任务。
2.根据权利要求1所述的方法,所述方法还包括:
获得与所述计算任务或所述多个所选择的计算实例相关联的历史性能数据;以及
基于所述历史性能数据生成针对所述计算任务的所述预测的运行时间。
3.根据前述权利要求中任一项所述的方法,所述方法还包括:
收集与所述网络相关联的性能数据;以及
基于与所述网络相关联的性能数据生成针对所述计算任务的所述预测的运行时间。
4.根据前述权利要求中任一项所述的方法,其中生成所述调度和分配方案包括使用所述预测的运行时间、任务要求和可用计算资源作为离散随机优化的输入来执行所述离散随机优化。
5.根据权利要求4所述的方法,所述方法还包括:在接收到每个任务时执行所述离散随机优化。
6.根据权利要求1所述的方法,所述方法还包括:
将所述预测的运行时间与相应的预定阈值进行比较;
当预测的运行时间大于相应的预定阈值时,确定发起与大于相应预定阈值的所述预测的运行时间相关联的所述任务请求的所述过程引擎;以及
向所确定的过程引擎发送警报。
7.根据权利要求1所述的方法,所述方法还包括:
将所述预测的运行时间与相应的预定阈值进行比较;以及
当所述预测的运行时间中的至少一者大于预定阈值时,识别附加的计算资源。
8.根据权利要求1所述的方法,其中确定所述调度和分配方案还包括:
基于所述网络的任务要求和性能,生成用于完成所述任务请求的优先级顺序;
基于所述优先级顺序和所述可用计算资源,生成优化问题;以及
解决所述优化问题以便由于所述优化问题而生成所述调度和分配方案。
9.一种用于执行计算任务的系统,所述系统包括:
用于执行模块的过程;以及
用于存储所述模块的存储器,包括:
数据模块,被配置为通过网络从多个过程引擎接收任务请求,每个任务请求指示用于执行多个所述计算任务中的相应计算任务的至少一个任务要求;
人工智能模块,被配置为生成所述计算任务中的每一个的预测的运行时间;
编排器模块,被配置为从一组计算实例中选择多个计算实例,所选择的计算实例分别具有可用计算资源,其中
所述编排器模块被进一步配置为基于所述预测的运行时间、所述任务要求和所述可用计算资源确定调度和分配方案,所述调度和分配方案限定何时执行所述多个计算任务中的每一个,以及多个所述所选择的计算实例中的哪个执行所述多个计算任务中的每一个。
10.根据权利要求9所述的系统,所述系统还包括被配置为根据所述调度和分配方案执行所述多个计算任务的所述多个所选择的计算实例。
11.根据权利要求9所述的系统,其中所述人工智能模块被进一步配置为:
获得与所述计算任务或所述多个所选择的计算实例相关联的历史性能数据;以及
基于所述历史性能数据生成针对所述计算任务的所述预测的运行时间。
12.根据权利要求9所述的系统,其中所述人工智能模块被进一步配置为:
收集与所述网络相关联的性能数据;以及
基于与所述网络相关联的所述性能数据生成针对所述计算任务的所述预测的运行时间。
13.根据权利要求9所述的系统,其中所述编排器模块被进一步配置为使用所述预测的运行时间、所述任务要求和所述可用计算资源作为离散随机优化的输入来执行所述离散随机优化,以生成所述调度和分配方案。
14.根据权利要求9所述的系统,其中所述人工智能模块被进一步配置为:
将所述预测的运行时间与相应的预定阈值进行比较;
当预测的运行时间大于相应的预定阈值时,确定发起与大于相应的预定阈值的所述预测的运行时间相关联的所述任务请求的所述过程引擎;以及
向所确定的过程引擎发送警报。
15.根据权利要求9所述的系统,其中所述编排器模块被进一步配置为:
基于所述网络的任务要求和性能,生成用于完成所述任务请求的优先级顺序;
基于所述优先级顺序和所述可用计算资源,生成优化问题;以及
解决所述优化问题以便由于所述优化问题而生成所述调度和分配方案。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862740034P | 2018-10-02 | 2018-10-02 | |
US62/740,034 | 2018-10-02 | ||
PCT/US2019/049033 WO2020072155A1 (en) | 2018-10-02 | 2019-08-30 | Orchestration of containerized applications |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113168347A true CN113168347A (zh) | 2021-07-23 |
Family
ID=67982154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980079235.5A Pending CN113168347A (zh) | 2018-10-02 | 2019-08-30 | 容器化应用程序的编排 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11941451B2 (zh) |
EP (1) | EP3844618A1 (zh) |
CN (1) | CN113168347A (zh) |
WO (1) | WO2020072155A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114168294A (zh) * | 2021-12-10 | 2022-03-11 | 北京鲸鲮信息系统技术有限公司 | 编译资源分配方法、装置、电子设备及存储介质 |
WO2023242640A1 (en) * | 2022-06-15 | 2023-12-21 | International Business Machines Corporation | Automatically orchestrating a computerized workflow |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210101055A (ko) | 2020-02-07 | 2021-08-18 | 삼성전자주식회사 | 어플리케이션 실행 시 태스크 스케줄링을 위한 전자 장치, 그 동작 방법 및 저장 매체 |
US20210385136A1 (en) * | 2020-06-09 | 2021-12-09 | Sap Se | Personal digital operation assistant |
CN114327843A (zh) * | 2020-09-29 | 2022-04-12 | 华为技术有限公司 | 任务调度方法及装置 |
CN112416599B (zh) * | 2020-12-03 | 2023-03-24 | 腾讯科技(深圳)有限公司 | 一种资源调度方法、装置、设备及计算机可读存储介质 |
CN112650687B (zh) * | 2020-12-30 | 2024-03-19 | 绿盟科技集团股份有限公司 | 引擎调度动作执行优先级的测试方法、装置、设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8261277B2 (en) * | 2006-04-10 | 2012-09-04 | General Electric Company | System and method for dynamic allocation of resources in a computing grid |
US10552774B2 (en) * | 2013-02-11 | 2020-02-04 | Amazon Technologies, Inc. | Cost-minimizing task scheduler |
US10389800B2 (en) * | 2016-10-11 | 2019-08-20 | International Business Machines Corporation | Minimizing execution time of a compute workload based on adaptive complexity estimation |
-
2019
- 2019-08-30 US US17/278,954 patent/US11941451B2/en active Active
- 2019-08-30 CN CN201980079235.5A patent/CN113168347A/zh active Pending
- 2019-08-30 EP EP19769639.6A patent/EP3844618A1/en active Pending
- 2019-08-30 WO PCT/US2019/049033 patent/WO2020072155A1/en unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114168294A (zh) * | 2021-12-10 | 2022-03-11 | 北京鲸鲮信息系统技术有限公司 | 编译资源分配方法、装置、电子设备及存储介质 |
WO2023242640A1 (en) * | 2022-06-15 | 2023-12-21 | International Business Machines Corporation | Automatically orchestrating a computerized workflow |
Also Published As
Publication number | Publication date |
---|---|
US20220035670A1 (en) | 2022-02-03 |
EP3844618A1 (en) | 2021-07-07 |
WO2020072155A1 (en) | 2020-04-09 |
US11941451B2 (en) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11941451B2 (en) | Orchestration of containerized applications | |
Ali et al. | Batch: Machine learning inference serving on serverless platforms with adaptive batching | |
Bhattacharjee et al. | Barista: Efficient and scalable serverless serving system for deep learning prediction services | |
Wen et al. | Fog orchestration for internet of things services | |
EP3256915B1 (en) | Extending a programmable logic controller with apps | |
Fouquet et al. | A dynamic component model for cyber physical systems | |
US9367803B2 (en) | Predictive analytics for information technology systems | |
US11334398B2 (en) | Learning-based thermal estimation in multicore architecture | |
US11182216B2 (en) | Auto-scaling cloud-based computing clusters dynamically using multiple scaling decision makers | |
US20170286252A1 (en) | Workload Behavior Modeling and Prediction for Data Center Adaptation | |
US11972301B2 (en) | Allocating computing resources for deferrable virtual machines | |
US11568242B2 (en) | Optimization framework for real-time rendering of media using machine learning techniques | |
CN104750538B (zh) | 用于为目标应用提供虚拟存储池的方法和系统 | |
Wen et al. | Fog orchestration for IoT services: issues, challenges and directions | |
US20190188581A1 (en) | Switching from calendar-based to predictive maintenance: a leaner and faster software-based solution orchestrating data-driven forecasting models | |
Schmidt et al. | Elastic infrastructure to support computing clouds for large-scale cyber-physical systems | |
CN115269108A (zh) | 一种数据处理方法、装置及设备 | |
CN113316768A (zh) | 用于在物联网(IoT)环境中执行任务的系统、设备和方法 | |
Venkataswamy et al. | Rare: Renewable energy aware resource management in datacenters | |
Zhang et al. | PRMRAP: A proactive virtual resource management framework in cloud | |
US10834177B2 (en) | System and method for dynamic activation of real-time streaming data overflow paths | |
US10255565B2 (en) | Intelligent spatial enterprise analytics | |
CN115658287A (zh) | 一种用于调度运行单元的方法、设备、介质及程序产品 | |
CN114466014A (zh) | 一种服务调度方法、装置、电子设备及存储介质 | |
Burroughs | Towards predictive runtime modelling of kubernetes microservices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |