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

优化机器学习工作负荷的部署的制作方法

2023-02-10 18:26:05 来源:中国专利 TAG:


1.本发明一般涉及机器学习领域,具体涉及优化机器学习工作负荷在客户端设备和云环境之间的部署。


背景技术:

2.一般来说,云计算领域通过英特网提供对远程数据中心托管的计算资源的按需访问。云服务提供者(csp)提供多种模型,包括:软件即服务、基础设施即服务和平台即服务。


技术实现要素:

3.本发明的各种实施例提供了一种执行以下操作(不一定按以下顺序)的方法、系统和程序产品:(i)接收关于要为客户端设备处理的机器学习工作负荷的信息;(ii)至少部分地基于所述信息,确定工作负荷的机器学习模型和工作负荷的处理位置;以及(iii)生成在所确定的处理位置用所确定的机器学习模型处理工作负荷的请求。
附图说明
4.图1是示出根据本发明示例性实施例的计算环境的功能框图,其中系统优化机器学习模型的部署。
5.图2是示出根据本发明示例性实施例、在图1的环境中的计算设备上执行系统以确定最优工作负荷的操作过程的流程图。
6.图3是示出根据本发明示例性实施例、在图1环境中的计算设备上执行用于训练自主车辆机器学习模型的系统的操作处理器的流程图。
7.图4是根据本发明示例性实施例的描述与模型和预处理相关的参数的表。
8.图5示出了根据本发明示例性实施例、用于确定图1所示计算环境中机器学习模型所利用的某些变量的方程。
9.图6是示出根据本发明的示例性实施例、与确定用哪个机器学习模型来处理工作负荷相关的值的表。
10.图7示出根据本发明至少一个实施例的云计算环境。
11.图8示出根据本发明至少一个实施例的抽象模型层。
12.图9示出根据本发明示例性实施例、在图1所示的计算环境中的一个或多个计算设备的组件的框图。
具体实施方式
13.在此参考附图公开本发明的详细实施例。应当理解,所公开的实施例仅仅是对本发明的潜在实施例的说明,并且可以采取各种形式。此外,结合各种实施例给出的每个示例旨在是说明性的而非限制性的。此外,附图不一定是按比例缩放的,一些特征可能会被夸大以显示特定组件的细节。因此,本文公开的特定结构和功能细节不应被解释为限制性的,而
仅仅是作为教导本领域技术人员以各种方式使用本发明的代表性基础。
14.说明书中对“一个实施例”、“实施例”、“示例实施例”等的提及,表明所描述的实施例可以包括特定的特征、结构或特性,但不一定每个实施例都包括该特定的特征、结构或特性。此外,这些短语不一定指同一实施例。此外,当结合某实施例描述特定的特征、结构或特性时,应认为,无论是否明确描述,结合其他实施例影响实现该特征、结构或特性也在本领域技术人员的知识范围内。
15.本发明的各种实施例跨云服务器(即服务器端)与诸如自主车辆(autonomous vehicles)的一个或多个客户端设备(例如客户端)优化工作负荷(例如数据处理)的部署。在各种情况下,例如当车辆操作需要快速处理结果时,在客户端部署最优工作负荷。在其他情况下,例如当处理是资源密集型的,但对时间不敏感时,或者当处理可以使多个车辆受益时,在服务器端部署最优工作负荷。
16.本发明的各种实施例提供了跨服务器端和客户端环境优化工作负荷部署的方法。一般来说,工作负荷是指为执行车辆操作(例如,对象检测、机器视觉、加速等)而通常由机器学习模型处理的数据。在各种实施例中,优化工作负荷的部署包括利用经过训练的神经网络来确定是在服务器端、客户端还是在服务器端和客户端的组合上部署工作负荷。此外,还根据部署参数来优化用于工作负荷处理的神经网络的大小和类型。例如,在各种实施例中,如果有限数量的自主车辆在道路上行驶,可以在服务器端部署工作负荷;或者,如果有更多的自主车辆在道路上行驶,则可以在客户端部署工作负荷,以防止数据处理出现瓶颈。
17.现在将参考附图详细描述本发明。
18.图1是示出根据本发明实施例的计算环境(总体指定为100)的功能框图。计算环境100包括计算机系统120和客户端设备130。计算机系统120包括部署优化程序122、计算机接口124、服务器工作负荷程序126和数据库128。客户端设备130包括客户端程序132、客户端接口134、客户端工作负荷程序136和传感器138。
19.计算机系统120可以包括一个或多个计算设备、服务器、服务器集群、web服务器、数据库和存储设备。计算机系统120操作以通过网络(诸如网络110)与客户端设备130和其他各种客户端设备(未示出)进行通信。例如,计算机系统120与客户端程序132通信以在数据库128和连接到网络110的各种其他数据库(未示出)之间传输数据。通常,计算机系统120可以是以通信方式连接到由各种计算设备(包括但不限于客户端设备130)组成的网络、以提供本文所述的功能的任何计算设备或设备的组合。计算机系统120可以包括如关于图9所述的内部和外部硬件组件。本发明的各种实施例认识到,图1中示出的系统可以包括任意数量的计算设备、服务器、数据库和/或存储设备,并且本发明不仅仅限于图1中示出的内容。因此,在一些实施例中,计算机系统120的一些或所有特征和功能被包括为客户端设备130和/或另一计算设备的一部分。类似地,在一些实施例中,客户端设备130的一些特征和功能被包括为计算机系统120和/或另一计算设备的一部分。
20.此外,在一些实施例中,计算机系统120表示云计算平台。云计算是一种模型或服务交付,用于实现对可配置计算资源(例如网络、网络带宽、服务器、处理、内存、存储、应用程序、虚拟机和服务)的共享池的便捷、按需网络访问,这些资源可以通过最小的管理工作或与服务提供者的交互快速地调配和释放。云模型可包括按需自助服务、广泛的网络访问、资源池化、快速弹性和可测量的服务等特征,可以由包括平台即服务(paas)模型、基础设施
即服务(iaas)模型和软件即服务(saas)模型的服务模型表示;并且可以实现为各种部署模型,包括私有云、社区云、公共云和混合云。
21.在各种实施例中,计算机系统120代表自主车辆网络服务器。在图1所示的实施例中,部署优化程序122、计算机接口124和服务器工作负荷程序126分别存储在计算机系统120上并由计算机系统120执行。在其他实施例中,数据库128可以存储和/或执行不同数量的应用程序,而不脱离本发明的范围。通常,如本文所述,在计算机系统120上执行的部署优化程序122从服务器工作负荷程序126和客户端工作负荷程序136接收各自的部署参数和优化目标数据。此外,部署优化程序122用于经由网络110向客户端设备130和各种其他计算设备(未示出)通知在计算机系统120内可能发生的工作负荷的条件和/或相应分配。在一个示例中,部署优化程序122采用机器学习应用程序的形式,该机器学习应用程序利用计算机系统120的元件来分析从服务器工作负荷程序126和客户端工作负荷程序136传输的涉及客户端和服务器端之间的数据处理工作负荷的部署的部署参数和优化目标数据。该示例将在本文中对各种实施例的讨论中被引用,以说明本发明的各个方面,但本发明不应被解释为限于这些实施例。在一些实施例中,在计算机系统120上执行的iot应用还可以包括如本文所述的分析逻辑,用以分析来自一个或多个客户端设备(例如客户端设备130)的数据,以促进部署工作负荷配置的设备配置规则的优化。
22.为便于说明,图1中示出了计算机系统120。然而,应当理解,在各种实施例中,计算机系统120可以包括按照部署优化程序122的功能管理的任意数量的数据库。通常,数据库128代表数据,计算机接口124管理查看数据的能力。在其他实施例中,部署优化程序122代表提供针对另一物理或虚拟资源采取特定操作的能力的代码,部署优化程序122管理使用和修改数据的能力。客户端程序132还可以代表上述特征的任意组合,其中部署优化程序122可以访问存储在数据库128上的数据。为了说明本发明的各个方面,给出了部署优化程序122的示例,其中部署优化程序122代表用以优化数据处理的工作负荷的部署的本地iot网络和机器学习模型中的一个或多个。
23.在该示例性实施例中,部署优化程序122、计算机接口124和服务器工作负荷程序126存储在计算机系统120上。然而,在其他实施例中,部署优化程序122、计算机接口124和服务器工作负荷程序126可以存储在外部并通过通信网络(例如网络110)访问。网络110可以是例如局域网(lan)、诸如因特网的广域网(wan)或两者的组合,并且可以包括有线、无线或本领域已知的任何其他连接。通常,根据本发明的期望实施例,网络110可以是将来支持计算机系统120和客户端设备130之间的通信的连接和协议的任意组合。
24.为便于说明,图1中示出了部署优化程序122。在本发明的各种实施例中,部署优化程序122代表在计算机系统120上执行的逻辑操作,其中计算机接口124管理在计算机系统120上查看这些逻辑操作及其结果的能力。计算机系统120可以包括按照部署优化程序122管理和执行的任意数量的逻辑操作。在一些实施例中,部署优化程序122代表分析输入和输出(i/o)数据的管理员。此外,部署优化程序122在执行自主车辆的工作负荷数据处理配置时,用于监控已分析的输入/输出数据,并确定要部署在以下一个或多个上的相应工作负荷:(i)服务器工作负荷程序126,(ii)客户端工作负荷程序136,或(iii)服务器工作负荷程序126和客户端工作负荷程序136的组合。在一些实施例中,部署优化程序122确定是否可能发生特定动作,并生成工作负荷优化请求,并向客户端设备130发送指示客户端设备130需
要修改或重新配置工作负荷数据处理的通知。
25.计算机系统120包括计算机接口124。计算机接口124提供计算机系统120和客户端设备130之间的接口。在一些实施例中,计算机接口124可以是图形用户界面(gui)、web用户界面(wui)或图像投影仪,并且可以显示文本、文档、web浏览器、窗口、用户选项、应用界面、操作说明、图像和全息显示,并包括程序呈现给用户的信息(诸如图形、文本和声音)以及用户用来控制程序的控制序列。在一些实施例中,计算机系统120经由在计算机系统120上运行的基于客户端的应用程序访问从客户端设备130传送的数据。例如,计算机系统120可以包括在计算机系统120和客户端设备130之间提供接口的移动应用软件。
26.在本发明的各种实施例中,客户端设备130代表能够执行机器可读程序指令并与计算机系统120通信的自主车辆。在各种实施例中,计算环境100包括未示出的其他各种客户端设备(例如各种其他自主车辆)。在另一实施例中,客户端设备130和各种其他客户端设备代表利用集群计算机和组件作为单一的无缝资源池来访问计算机系统120和网络110的计算系统。客户端设备130可以包括如关于图9进一步详细示出和描述的内部和外部硬件组件。
27.为便于说明,图1中示出传感器138。在本发明的各种实施例中,传感器138代表在客户端设备130上执行的各种计算设备,其中传感器138分别向部署优化程序122和客户端程序132传送数据。在各种实施例中,传感器138代表监测和确定在客户端设备130上执行的电气组件的数据处理的计算设备。此外,在各种实施例中,传感器138确定各种其他客户端设备(例如,自主车辆)的位置,以确定自主车辆集合组(即客户端设备130和各种其他客户端设备)的数据处理速度。在各种实施例中,传感器138确定各自的自主车辆的数据处理速度并生成传送给部署优化程序122的数据,其中,部署优化程序122确定各自的工作负荷,生成工作负荷优化请求,并将工作负荷优化请求传送给客户端设备130。
28.本发明的各种实施例认识到,在某些情况下,可能需要和/或期望对工作负荷进行预处理。预处理一般包括针对机器学习模式(如神经网络)收集数据。预处理操作的一些示例包括但不限于:(i)数据清理、(ii)实例选择、(iii)规范化、(iv)转换、(v)特征提取和(vi)选择。一般来说,在运行分析和/或训练神经网络之前,数据质量是一个优先事项。本发明的各种实施例提供了数据预处理移除不相关、冗余信息或噪声和不可靠数据,以允许在神经网络的训练阶段更有效地进行知识发现。
29.在各种实施例中,部署优化程序122包括卷积神经网络(cnn),其中cnn包括输入/输出数据以及多个隐藏神经元层(例如relu层)。在各种实施例中,cnn接收包括但不限于(i)部署参数和(ii)优化目标数据的输入,其中,所述输入被安排在cnn第一层的神经元中。在各种实施例中,第一层的输出穿过一个或多个隐藏层,其中第一层的输出数据被安排到第二层的输入中,以此类推,以创建完全连接的神经网络。部署优化程序122分析(i)多层感知神经网络(mlp)的输出数据和(ii)权重输出的变化。本发明的各种实施例认识到,输出数据表示工作负荷的最优部署。在各种实施例中,部署优化程序122从cnn接收工作负荷的最优部署作为输出,其中工作负荷的最优部署可以代表,例如如果在道路上行驶的自主车辆数量有限,则在服务器端部署工作负荷。或者,工作负荷的最优部署可以代表,如果在道路上行驶的自主车辆数大于阈值,则在客户端部署工作负荷,以防止数据处理的瓶颈。
30.本发明的各种实施例提供了作为神经网络执行的部署优化程序122,用以确定进
行数据处理的工作负荷的最优部署。在各种实施例中,部署优化程序122确定用于跨一个或多个自主车辆(即客户端设备130)进行数据处理的工作负荷的最优部署。在各种实施例中,部署优化程序122确定用于跨云服务器(即计算机系统120)进行数据处理的工作负荷的最优部署。在各种实施例中,作为神经网络执行的部署优化程序122接收作为输入的:(i)部署参数,包括在客户端执行的预处理、在服务器端执行的预处理、客户端的工作负荷和服务器端的工作负荷,以及(ii)优化目标数据,包括但不限于时间、数据处理速度、内存和准确性。在各种实施例中,客户端的预处理和服务器端的预处理代表进行过滤,以从待要发送到神经网络的数据中去除不相关的和冗余的信息和/或噪声和不可靠数据。在各种实施例中,要在客户端和/或服务器端执行的工作负荷代表用一组程序指令执行自主车辆操作的数据处理。此外,在各种实施例中,部署优化程序122确定如果在道路上行驶的自主车辆数量有限,是否在服务器工作负荷程序126上部署工作负荷,以及如果在道路上行驶的自主车辆大于阈值,是否在客户端工作负荷程序136上部署工作负荷,以防止数据处理的瓶颈。
31.本发明的各种实施例认识到,作为神经网络执行的部署优化程序122可以利用各种部署参数和优化目标数据来预测工作负荷的最优部署。本发明的各种实施例进一步认识到,由于计算机系统120和客户端设备130之间的网络连接,数据传输的延迟和带宽是神经网络(即部署优化程序122)在预测工作负荷的最优部署时要考虑的部署参数。在各种实施例中,如果要处理的图像或数据的数量大(例如大于阈值)和/或道路上的自主车辆数量大(例如大于阈值),则在客户端工作负荷程序136上部署工作负荷将是最优的。在各种实施例中,如果要处理的图像或数据低于阈值和/或道路上的自主车辆数量有限,则在服务器工作负荷程序126上部署工作负荷将是最优的。
32.本发明的各种实施例提供了一种神经网络,用于预测要跨自主车辆(即客户端设备130)和云网络(即计算机系统120)部署的数据处理的各自工作负荷。本发明的各种实施例进一步提供了部署工作负荷,以在部署参数的边界和约束内实现高精度和低响应时间,部署参数例如包括(i)可用硬件,(ii)可用功率,(iii)可用带宽和延迟,(iv)可用内存,以及(v)可用存储(storage)。在各种实施例中,部署优化程序122基于优化目标来预测最优的端到端解决方案。在各种实施例中,部署优化程序122至少部分地基于生态系统(例如计算网络)的状态来确定用于处理工作负荷的模型,其中最优工作负荷是跨(例如服务器端或客户端上的)硬件和/或软件堆(stack)确定的。此外,在各种实施例中,以不同的方式—诸如在没有机器学习模式/神经网络的情况下—使用优化目标。例如,在各种实施例中,不是将部署参数和优化目标用于训练机器学习模型/神经网络,而是将部署参数和优化目标作为变量进行初始化,部署优化程序122利用整数线性规划模型来计算产生实现期望的性能和精度的工作负荷的优化部署的优化函数。在其他实施例中,也可以使用天真最大化函数(maximization function)。在这些实施例中,可以计算工作负荷部署的各种组合,并可使用导致最大输出的工作负荷部署。
33.图2是示出根据本发明示例性实施例的用于确定计算环境100内的最优工作负荷的操作的流程图。更具体地,图2示出部署优化程序122的组合总体操作200。在一些实施例中,操作200代表部署优化程序122的逻辑操作,其中部署优化程序122代表与计算机系统120通信的逻辑计算设备与连接到网络110的各种其他计算设备之间的交互。应当理解,图2提供了一种实现的例示,并不意味着对其中可以实现不同实施例的环境的任何限制。可以
对所示环境进行许多修改。在一个实施例中,流程图200中的一系列操作可以在任何操作处终止。除了前面提到的特征之外,流程图200的任何操作都可以随时恢复。
34.在操作202中,部署优化程序122接收部署参数和优化目标数据。在各种实施例中,部署优化程序122包括在计算机系统120(即云计算网络)上执行的神经网络。在各种实施例中,部署优化程序122识别要为数据处理部署的工作负荷的部署参数(即部署变量)。在各种实施例中,参数y表示在何处部署工作负荷(例如,在客户端、服务器端或客户端和服务器端的组合上)。此外,在各种实施例中,y代表一个二元变量(binary variable),如果在云网络(即,计算机系统120)上进行推断,其值为真(true);如果在客户端设备(即,客户端设备130)上进行推断,则其值为假(false)。在各种实施例中,在客户端设备130上处理工作负荷允许消除计算机系统120和客户端设备130之间的传输延迟。本发明的各种实施例认识到,在客户端设备130上处理工作负荷,需要客户端设备130上额外的电池和内存消耗,而与云网络(即计算机系统120)相比,客户端设备130的操作所赖的可用电池和内存有限。在各种实施例中,z代表一个二元变量,如果在云网络(即计算机系统120)上执行数据(例如用于对象检测的图像)的预处理,则其值为真。在各种实施例中,m代表与较低精度相关的轻量化模型(light model),然而,m对内存使用、电池使用和推断时间的要求较低。在各种实施例中,s代表数据的大小,其中具有较大的数据文件对应于较高的精度,因为数据文件越大,承载的信息越多;然而,s对推断时间和内存有更高的要求。在各种实施例中,部署优化程序122标识如上所述的变量的值,并进一步标识部署参数,部署参数包括但不限于(i)在客户端设备130上处理工作负荷和对其余工作负荷进行预处理所需的资源,以及(ii)在计算机系统120(即云网络)上处理工作负荷和对其余工作负荷进行预处理所需的资源。在各种实施例中,各种参数和变量的定义在下面将进一步详细讨论的图4中示出。在各种实施例中,部署优化程序122接收优化目标数据,优化目标数据包括但不限于(i)内存容量,(ii)数据处理速度,(iii)电池电量,以及(iv)要执行的车辆操作(例如,对象检测、加速等)。
35.本发明的各种实施例规定,在一些情况下,为了估计图4所示的部署参数,工作负荷在每个客户端设备(即客户端设备130)上执行,客户端程序132监测从执行的工作负荷获得的数据,并将性能和所用的资源传送给部署优化程序122。在各种实施例中,部署参数的这种估计是高度准确的,然而,这种估计需要对工作负荷执行一次或多次,并需要测试每个单独的客户端设备一次或多次。或者,本发明的各种实施例规定,如果不是每个单独的客户端设备都可用来自标准化数据集的工作负荷报告结果进行一次或多次测试,那么部署优化程序122用客户端设备的每秒浮点操作(flops)、带宽和功率来缩放(scale)数据集的参数并重新测试客户端设备。然而,缩放参数会导致潜在的不准确模型,这是因为,模型的性能很少关于客户端设备的数据线性地缩放。本发明的各种实施例监视在每个客户端设备上执行的工作负荷,并向部署优化程序122确定所利用的资源的性能。
36.在操作204中,部署优化程序122确定一个或多个优化目标。在本发明的各种实施例中,该一个或多个优化目标(例如,客户端和服务器端上的工作负荷执行时间、客户端和服务器端上的可用能源预算、客户端和服务器端的总内存、客户端和服务器端的硬件资源、以及工作负荷的所需精度,也称为时间、功率、内存和精度)代表所要确定的值(例如优化目标数据)。在各种实施例中,部署优化程序122确定优化目标,其包括:(i)最小化总预测t,(ii)最小化从客户端设备130提取的总功率p,(iii)确保设备上的总内存使用量mem不超过
最大空闲设备内存mem
max
,和(iv)最大化模型精度acc。本发明的各种实施例提供由部署优化程序122用来求解上述优化目标的方程的一些示例,在图5中示出,其将在紧接着的后续段落中讨论,并在下文进一步详细讨论。
37.本发明的各种实施例规定,部署优化程序122确定优化目标的值。方程500a(见图5)代表在计算机系统120和客户端设备130之间要处理的数据的传输时间的总和。在各种实施例中,部署优化程序122如方程500a所示地确定总时间t的值。本发明的各种实施例认识到,将预测时间减少到阈值t
max
以外,并不对工作负荷处理的优化产生任何有益的价值。在一个示例实施例中,数据集代表来自照相机的流视频,其中让处理速度快于流视频的帧速率并没有任何好处;因此,将该约束标识为:t≤t
max
。方程500b(见图5)代表在计算机系统120和客户端设备130之间要处理的数据所消耗的功率的总和。在各种实施例中,部署优化程序122如方程500b所示地确定总功率p的值。本发明的各种实施例规定,与通过执行神经网络模型使用图形处理单元(gpu)和中央处理单元(cpu)所消耗的功率相比,内存优化目标所消耗的功率可以忽略不计。此外,将内存优化目标的约束表示为:mem≤mem
max
。方程500c(见图5)代表在计算机系统120和客户端设备130之间要处理的数据的内存的总和。
38.在各种实施例中,部署优化程序122如方程500d(见图5)所示地确定上述指定优化目标的总体优化目标的精度。本发明的各种实施例规定,用于确定总体优化目标的精度函数是非线性函数。本发明的各种实施例进一步提出,当呈现与呈现的较高精度相比较低的精度时,为提高整体优化目标的精度而应用的权重应当更大。在一个示例实施例中,将总体优化目标的精度从80%提高到90%应该比将精度从30%提高到40%得到更小的权重。
39.在各种实施例中,部署优化程序122通过求解方程500e(见图5)来确定优化函数,其中,将在方程500a、500b、500c和500d(以下简称方程500a-500d)中对优化目标的确定,用于方程500e的表述中。本发明的各种实施例规定,用于计算f(acc)的α,指定精度-功率抵换系数(tradeoff)。本发明的各种实施例进一步规定,α的值根据使用中的特定工作负荷(例如(i)客户端、(ii)服务器端、或(iii)客户端和服务器端的组合)的精度要求而变化。
40.在操作206中,部署优化程序122用神经网络基于部署参数和优化目标数据来确定最优工作负荷。在各种实施例中,部署优化程序122利用与要执行的工作负荷相关的部署参数和优化目标数据,并将该数据放入机器学习模型第一层的神经元中,其中部署优化程序122作为机器学习模型执行,将神经元通过多个隐藏层传递到机器学习模型的输出层。在各种实施例中,部署优化程序122至少部分地基于部署参数和从方程500a-500e计算的优化目标数据,生成处理数据的工作负荷的最优部署。在各种实施例中,部署优化程序122预测处理数据的工作负荷的最优部署应该在客户端(例如客户端工作负荷程序136)。在各种实施例中,部署优化程序122预测处理数据的工作负荷的最优部署应该在服务器端(例如服务器工作负荷程序126)。在各种实施例中,部署优化程序122预测处理数据的工作负荷的最优部署应部署在服务器端和客户端的组合上,下面将进一步详细讨论其示例。
41.在操作208中,部署优化程序122生成工作负荷优化请求。在各种实施例中,部署优化程序122至少部分地基于对处理数据的工作负荷的最优部署的预测来生成工作负荷优化请求。在各种实施例中,部署优化程序122至少部分基于要部署在客户端的工作负荷的优化部署来生成工作负荷优化请求。在各种实施例中,部署优化程序122生成程序指令,指示客户端工作负荷程序136部署与操作功能相关的处理数据的最优工作负荷,操作功能诸如:
(i)图像处理、(ii)各种其他车辆(例如自主车辆和/或非自主车辆)的雷达定位、(iii)激光雷达传感器测量光脉冲距离、(iv)道路和车道边界的空间检测、(v)运动和物体检测传感器辅助自动驻车、以及(vi)导航操作,包括但不限于使用指南针和地理地图的操作。在各种实施例中,部署优化程序122向客户端工作负荷程序136传送工作负荷优化请求与程序指令,该程序指令指示客户端工作负荷程序136部署用于数据处理的工作负荷,并执行操作以完成所需的数据处理。
42.在各种实施例中,部署优化程序122至少部分基于要部署在服务器端的工作负荷的优化部署来生成工作负荷优化请求。在各种实施例中,部署优化程序122将一组程序指令传送给服务器工作负荷程序126,以在计算机系统120上部署与包括以下的操作功能有关的数据处理工作负荷:(i)图像处理、(ii)各种其他车辆(例如自主车辆和/或非自主车辆)的雷达定位、(iii)激光雷达传感器测量光脉冲距离、(iv)道路和车道边界的空间检测、(v)运动和物体检测传感器辅助自动驻车、以及(vi)导航操作,包括但不限于使用指南针和地理地图的操作。在各种实施例中,部署优化程序122将程序指令传送给客户端程序132,指示客户端程序132服务器工作负荷程序126将执行数据工作负荷,并将所需数据传送给客户端程序132,以执行操作客户端设备130(即自主车辆)的功能。此外,在各种实施例中,部署优化程序122将一组程序指令传送给客户端程序132,指示客户端程序132传送与客户端设备130的操作功能相关的所有数据。
43.在各种实施例中,部署优化程序122至少部分基于要部署在服务器端和客户端的组合上的工作负荷的优化部署来生成工作负荷优化请求。在各种实施例中,部署优化程序122执行程序指令,以在计算机系统120和客户端程序132上部署与操作功能相关的数据处理工作负荷。在各种实施例中,部署优化程序122进一步确定,在与操作功能相关联的工作负荷在服务器端和客户端的组合之间被委派的情况下,工作负荷具有更有效执行的更高合理性。在一个示例实施例中,部署优化程序122确定在服务器端部署工作负荷更有效,并将一组程序指令传送给服务器工作负荷程序126,以执行程序指令来部署工作负荷,这些工作负荷包括但不限于:(i)确定各种其他车辆(例如自主车辆和/或非自主车辆)的雷达位置、(ii)导航操作、以及(iii)图像处理。此外,在该示例实施例中,部署优化程序122确定在客户端设备上部署工作负荷更有效,并将一组程序指令传送给客户端工作负荷程序136,以执行程序指令来部署工作负荷,该工作负荷包括但不限于:(i)激光雷达传感器测量光脉冲距离,(ii)检测道路和车道边界,以及(iii)传感器辅助自动驻车。在各种实施例中,部署优化程序122标识将要部署在服务器端(即服务器工作负荷程序126)的操作功能的数据处理的工作负荷的第一子集和将要部署在客户端(即客户端工作负荷程序136)的操作功能的数据处理的工作负荷的第二子集。在各种实施例中,服务器工作负荷程序126执行操作功能的第一子集的数据处理的工作负荷,并将数据与程序指令一起传送给客户端程序132,以在客户端设备130(即自主车辆)上执行与第一子集相关的操作功能。在各种实施例中,部署优化程序122将程序指令传送给客户端程序132,指示客户端工作负荷程序136部署操作功能的第二子集的数据处理的工作负荷。此外,在各种实施例中,部署优化程序122将程序指令传送给客户端工作负荷程序136,指示客户端工作负荷程序136执行客户端设备130的操作功能的第二子集。
44.图3示出根据本发明的说明性实施例的流程图300,其示出计算环境100中的部署
优化程序122的操作。更具体地,图3示出在计算机系统120上执行的部署优化程序122的组合总体操作300。在一些实施例中,操作300代表部署优化程序122的逻辑操作,其中部署优化程序122、客户端程序132和传感器138之间的交互代表在计算机系统120上执行的逻辑单元。应当理解,图3提供了一种实现的图示,但并不意味着对可以实现不同实施例的环境有任何限制。可以对所示环境进行许多修改。在一个实施例中,可以同时执行流程图300中的一系列操作。此外,流程图300中的一系列操作可以在任何操作处终止。除了前面提到的特征之外,流程图300的任何操作都可以随时恢复。
45.在操作302中,部署优化程序122接收训练部署参数和训练优化目标数据。在各种实施例中,部署优化程序122接收作为训练数据的:(i)部署参数,包括客户端的预处理、服务器端的预处理、客户端的工作负荷和服务器端的工作负荷,以及(ii)优化目标数据,包括客户端和服务器端的工作负荷执行时间,客户端和服务器端的可用能源预算、客户端和服务器端的总内存、客户端和服务器端的硬件资源以及所需的工作负荷精度。本发明的各种实施例规定,训练数据中可以存在部署参数和优化目标数据的任何组合,以包括部署参数和优化目标数据之间可能发生的广泛变体,用于预测要部署的数据处理的最优工作负荷。
46.在操作304中,部署优化程序122训练神经网络。在各种实施例中,训练数据至少部分基于(i)部署参数、(ii)优化目标数据和(iii)与部署参数和优化目标数据相关联的优化部署工作负荷(基于用户输入/标记或单独的优化函数)。本发明的各种实施例规定,需要训练数据来训练神经网络为后续预测学习和预测最优工作负荷。在一个示例实施例中,部署优化程序122接收优化目标数据的值,优化目标数据包括但不限于:(i)客户端和服务器端的工作负荷执行时间,其中预测时间值小于或等于预测时间的阈值最大值,(ii)客户端和服务器端硬件资源的电源能力,(iii)客户端和服务器端的总内存,其中总内存值等于或小于gpu和cpu的最大容量,以及工作负荷所需精度的百分比值;部署优化程序122接收部署参数,其包括但不限于:(i)部署在客户端的工作负荷(例如,p
e,m
,t
e,m
,r
e,m
,y=0),(ii)部署在服务器端的工作负荷(例如,p
c,m
,t
c,m
,r
c,m
,y=1),(iii)客户端上的预处理数据(例如p
e,pr
,t
e,pr
,r
e,pr
,z=0),和(iv)服务器端上的预处理数据(例如,p
c,pr
,t
c,pr
,r
c,pr
,z=1)。在该示例实施例中,部署优化程序122利用上述部署参数和优化目标来确定要部署在客户端或服务器端的最优工作负荷。
47.在第一示例实施例中,用包括部署参数、优化目标数据和为完成三个子任务(例如车辆操作)而要部署的最优工作负荷的输入,来训练部署优化程序122。工作负荷要完成的车辆操作包括对象检测、对象识别和导航操作。优化目标数据包括但不限于时间和内存。工作负荷执行时间的最大阈值为三(3)秒,客户端可以执行一(1)秒的执行时间,服务器端可以执行半(0.5)秒的执行时间,服务器端和客户端之间的总传输时间为一(1)秒。总内存不能超过在客户端和服务器端运行的gpu和cpu的最大容量。客户端的总空闲内存等于或小于1.15mb,服务器端的总空闲内存等于或小于2.9tb。部署参数包括:(i)部署在客户端的工作负荷(例如,p
e,m
,t
e,m
,r
e,m
,y=0),(ii)部署在服务器端的工作负荷(例如,p
c,m
,t
c,m
,r
c,m
,y=1),(iii)客户端上的预处理数据(例如,p
e,pr
,t
e,pr
,r
e,pr
,z=0),以及(iv)服务器端上的预处理数据(例如,p
c,pr
,t
c,pr
,r
c,pr
,z=1)。为完成三个车辆操作而要部署的最优工作负荷包括:(i)因为为检测对象而向服务器端传送数据以及将数据传送回客户端以执行车辆操作的传输时间太长,在客户端部署对象检测车辆操作工作负荷;(ii)因为在客户端完成对象
识别车辆操作和对象检测车辆操作所需的总空闲内存超过客户端上的1.15mb的空闲内存,在服务器端部署对象识别车辆工作负荷;以及(iii)因为完成导航车辆操作所需的总空闲内存超过客户端的总空闲内存(例如1.15mb),在服务器端部署导航车辆操作工作负荷。在该示例实施例中,部署优化程序122确定客户端或服务器端上每个相应车辆操作(例如,对象检测、对象识别和导航操作)的相应最优部署。在该示例实施例中,部署优化程序122确定,完成对象检测的最优部署是在客户端部署工作负荷;部署优化程序122确定,完成对象识别的最优工作负荷是在服务器端部署工作负荷;部署优化程序122确定,完成导航操作的最优工作负荷是在服务器端部署工作负荷。本发明的各种实施例规定可以将包括上述时间、功率、内存和精度的优化目标数据的值的任何组合以及部署参数的任何组合作为输入提供给神经网络(例如部署优化程序122),以确定工作负荷(例如数据处理)的最优部署,以在服务器端、客户端或服务器端和客户端的组合上完成车辆操作。
48.在至少第二示例实施例中,部署优化程序122是经过训练的神经网络。在该第二示例实施例中,部署优化程序122确定要为三个车辆操作(例如,对象检测、对象识别和导航操作)部署的最优工作负荷。在第一时间(例如,t=0),部署优化程序122接收包括部署参数和优化目标数据的输入。在t=0时,部署优化程序122接收包括以下的部署参数:(i)部署在客户端的工作负荷(例如,p
e,m
,t
e,m
,r
e,m
,y=0),(ii)部署在服务器端的工作负荷(例如,p
c,m
,t
c,m
,r
c,m
,y=1),(iii)客户端上的预处理数据(例如,p
e,pr
,t
e,pr
,r
e,pr
,z=0),和(iv)服务器端上的预处理数据(例如,p
c,pr
,t
c,pr
,r
c,pr
,z=1)。在该示例实施例中,在t=0时,优化目标数据包括但不限于时间和内存。t=0时的时间和内存优化目标数据包括:工作负荷执行时间的最大阈值为三(3)秒,客户端可以执行一(1)秒的执行时间,服务器端可以执行半(0.5)秒的执行时间,服务器端和客户端之间的总传输时间为十分之七(0.7)秒。总内存不能超过在客户端和服务器端运行的gpu和cpu的最大容量。客户端的总空闲内存等于或小于2.15mb,服务器端的总空闲内存等于或小于7.6tb。在t=0时,部署优化程序122确定,该三个车辆操作的部署的最优工作负荷包括:因为总空闲内存量和阈值低传输时间允许在服务器端处理对象检测,在服务器端部署对象检测车辆操作的工作负荷;因为总空闲内存量和阈值低传输时间允许在服务器端处理对象识别,在服务器端部署对象识别车辆操作的工作负荷;以及在服务器端部署导航车辆操作的工作负荷。本发明的各种实施例规定,系统不断地识别更新的优化目标数据和更新的部署参数,并利用该更新的数据和参数,用神经网络确定要在服务器端、客户端或服务器端与客户端的组合部署的最优工作负荷。
49.在该第二示例实施例中,在晚于t=0的第二时间点(例如,t=1),优化目标数据包括但不限于时间和内存。t=1时的时间和内存优化目标数据包括:工作负荷执行时间的最大阈值为三(3)秒,客户端可以执行一(1)秒的执行时间,服务器端可以执行半(0.5)秒的执行时间,服务器端和客户端之间的总传输时间为十分之十二(1.2)秒。总内存不能超过在客户端和服务器端运行的gpu和cpu的最大容量。客户端的总空闲内存等于或小于1.9mb,服务器端的总空闲内存等于或小于2.6tb。部署优化程序122接收上述t=1时的优化目标数据和部署参数,作为神经网络的输入。部署优化程序122在t=1时确定为三个车辆操作部署的最优工作负荷。在t=1时,部署优化程序122确定该三个车辆操作的部署的最优工作负荷包括:在客户端部署对象检测车辆操作的工作负荷,因为传送数据到服务器端以检测目标并将程序指令集传送回客户端以执行车辆操作的传输时间太长;在服务器端部署对象识别车
辆操作的工作负荷,因为在客户端完成对象识别车辆操作和对象检测车辆操作所需的总空闲内存超过客户端的1.9mb的空闲内存;以及在服务器端部署导航车辆操作的工作负荷,因为完成导航车辆操作所需的总空闲内存超过客户端的总空闲内存(例如1.9mb)。
50.在各种实施例中,将训练数据提供给神经网络内输入层的神经元。在各种实施例中,当神经元的信号在神经网络内的多个隐藏层传播时,部署优化程序122从神经元内的训练数据学习。在各种实施例中,部署优化程序122在训练数据穿过多个隐藏层的边缘时学习,其中,边缘的权重随着部署优化程序122继续从训练数据学习而进行调整。在各种实施例中,边缘的权重增加或减少边缘处信号的强度。在各种实施例中,部署优化程序122从神经网络的输出层接收至少部分地基于要部署在服务器端、客户端或服务器端和客户端的组合上的最优工作负荷的输出数据。
51.在各种实施例中,要部署的最优工作负荷与自主车辆操作有关,此外,最优工作负荷包括但不限于在自主车辆上执行的不同操作。在第三示例实施例中,在清晨的一段时间内,没有多少流量,与高峰时间的时间段相比,网络本身可能不会拥塞。此外,电动自主车辆可能有足够的电池电量来完成各种车辆操作。在该示例实施例中,神经网络接收输入(例如部署参数和优化目标数据),其包括但不限于该数据(例如,网络流量、可用电池电量、要完成的车辆操作量等),然后,神经网络确定工作负荷的最优部署。此外,在该示例实施例中,部署优化程序122至少部分地基于低网络使用率而确定将对象检测相关操作最优地部署在自主车辆上,并且将对象识别任务最优地部署在后端服务器端。
52.在第四示例实施例中,在高峰时间的一段时间内,由于大量车辆在道路上行驶,网络变得拥挤。在该示例实施例中,必须对最优工作负荷进行更新以考虑车辆的高阈值和网络拥塞。在该示例实施例中,神经网络接收输入(例如部署参数和优化目标数据),其包括但不限于该数据(例如,高的网络流量拥塞、可用的电池功率水平、要完成的车辆操作的量等),然后,神经网络确定工作负荷的最优部署。此外,在该示例实施例中,部署优化程序122至少部分地基于高网络使用率而确定对象检测和对象识别的工作负荷的优化部署是在自主车辆上。
53.在各种实施例中,在操作304中训练神经网络完成时,可以用训练后的神经网络来预测一个或多个最优部署工作负荷,如操作206中进一步讨论的那样。在各种实施例中,部署优化程序122至少部分地基于输出数据来确定最优工作负荷,并传送要部署在服务器工作负荷程序126、客户端工作负荷程序136或服务器工作负荷程序126与客户端工作负荷程序136的组合上的最优工作负荷。
54.图4示出表400。表400定义了与在各种设备(例如客户端和服务器端)上部署数据处理和预处理的工作负荷的性能和成本相关的参数。在各种实施例中,部署参数定义在客户端设备130上的工作负荷期间客户端上用于预处理和数据处理的工作负荷所需的资源。此外,在各种实施例中,部署参数定义在计算机系统120上的工作负荷期间服务器端上用于预处理和数据处理的工作负荷所需的资源。
55.在各种实施例中,对于存储资源,p
store
(s)表示在客户端存储大小为s的图像所需的功率(power)。在各种实施例中,m
image
(s)表示在客户端缓存大小为s的图像所需的内存。在各种实施例中,对于传输资源,p
trans
(s)和t
trans
(s)分别表示将大小为s的图像从客户端传输到服务器端所需的功率和时间。本发明的各种实施例规定,输出边界框不具有传输成
本,因为输出边界框可以通过文本文件传输。最后,γ表示通过预处理大小为s的图像而实现的平均压缩。本发明的各种实施例规定客户端和服务器端之间的传输资源与图像的大小直接成正比,其中,将传输预处理图像所花费的时间表示为γt
trans
(s)。
56.在图5中,(i)方程500a至少表示优化目标时间,(ii)方程500b至少表示优化目标功率,(iii)方程500c至少表示优化目标内存,(iv)方程500d至少表示优化目标精度,(v)方程500e至少表示优化值。一般来说,至少分别按照(i)方程500a、(ii)方程500b、(iii)方程500c和(iv)方程500d来计算优化目标:时间、功率、内存和精度,以求解图5中方程500e中的优化值。
57.在方程500a中,确定总时间t的值。在方程500a中,时间方程的第一项yz(t
c,pr
t
c,m
t
trans
(s))表示在云网络上执行的预处理和工作负荷处理二者,其中该第一项表示服务器端与客户端之间的传输时间和在云网络上分别用于预处理和工作负荷处理的时间之和。在方程500a中,时间方程的第二项表示客户端(即自主车辆)上发生的预处理,其中数据集被较少了被传输和通过服务器端的神经网络进行预测的大小γ。在方程500a中,时间方程的第三项表示客户端上发生的数据集的处理。利用这三项来确定总时间t的值。在方程500a中,预测时间减少到阈值t
max
以外并不对优化工作负荷处理产生任何有益的价值,因此该约束被认为是t≤t
max

58.在方程500b中,确定总功率p的值。在方程500b中,第一项yz(p
c,pr
p
c,m
p
trans
(s))表示在服务器端发生的预处理和工作负荷处理二者,是服务器端上分别用于预处理和工作负荷预测的功耗与功耗之和。在方程500b中,第二项表示在客户端执行的预处理的功耗和通过在服务器端执行的神经网络进行预测的功耗。在方程500b中,第三项表示客户端上发生的数据集的处理的功耗。
59.在方程500c中,确定内存优化目标的约束。在方程500c中,第一项表示客户端设备上发生的数据集的处理的内存容量。在方程500c中,第二项表示在客户端设备上执行的预处理的内存容量和通过在服务器端执行的神经网络进行预测的内存容量。在方程500c中,第三项表示在假设能使用全部内存的服务器端发生的预处理和工作负荷处理的内存成本。
60.在方程500d中,确定总体优化目标的精度。方程500d是一个非线性函数,其中α、β是指定总体优化目标中精度的权重的参数。
61.在方程500e中,确定优化值。在方程500e中,计算应用于优化目标的最大值,其中,在计算f(acc)中使用的α指定精度-功率抵换系数。
62.在各种实施例中,除了确定部署工作负荷的最优位置(例如客户端或服务器),部署优化程序122还确定用于处理工作负荷的最优机器学习模型。例如,在一个示例实施例中,考虑用于部署的八种不同的机器学习模型。在该示例实施例中,客户端设备是自主车辆,工作负荷是对象检测工作负荷。自主车辆使用嵌入式、低功耗的计算板来处理工作负荷,而服务器使用高功耗的的gpu来处理工作负荷。与执行模型相比,可以将图像从自主车辆传输到服务器的传输功率忽略不计,平均传输速度为1.0mbps。并且,为了该示例实施例
的目的,假设每个模型仅使用一个图像大小,并且假设,在同一设备上进行预处理和处理(例如模型推断)。此外,在本实施例中,使用了示例性对象检测数据集,该数据集包括多个具有用于注释的边界框的示例图像。
63.仍然参考示例实施例,图6示出了表600,其中包括与确定用哪个机器学习模型来处理工作负荷有关的各种值。如图6所示,横轴示出八个机器学习模型的机器学习模型名称,第0行示出图像大小,第1行示出按平均精度(map)度量的机器学习模型精度。第2至4行分别示出客户端自主车辆上每个模型的计算的功率、内存和推断时间。第5至7行分别示出图像从自主车辆到服务器的传输时间、服务器上的推断时间(例如处理时间)和服务器上的总时间。第8行示出计算的精度函数,其中α=5且=1,第9行示出计算的自主车辆的优化函数(其中,服务器的优化函数与第8行相同,因为假定服务器的功率为零)。
64.仍然参考图6所示的示例实施例,基于自主车辆上可用的可用内存,内存截止值(mem
max
)为2000mb。此外,部署参数指定每秒至少应当处理四个图像(每个图像250毫秒)。因此,基于第7行(对于云而言)和第2行(对于客户端而言)中的值,许多模型被排除在考虑之外。对于客户端上的模型,只剩下四个最快的模型(tinyyolov3、tinyyolov4、yolov4和yolov5),对于服务器端模型,只剩下两个(tinyyolov3和tinyyolov4)。对于这些模型,比较服务器(第8行)和客户端(第9行)的优化函数,从而选择模型tinyyolov4用于在服务器上执行,因其具有最高的值。
65.本发明的各种实施例提供了一种计算机实现的方法,包括接收与要为客户端设备处理的机器学习工作负荷有关的信息;至少部分地基于该信息确定工作负荷的机器学习模型和工作负荷的处理位置;生成用所确定的机器学习模型在所确定的处理位置处理工作负荷的请求。
66.在各种实施例中,所确定的处理位置是客户端设备;在各种实施例中,所确定的处理位置是服务器。在各种实施例中,确定工作负荷的处理位置包括从一组可用服务器中选择服务器。
67.在各种实施例中,工作负荷包括输入图像。在各种实施例中,该方法还包括:至少部分基于该信息确定在处理工作负荷之前预处理该输入图像;以及至少部分地基于该信息确定预处理位置。在各种实施例中,所确定的处理位置是服务器;所确定的预处理位置是客户端设备。在各种实施例中,该方法还包括至少部分基于该信息确定该输入图像的预处理的输出图像大小。
68.在各种实施例中,该信息标识:(i)一个或多个处理时间要求,和(ii)客户端设备上的可用处理资源。在各种实施例中,该信息进一步标识一个或多个机器学习模型精度要求。在各种实施例中,该信息进一步标识:(i)工作负荷位于客户端设备,和(ii)在客户端设备与服务器之间传输工作负荷的传输速度。
69.在各种实施例中,确定工作负荷的机器学习模型和工作负荷的处理位置包括利用整数线性规划方法计算优化函数。
70.在各种实施例中,客户端设备是自主车辆,并且工作负荷从以下组中选择:(i)对象检测工作负荷;(ii)物体识别工作量;(iii)雷达定位工作量;(iv)激光雷达(光探测和测距)工作量;(v)空间检测工作负荷;(vi)自动驻车工作量;(vii)航行工作量。
71.要提前理解的是,尽管本公开包括关于云计算的详细描述,但本公开给出的教导
的实现方式不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
72.云计算是一种服务交付模型,用于使得能够方便、按需地网络访问可配置计算资源(例如网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源能以最小的管理努力或与服务提供者的交互而快速调配和释放。云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
73.特性如下:
74.按需自助服务:云消费者可以按需自动地单方面提供诸如服务器时间和网络存储的计算功能,而不需要与服务的提供者进行人为交互。
75.广泛的网络访问:可通过网络获得并通过促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上计算机、和pda)使用的标准机制来访问各种功能。
76.资源池化:提供者的计算资源被池化以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需要动态地分配和重新分配。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够指定较高抽象水平的位置(例如,国家、州或数据中心)。
77.快速弹性:能够快速和弹性地提供能力(在一些情况下自动地)以快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
78.测量的服务:云系统通过利用适合于服务类型(例如,存储、处理、带宽、和活动用户账户)的某个抽象水平的计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
79.服务模型如下:
80.软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
81.平台即服务(paas):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
82.基础设施即服务(iaas):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
83.部署模型如下:
84.私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
85.社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场
所外。
86.公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
87.混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
88.云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
89.现在参见图7,描述了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备诸如例如个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n。节点10可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图7中所示的计算装置54a-n的类型仅旨在是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化装置通信。
90.现在参见图8,示出了由云计算环境50(图7)提供的一组功能抽象层。应提前理解,图8中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如图所示,提供以下层和对应功能:
91.硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于risc(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
92.虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
93.在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境内利用资源时提供成本追踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(sla)规划和履行85提供根据sla预期未来需求的云计算资源的预安排和采购。
94.工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟课堂教学93;数据分析处理94;交易处理95;以及优化机器学习工作负荷的部署96。
95.图9示出根据本发明的说明性实施例的计算机系统120和客户机设备130的组件的框图900。应当理解,图9仅提供一种实现方式的图示,而不暗示对其中可以实现不同实施例的环境的任何限制。可以对所示环境做出许多修改。
96.计算机系统120和客户端设备130包括通信结构902,其提供计算机处理器904、存
储器906、持久性存储器908、通信单元910和输入/输出(i/o)接口912之间的通信。通信结构902可用被设计用于在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其他硬件组件之间传递数据和/或控制信息的任何架构来实现。例如,通信结构902可用一个或多个总线来实现。
97.存储器906和持久性存储器908是计算机可读存储介质。在本实施例中,存储器906包括随机存取存储器(ram)914和高速缓存916。一般而言,存储器906可包括任何合适的易失性或非易失性计算机可读存储介质。
98.部署优化程序122、计算机接口124、服务器工作负荷程序126、数据库128、客户端程序132、客户端接口134、客户端工作负荷程序136被存储在持久性存储器908中,以用于由相应计算机处理器904中的一个或多个经由存储器906中的一个或多个存储器来执行和/或访问。在该实施例中,持久性存储器908包括磁性硬盘驱动器。可替代地,或者除了磁性硬盘驱动之外,持久性存储器908可以包括固态硬盘驱动、半导体存储设备、只读存储器(rom)、可擦除可编程只读存储器(eprom)、闪存、或能够存储程序指令或数字信息的任何其他计算机可读存储介质。
99.持久性存储器908所使用的介质还可以是可移除的。例如,可将移动硬盘驱动器用于持久性存储器908。其他示例包括光盘和磁盘、拇指驱动器和智能卡,它们被插入到驱动器中以便传输数据到另一计算机可读存储介质(其也是持久性存储器908的一部分)上。
100.在这些示例中,通信单元910提供与其他数据处理系统或设备的通信,包括网络110的资源。在这些示例中,通信单元910包括一个或多个网络接口卡。通信单元910可以通过使用物理和无线通信链路中的一个或两个来提供通信。部署优化程序122、计算机接口124、服务器工作负载程序126、数据库128、客户端程序132、客户端接口134、客户端工作负载程序136可以通过通信单元910下载到持久性存储器908。
101.i/o接口912允许与可以连接至计算机系统120和客户端设备130的其他设备进行数据的输入和输出。例如,i/o接口912可提供到外部设备918(诸如键盘、小键盘、触摸屏和/或一些其他合适的输入设备)的连接。外部设备918还可包括便携式计算机可读存储介质,诸如例如拇指驱动器、便携式光盘或磁盘、以及存储卡。用于实施本发明的实施例的软件和数据(例如,部署优化程序122、计算机接口124、服务器工作量程序126、数据库128、客户端程序132、客户端接口134、客户端工作量程序136)可以存储在这种便携式计算机可读存储介质上,并可经由i/o接口912加载到持久性存储器908上。i/o接口912还连接到显示器920。
102.显示器920提供向用户显示数据的机制,可以是例如计算机监视器或电视屏幕。
103.本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质。
104.计算机可读存储介质可以是可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡或具有记录在其上的指令的槽中的凸出结构之类的机械编码设备、以及上述各项的任何合适的组合。如本
文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
105.本文所述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者通过网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
106.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言的任何组合编写的源代码或目标代码,这些编程语言包括面向对象的编程语言(如java、smalltalk、c 等)和常规的过程编程语言(如“c”编程语言或类似的编程语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
107.本文参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各个方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中各框的组合,都可以通过计算机可读程序指令实现。
108.这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图的框中规定的功能/动作的方面的指令的制造品。
109.也可将计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
110.附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用
执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
111.本文描述的程序基于在本发明特定实施例中实现的应用进行标识的。然而,应当理解,本文中的任何特定程序命名法仅是为了方便,因此本发明不应仅限于在此类命名法标识和/或暗示的任何特定应用中使用。
112.需要注意的是,诸如“smalltalk”之类的术语可能受世界各地不同司法管辖区的商标权管辖,此处仅在商标权可能存在的情况下,用于指代由商标适当命名的产品或服务。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献