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

专用处理单元的功能即服务(FAAS)模型的制作方法

2022-10-26 20:22:05 来源:中国专利 TAG:

专用处理单元的功能即服务(faas)模型
1.相关申请的交叉引用
2.本专利申请要求于2020年3月12日提交的美国实用专利申请序列号16/817,390的优先权,该申请通过引用的方式全部并入本文。
技术领域
3.本公开总体涉及提供专用处理单元,例如图形处理单元(gpu)、张量处理单元(tpu)等作为服务,使专用处理单元的核可用于边缘客户端计算设备。


背景技术:

4.在当今无所不在的计算世界中,架构继续向边缘计算发展,其中计算设备获取和处理尽可能接近源的数据。边缘计算提供了许多好处,包括减少延迟和减少跨网络的数据带宽成本。然而,某些类型的处理可能非常密集,以至于需要比许多边缘计算设备所能提供的更多的功率。因此,边缘计算面临着一个冲突,即继续将数据处理进一步推向源,而无需在不断增加的边缘计算设备上添加昂贵的硬件。
附图说明
5.下面参照附图来阐述具体实施方式。在附图中,附图标记最左边的(一个或多个)数字表示该附图标记首次出现的附图。在不同的附图中使用相同的附图标记表示相似或相同的项目。附图中描绘的系统未按比例绘制,并且附图中的组件可能彼此未按比例绘制。
6.图1示出了示例环境的系统架构图,其中处理单元服务可通过网络由不同的客户端设备访问。在所示环境中,每个客户端设备可以包括边缘计算设备,该边缘计算设备被配置为在本地处理一些数据,同时调用一个或多个专用处理单元(例如,处理单元服务的图形处理单元(gpu))的核用于执行某些并行的、密集的计算任务。在一些情况下,处理单元服务包括代理服务,该代理服务被配置为接收对核的请求,确定请求的相应优先级,并相应地分配核的使用。
7.图2示出了可以在图1的系统内发生的示例场景。如图所示,三个所示客户端设备中的每一个都可以请求在相应时间量内使用处理单元服务的处理单元的相应数量的核。作为响应,代理服务可以相应地分配处理单元的核。
8.图3示出了可以在图1的系统内发生的另一个示例场景。在这里,两个客户端设备分别发出对核的请求,这些请求相互冲突。例如,请求可能在时间上至少部分地重叠,并且处理单元服务可能无法在期望的时间为客户端设备中的每一个分配核的数量。因此,代理服务可以确定哪个请求比另一个请求具有优先级,并且作为响应,可以满足较高优先级的请求同时部分地满足较低优先级的请求。
9.图4示出了可以在图1的系统内发生的另一个示例场景。同样,两个客户端设备发出冲突的请求,使得代理服务确定哪个请求优先于另一个请求。在该示例中,代理服务可以在当前时间完成较高优先级请求,而在完成与较高优先级请求相关联的任务之后,在稍后
时间完成较低优先级请求。
10.图5示出了用于接收使用一个或多个专用处理单元的核的请求并且作为响应对请求进行优先级排序并相应地分配核的示例过程的流程图。
11.图6a-图6b共同示出了用于从各个应用接收使用核的两个相应请求并且作为响应对请求进行优先级排序并相应地分配核的另一示例过程的流程图。
12.图7是示出用于实现被配置为实现本文描述的技术的计算设备的说明性计算机硬件架构的计算机架构图。
具体实施方式
13.概览
14.本公开部分地描述了一种方法,该方法包括:在包括图形处理单元(gpu)的服务器处从远离服务器的第一应用接收第一请求,以将gpu的第一数量的核保留第一时间量。该方法还包括在服务器处从远离服务器且远离第一应用的第二应用接收第二请求,以将gpu的第二数量的核保留第二时间量,第二时间量与第一时间量至少部分地重叠。该方法还可以包括由服务器确定第一请求与比第二请求更高的优先级相关联,以及由服务器至少部分地基于该确定,为第一应用将第一数量的核保留第一时间量。此外,该方法可以包括由服务器向第一应用发送指示出第一数量的核已经为第一应用保留了第一时间量的指示。
15.本公开还部分地描述了一种至少部分地由包括专用处理单元(例如,图形处理单元(gpu)、张量处理单元(tpu)等)的系统实施的方法,该方法包括从远离系统的第一应用接收第一请求,以将专用处理单元的第一数量的核保留第一时间量。该方法还可以包括从远离系统并且远离第一应用的第二应用接收第二请求,以将专用处理单元的第二数量的核保留第二时间量,第二时间量与第一时间量至少部分地重叠,以及确定第一请求与比第二请求更高的优先级相关联。该方法还可以包括至少部分地基于该确定,为第一应用将第一数量的核保留第一时间量,并且向第一应用发送指示出第一数量的核已为第一应用保留了第一时间量的指示。
16.此外,本文描述的技术可以经由方法、设备、系统和/或存储计算机可执行指令的非暂态计算机可读介质来执行,这些计算机可执行指令在由一个或多个处理器执行时执行本文描述的技术。
17.示例实施例
18.如上所述,计算架构继续向边缘计算发展,其中计算设备获取和处理尽可能靠近源的数据。边缘计算提供了许多好处,包括减少延迟和减少跨网络的数据带宽成本。然而,某些类型的处理可能非常密集,以至于需要比许多边缘计算设备所能提供的更多的功率。因此,边缘计算面临着一个冲突,即继续将数据处理进一步推向源,而无需在不断增加的边缘计算设备上添加昂贵的硬件。
19.本文描述了使边缘计算设备能够使用边缘设备板载的处理器在本地执行串行、非密集计算任务的技术,同时将处理单元服务的专用处理单元的核用于密集的并行任务。因此,所描述的技术有效地创建了一种环境,其中可以在功能即服务(faas)模型中访问专用处理单元的核。例如,在边缘操作的每个客户端计算设备可以包括一些在本地执行计算任务的代码片段,以及在调用时请求faas模型的核的其他代码片段。可以使用faas的一个或
多个专用处理单元的核执行的计算任务的示例包括计算机视觉、视频分析、自然语言处理(nlp)、图形处理、推理机器学习(ml)训练、人工智能(ai)等等。
20.在某些情况下,处理单元服务驻留在“云中”,因此,多个不同的客户端计算设备可以通过互联网和/或其他网络访问。此外,处理单元服务可以包括一个或多个图形处理单元(gpu)、张量处理单元(tpu)、边缘tpu和/或被配置为执行密集计算的其他专用处理单元。当然,虽然处理单元服务可以驻留在云中,但它也可以驻留在网络中“更高”的任何地方,例如物联网(iot)聚合点、多接入边缘计算(mec)节点、更高级别的数据中心等。
21.处理单元服务可以包括代理服务,该代理服务被配置为接收对专用处理单元的核的不同请求并相应地分配和调度核。例如,来自在边缘操作的客户端计算设备的每个请求可以包括一个或多个参数。这些参数可以包括请求的核的数量、核被请求的时间长度、核已被请求的时间范围、客户端计算设备希望在核上执行的任务类型、任务的优先级、处理服务单元先前已同意提供给客户端计算设备的服务质量(qos)级别、处理单元服务与客户端计算设备之间的计费模型等。该请求还可包括用于在处理单元服务的代理服务处认证客户端计算设备的安全或认证凭证。
22.在接收到请求时,在某些情况下,代理服务可以为请求分配优先级,以确定请求的优先级是大于还是小于一个或多个其他请求。例如,如果请求与另一个请求冲突,使得处理单元服务无法以请求的方式满足两个请求,则代理服务可以使用相应的优先级来确定要满足哪个请求以及拒绝或修改哪个请求。修改请求可以包括分配比请求更少的核、在与请求不同(例如,更晚)的时间分配核等。
23.处理单元服务的代理服务可以在一个或多个数据存储中维护数据(例如,映射图),该数据指示诸如处理单元服务的总容量(例如核的数量)、当前容量(例如,可用的核的数量)、当前正使用的容量(例如,使用中的核计数)、当前保留的核的时间表(例如,现在和/或将来核被保留的时间范围)、容量的位置(例如,核位置)等。代理服务可以使用该信息以及包括在各个请求中的信息和/或所确定的请求的优先级来确定如何响应请求。
24.例如,代理服务可以通过代表应用保留一个或多个核来响应请求。例如,设想在客户端计算设备上执行的应用经由代理服务提供的应用编程接口(api)请求保留和使用两百(200)个核十分钟。响应于接收到该请求,代理服务可以访问数据存储以确定处理单元服务是否能够满足请求。如果满足,则代理服务可以存储指示出处理单元服务的200个识别的核具有十分钟长度的定义时间范围的指示,并且代理服务可以向应用发送指示出核已经被保留的指示连同对核的位置的指示。在另一个示例中,代理服务可以替代地将来自应用的后续业务流重定向到适当的位置,而不是提供位置。然而,如果核不可用(即处理单元服务无法满足请求),代理服务可以向应用发送拒绝消息,该应用可以在另一个位置寻找可用资源。在另一个示例中,代理服务可以返回核在哪个时间量将变得可用的指示(例如,“所请求的资源将在十秒后可用”)。在又一个示例中,代理服务可以返回处理单元可以满足请求的一部分的指示(例如,“80个核现在可用”)和/或其他核将在以后变得可用的指示(例如,“120个剩余的核将在15秒后可用”)。
25.一旦代理服务保留了核,在边缘执行的应用现在能够经由处理单元服务提供的api服务与适当的(一个或多个)计算设备进行通信。此服务将请求的任务分配给已为此任务保留的核。这样,多个系统可以同时使用核的分组。以同样的方式,gpu或其他专用处理单
元可以被共享和细分,以同时运行来自多个应用的多于一个任务。一旦任务完成(或对核的保留已过期),代理服务可能会释放核上的锁定,这样核现在可以由在边缘操作的相同或其他应用重用于其他任务。
26.如上所述,当请求的任务彼此冲突时,可以按照优先级对请求进行排序,如代理服务基于与请求相关联的相应属性所确定的。例如,具有较高优先级的请求(或请求源自的应用/边缘计算设备)可能优先于较低的请求。在这些情况下,代理服务可以基于例如上面讨论的属性(例如应用优先级、支付和计费模型、需要核的时间长度等)来对核空间的争用进行仲裁。
27.在某些情况下,代理服务被配置为基于可配置的约束来优化核分配。例如,代理服务可以被设置为分配任务以将负载分散到多个gpu或其他专用处理单元。处理单元服务的代理服务可以被设置为将数据处理任务定位到gpu或与客户端计算设备和主云服务器之间的路径线性最近的其他专用处理单元,从而节省网络数据处理和带宽。此外,或替代地,代理服务可以被配置为基于任务类型分配资源(例如,t-gpu可以用于图像处理任务等)。此外,在某些情况下,代理服务可以从整体延迟角度分配最接近的资源,其中延迟被主动测量或隐式测量(例如,使用带内操作、管理和维护(ioam)技术)。
28.参考图1-图7进一步描述这些技术。应当理解,这些图和相应的讨论描述了示例架构和实施例,并且这些技术可以在其他未示出的架构和实施例中实现。
29.图1示出了示例环境100的系统架构图,其中在网络边缘操作的一个或多个客户端计算设备102(1)、102(2)、...、102(n)能够访问处理单元服务的一个或多个专用处理单元(或“处理器”)104。客户端计算设备102(1)-(n)可以包括任何形式的任何类型的计算设备,例如独立的服务器计算设备、个人计算设备、安全摄像头板载的计算设备、运输车辆板载的安全设备等,没有限制。同时,专用处理单元104可以包括图形处理单元(gpu)、张量处理单元(tpu)、边缘tpu和/或包括被配置为执行密集计算处理的多个核的任何其他类型的专用处理单元。在一些情况下,客户端计算设备102(1)-(n)能够通过一个或多个网络108访问处理单元服务106,该网络108可以包括互联网和/或一个或多个其他公共和/或私人网络。在一些情况下,处理单元服务106驻留在云中,而在其他情况下,它可能驻留在网络中“更高”的任何地方,例如在物联网(iot)聚合点、多接入边缘计算(mec)节点、更高级别的数据中心等。
30.每个所示的客户端计算客户端设备102(1)-(n)可以包括边缘计算设备,该边缘计算设备被配置为在本地处理一些数据,同时调用一个或多个专用处理单元104(例如,处理单元服务106的图形处理单元(gpu))的核用于执行某些并行的、密集的计算任务。如图所示,客户端计算设备102(1)-(n)中的每一个可以包括各自的处理器110(1)、110(2)、...、110(n)和存储器112(1)、112(2)、...、112(n),其中每一个可以存储一个或多个相应的应用114(1)、114(2)、...、114(n)。本地处理器110(1)-(n)可以包括一个或多个中央处理单元(cpu),但是出于成本原因,客户端计算设备102(1)-(n)可以没有专用的更高功率处理器,例如gpu、tpu、边缘-tpu等。
31.在环境100内,客户端计算设备102(1)-(n)可以经由功能即服务(faas)模型访问专用处理单元104。例如,客户端设备的应用114(1)-(n)中的每一个被配置为利用在本地执行功能的代码的(一个或多个)第一部分和调用如下功能的代码的(一个或多个)第二部分,
该功能请求保留和利用处理单元服务106的专用处理单元104的核来执行计算密集型任务。可以使用faas的一个或多个专用处理单元104的核来执行的计算任务的示例包括计算机视觉、视频分析、自然语言处理(nlp)、图形处理、推理机器学习(ml)训练、人工智能(ai)等。
32.如图所示,处理单元服务106包括一个或多个处理单元(或“处理器”)120和一个或多个专用处理单元104。处理器120可以代表执行存储在存储器122上的代码的中央处理单元(cpu)。如图所示,存储器122可以存储代理服务124,该代理服务124被配置为接收对专用处理单元104的核的请求,确定请求的相应优先级,并相应地分配核的使用。
33.代理服务124可以包括请求组件126、优先级组件128和调度组件130,以及数据存储132。请求组件126可以从客户端计算设备102(1)-(n)中的一个或多个的应用114(1)-(n)接收对专用处理单元104的核的请求。如上所述,请求可以包括一个或多个参数,例如请求的核的数量、请求的核的时间长度、请求核的时间范围、应用期望在核上执行的任务类型、任务的优先级、处理服务单元104先前同意提供给各个客户端计算设备的服务质量(qos)级别、处理单元服务106和相应的客户端计算设备之间的计费模型等。该请求还可包括用于在处理单元服务106的代理服务处认证相应客户端计算设备的安全或认证凭证。
34.同时,优先级组件128可以使用接收到的参数中的一个或多个来确定请求的优先级。在一些情况下,确定的优先级可以表示一个或多个多优先级级别(例如,低、中、高),而在其他情况下,优先级可以表示,例如,归一化分数(例如,在表示最低优先级的零和表示最高优先级的一之间)。在任一情况下,优先级组件128可以基于参数中的一个或多个到优先级分数或级别之间的映射以任何数量的方式计算相应的优先级,例如使用接收参数中的一个或多个作为输入的预定义函数等。例如,优先级组件128可以将某些类型的任务(例如,计算机视觉等)关联到较高的优先级,而将其他任务(例如,ml训练)关联到较低的优先级。在其他情况下,优先级组件128可以将来自某些应用/客户端计算设备的请求关联到较高的优先级级别(例如,基于已经接收到更高qos级别的应用/客户端计算设备),同时将来自其他应用/客户端计算设备的请求关联到较低的优先级。
35.不管如何计算优先级,调度组件130都可以使用相应的优先级来确定如何调度(例如,保留和分配)来自应用的请求。例如,响应于接收到相互冲突的多个请求,调度组件130可以在满足与较低优先级相关联的请求之前满足与较高优先级相关联的请求。在确定如何保留每个请求之后,调度组件130可以在数据存储132中存储关于哪些核与请求相关联、核被保留的时间长度和时间范围等的指示。数据存储132还可以存储附加信息,例如接收到的参数等。
36.在为来自应用的特定请求保留核之后,代理服务124可以将对保留的指示发送到对应的应用。该指示可以指示保留的核的数量(例如,一些或全部所请求的)、保留的时间范围以及核的位置。在接收到此信息后,应用可开始通过网络108使用核。例如,图1示出了处理单元服务106可以包括计算组件134,应用可以开始与之交互以使(一个或多个)专用处理单元104的分配的核能够开始相应应用所需的密集计算。
37.图2示出了可能发生在图1的环境100内的示例场景。在该示例中,三个所示客户端设备102(1)-(n)中的每一个可以请求在相应时间量内使用处理单元服务的处理单元的相应数量的核。例如,客户端计算设备102(1)可以发出对多个核用于特定时间量的请求202(1),客户端计算设备102(2)可以发出对多个核用于特定时间量的请求202(2),并且客户端
计算设备102(n)可以发出对多个核用于特定时间量的请求202(n)。如上所述,每个相应的请求202(1)-(n)除了核的数量和所需的时间之外,还可以伴随一个或多个参数,或者可以在一个或多个参数之前或之后。这些参数可以包括应用或客户端设备的身份、任务的身份、与应用或客户端设备相关联的qos、安全或认证凭证等。
38.在接收到每个请求时,代理服务124可以初始使用相应的认证凭证来认证(并且可能授权)相应的应用或客户端设备。在这样做之后,代理服务124可以使用一个或多个参数来确定处理单元服务106是否能够满足请求。如果能满足,则代理服务124可以将所请求的核保留所请求的时间量并将对保留(包括核的位置)的指示发送到相应的应用。
39.在图2的所示示例中,代理服务124确定处理单元服务106能够满足三个请求202(1)-(n)中的每一个,因此,代理服务124根据各个请求保留三个核块并向请求应用发送相应的指示。例如,图2示出代理服务124已经为请求202(1)保留了多个核(25)204(1),为请求202(2)保留了多个核(21),以及为请求202(n)保留了多个核(10)。此外,图2示出代理服务124已经将核204(1)保留了第一时间范围(例如,t
a-tb),将核204(2)保留了第二时间范围(例如,t
c-td),以及将核204(n)保留了第三时间范围(例如,t
e-tf)。因此,在接收到已经为客户端设备102(1)保留了核204(1)的指示时,客户端设备102(1)可以开始访问核以执行期望的计算。类似地,在接收到已经为客户端设备102(2)保留了核204(2)的指示时,客户端设备102(2)可以开始访问核以执行所需的计算,并且在接收到已经为客户端设备102(n)保留了核204(n)的指示时,客户端设备102(n)可以开始访问核以执行期望的计算。
40.图3示出了可能在图1的系统内发生的另一个示例场景。然而,在该示例中,两个客户端设备发出对核的相应请求,而这些请求相互冲突。例如,请求可能至少部分地在时间上重叠,并且处理单元服务可能无法以期望的时间为客户端设备中的每一个分配核的数量。因此,代理服务124可以确定哪个请求比另一个请求具有优先级,并且作为响应,可以满足较高优先级请求同时部分满足较低优先级请求。
41.例如,图3示出在客户端设备102(1)上执行的应用可以发送第一请求302(1)以利用所请求的核304(1),而客户端设备102(n)发送第二请求302(n)以利用所请求的核304(2)。如图所示,每个请求可以包括一个或多个属性,如上所述。
42.在接收到请求时,代理服务124可以确定处理单元服务106不能同时满足两个请求。因此,代理服务124可以确定哪个请求相对于另一个请求具有更高的优先级。例如,代理服务124可以计算与第一请求302(1)相关联的优先级和与第二请求302(n)相关联的优先级,并且可以将它们相互比较以确定哪个优先级更高。在该示例中,代理服务124确定请求302(1)的优先级高于请求302(n)。因此,如图所示,代理服务124通过保留客户端设备102(1)经由请求302(1)请求的核来满足请求302(1)。此外,代理服务124还确定它可以通过例如保留所请求的核304(2)的一部分(例如核304(3))来部分地满足请求302(n)。在这个示例中,例如,客户端设备102(n)已经请求使用50个核,但是处理单元服务106在当前时间只能提供对30个核的访问。因此,代理服务124可以向客户端设备102(n)发送相应的指示。此外,代理服务124可以在请求304(n)的剩余核变得可用时保留它们。
43.图4示出了可能发生在图1的环境100内的另一个示例场景。同样,这两个客户端设备发出冲突的请求,导致代理服务124确定哪个请求优先于另一个请求。在该示例中,代理服务124可以在当前时间完成较高优先级请求,而在完成与较高优先级请求相关联的任务
之后,在稍后时间完成较低优先级请求。
44.例如,图4再次示出在客户端设备102(1)上执行的应用程序可以发送第一请求302(1)以利用所请求的核304(1),而客户端设备102(n)发送第二请求302(n)以利用图3所示的所请求的核304(2)。同样,每个请求可以包括一个或多个属性,如上所述。
45.在接收到请求时,代理服务124可以确定处理单元服务106不能同时满足两个请求。因此,代理服务124可以确定哪个请求相对于另一个请求具有更高的优先级。例如,代理服务124可以计算与第一请求302(1)相关联的优先级和与第二请求302(n)相关联的优先级,并且可以将它们相互比较以确定哪个优先级更高。在该示例中,代理服务124确定请求302(1)的优先级高于请求302(n)。因此,如图所示,代理服务124通过保留客户端设备102(1)经由请求302(1)请求的核来满足请求302(1)。
46.然而,在该示例中,不是通过例如保留所请求的核304(2)的一部分(例如核304(3))来部分地满足请求302(n),而是代理服务124可以发送请求的核将在一定延迟后可用的指示。因此,代理服务124可以向客户端设备102(n)发送相应的指示,指示核402将在指定的稍后时间变得可用。客户端设备102(n)可以在稍后时间使用保留的核402,如代理服务124所指定的。
47.图5示出了用于接收对使用一个或多个专用处理单元的核的请求并且作为响应对请求进行优先排序并相应地分配核的示例过程500的流程图。在一些情况下,上述处理单元服务106可以执行过程500的一些或所有操作。当然,虽然下面参考处理单元服务106的服务器来描述操作,但是应当理解,其他系统、设备等可以在其他情况下执行这些操作中的一些或全部。
48.在操作502处,处理单元服务106接收对专用处理单元(例如,gpu、tpu、边缘-tpu等)的多个核用于一时间量的请求。例如,代理服务124可以从所示的客户端计算设备102(1)-(n)之一接收这样的请求。如上所述,该请求可以包括除了核的数量和请求的时间之外的一个或多个属性或参数。在操作504处,处理单元服务106分析请求以确定与请求相关联的这些属性中的一个或多个。
49.操作506表示处理单元服务106确定处理单元服务106是否已经接收到附加请求。如果是,则过程500循环回到操作502和504以用于获取新请求。如果不是,则在操作508处,处理单元服务106根据请求的优先级将一个或多个核保留相应的时间量。也就是说,代理服务124可以确定请求的优先级,并且可以保留与最高优先级请求相关联的核,然后是降序优先级的请求。在操作510处,处理单元服务106将对保留的指示发送到请求应用。
50.在操作512处,处理单元服务106确定任何时间量是否已经过去。在确定与特定保留相关联的时间量已经过去时,在操作514处,处理单元服务106可以释放先前保留的核,并且在操作516处,将释放核的指示发送到对应的应用。
51.图6a-图6b共同示出了另一个示例过程600的流程图,该过程600用于接收来自各个应用的使用核的两个相应请求,并且作为响应,对请求进行优先级排序并相应地分配核。同样,上述处理单元服务106可以执行过程600的一些或所有操作,并且/或者其他系统、设备等可以执行这些操作中的一些或所有。此外,虽然过程600是参照在faas模型中保留gpu来描述的,但是应当理解,过程600的操作可以类似地实现用于其他专用处理单元,例如tpu、边缘-tpu和/或其他大功率处理单元。
52.操作602表示在包括图形处理单元(gpu)的处理单元服务106的服务器处从远离服务器的第一应用接收第一请求,第一请求要求将gpu的第一数量的核保留第一时间量。在某些情况下,该请求包括第一应用的认证凭证。同时,操作604表示至少部分地在保留第一数量的核之前,使用与第一应用相关联的第一认证凭证来认证第一应用。
53.操作606表示在处理单元服务106的服务器处从远离服务器且远离第一应用的第二应用接收第二请求,第二请求要求将gpu的第二数量的核保留第二时间量。在某些情况下,该请求包括第二应用的认证凭证。同时,操作608表示至少部分地在保留第二数量的核之前,使用与第二应用相关联的第二认证凭证来认证第一应用。
54.在接收到这两个请求之后,处理单元服务106的服务器可以在操作610处确定第一请求与比第二请求更高的优先级相关联。作为响应,在操作612处,处理单元服务106的服务器为第一应用将第一数量的核保留第一时间量,并且在操作614处,向第一应用发送已经为第一应用将第一数量的核保留了第一时间量的指示。
55.图6b继续过程600的图示并且包括在操作616处由服务器至少部分地基于该确定而保留以下各项中的至少一项:(i)为第二应用将第三数量的核保留第二时间量,第三数量的核少于由第二应用请求的第二数量的核,或(ii)为第二应用将第二数量的核保留第三时间量,第三时间量满足如下项中的至少一项:小于第二时间量,或晚于第二时间量发生。换言之,处理单元服务106可以在请求的时间保留由第二应用请求的核的一部分(例如,如图3所示),可以在稍后的时间保留每个请求的核(例如,如图4所示),或者可以进行它们的组合。在操作618处,处理单元服务106向第二应用发送对保留的指示。
56.图7是示出用于实现系统700的说明性计算机硬件架构的计算机架构图,该系统700可用于实现本文提出的各种技术的方面。上面讨论的系统106可以包括下面参考系统700讨论的一些或所有组件。
57.如前所述,云计算网络、数据中心等提供的计算资源可以是数据处理资源(例如,vm实例或硬件计算系统)、数据库集群、计算集群、存储集群、数据存储资源、数据库资源、网络资源等。系统700中的一些还可以被配置为执行能够实例化和/或管理计算资源的资源管理器。例如,在vm实例的情况下,资源管理器可以是管理程序或被配置为能够在单个服务器系统700上执行多个vm实例的另一类型的程序。数据中心中的系统700也可以被配置为提供网络服务和其他类型的服务。
58.系统700包括基板702或“母板”,该基板702或“母板”是可以通过系统总线或其他电通信路径将多个组件或设备连接的印刷电路板。在一种说明性配置中,一个或多个处理单元704(例如中央处理单元(cpu))与芯片组706结合操作。cpu 704可以是执行系统700的操作所必需的算术和逻辑运算的标准可编程处理器。处理单元704还可以包括一个或多个gpu、tpu、边缘-tpu和/或其他类型的专用处理单元,供远离系统700操作的客户端计算设备使用,如上所述。
59.cpu 704通过操纵区分和改变这些状态的开关元件,从一个离散的物理状态转换到下一个状态来执行操作。开关元件通常包括保持两个二进制状态之一的电子电路(例如触发器)以及基于一个或多个其他开关元件(例如逻辑门)的状态的逻辑组合提供输出状态的电子电路。这些基本的开关元件可以组合起来形成更复杂的逻辑电路,包括寄存器、加法器-减法器、算术逻辑单元、浮点单元等。
60.芯片组706在cpu 704与基板702上的其余组件和设备之间提供接口。芯片组706可以提供到ram 708的接口,ram 708用作系统700中的主存储器。芯片组706还可以提供到计算机可读存储介质(例如只读存储器(rom)510或非易失性ram(nvram)的接口,用于存储有助于启动系统700和在各种组件和设备之间传输信息的基本例程。rom 710或nvram还可以存储根据本文描述的配置的计算机700的操作所必需的其他软件组件。
61.系统700可以使用通过诸如局域网724之类的网络到远程计算设备和计算机系统的逻辑连接在网络环境中操作。芯片组706可以包括通过网络接口卡(nic)712(例如千兆以太网适配器)提供网络连接的功能。nic712能够通过网络将系统700连接到其他计算设备。应当理解,在系统700中可以存在多个nic 712,从而将计算机连接到其他类型的网络和远程计算机系统。
62.系统700可以连接到为系统提供非易失性存储的存储设备718。存储设备718可以存储操作系统720、程序722和数据,这些已经在本文中更详细地描述过。存储设备718可以通过连接到芯片组706的存储控制器714连接到系统700。存储设备718可以包括一个或多个物理存储单元。存储控制器714可以通过以下各项来与物理存储单元进行对接:串行附接的scsi(sas)接口、串行高级技术附件(sata)接口、fc接口、或用于在计算机和物理存储单元之间进行物理连接和传输数据的其他类型的接口。
63.系统700可以通过转换物理存储单元的物理状态以反映所存储的信息来将数据存储在存储设备718上。在此说明书的不同配置中,物理状态的具体转换取决于各种因素。这些因素的示例可以包括但不限于:用于实现物理存储单元的技术、存储设备718是否被特征化为主存储或辅助存储等。
64.例如,系统700可以通过经由存储控制器714发出指令来改变磁盘驱动单元中特定位置的磁特性,光学存储单元中特定位置的反射或折射特性,或固态存储单元中特定电容器、晶体管或其他分立组件的电特性,从而将信息存储到存储设备718。在不脱离本说明书的范围和精神的情况下,物理介质的其他转换是可能的,提供上述示例只是为了便于本说明书的描述。系统700可以通过检测物理存储单元中的一个或多个特定位置的物理状态或特性来进一步从存储设备718读取信息。
65.除了上述的大容量存储设备718之外,系统700可以访问其他计算机可读存储介质来存储和取回信息,例如程序模块、数据结构或其他数据。本领域技术人员应当理解,计算机可读存储介质是提供对数据的非暂态存储并且可以被系统700访问的任何可用介质。
66.作为示例而不是限制,计算机可读存储介质可以包括以任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机可读存储介质包括但不限于ram、rom、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存或其他固态存储器技术、光盘rom(cd-rom)、数字多功能磁盘(dvd)、高清dvd(hd-dvd)、blu-ray,或其他光学存储、磁盒、磁带、磁盘存储或其他磁存储设备,或可用于以非暂态方式存储所需信息的任何其他介质。
67.如上简述,存储设备718可以存储用于控制系统700的操作的操作系统720。根据一个实施例,操作系统包括linux操作系统。根据另一实施例,该操作系统包括来自华盛顿雷蒙德微软公司的服务器操作系统。根据进一步实施例,操作系统可以包括unix操作系统或其变体之一。应当理解,也可以利用其他操作系统。存储设备718可以存储计算机700使用的其他系统或应用程序和数据。
68.在一个实施例中,通过计算机可执行指令编码存储设备718或其他计算机可读存储介质,该计算机可执行指令当被加载到系统700中时,将计算机从通用计算系统转换为能够实现本文所述实施例的专用计算机。如上所述,这些计算机可执行指令通过指定cpu 704如何在状态之间转换来转换系统700。根据一个实施例,系统700可以访问存储计算机可执行指令的计算机可读存储介质,这些指令在由系统700执行时执行上文关于图2a-图3d描述的各种过程。系统700还可以包括计算机可读存储介质,其具有其上存储的用于执行本文所述的任何其他计算机实现的操作的指令。
69.系统700还可以包括一个或多个输入/输出控制器716,用于接收和处理来自多个输入设备的输入,该输入设备为例如键盘、鼠标、触摸板、触摸屏、电子笔或其他类型的输入设备。类似地,输入/输出控制器716可以向显示器(例如计算机显示器、平板显示器、数字投影仪、打印机或其他类型的输出设备)提供输出。应当理解,系统700可以不包括图7所示的所有组件,可以包括图7未显式示出的其他组件,或者可以利用与图7所示完全不同的架构。
70.系统700还可以在存储设备718中存储代理服务124、计算组件134和/或数据存储132,用于执行上面参考图1-图6b描述的一些或所有技术。
71.此外,本文描述的架构和系统可以包括计算设备阵列,例如网关、路由器、网桥、调制解调器、无线接入点、网络电缆、线路驱动器、交换机、集线器、协议转换器、服务器、防火墙、网络地址转换器、多路复用器、网络接口控制器、无线网络接口控制器、终端适配器等。在一些示例中,网络包括数据中心或云计算网络,该网络包括服务器和存储在跨地理区域的多个数据中心的其他网络组件(例如,路由器、交换机等)。在这些实例中,云计算环境可以是分布式网络,用户(通常是客户)可以通过该分布式网络经由用户设备进行交互以管理或以其他方式与云计算网络提供的服务交互。云计算网络可以提供计算系统资源的按需可用性,例如数据存储、计算能力(例如,cpu、gpu等)、网络、数据库等,而无需用户直接主动管理。在一些示例中,云计算网络可以由服务提供商管理和维护,使得用户不必为他们的计算资源需求投资和维护计算基础设施。通常,可以向用户提供对云计算网络中的一部分计算资源的访问或分配使用。云计算网络可以基于各个用户的需求进行扩展,例如通过增加资源或减少资源。云计算网络的部分可以使用硬件虚拟化来分配,使得云计算网络的部分可以由用户配置和管理(例如,安全配置、负载平衡配置等)。然而,云计算网络不需要由服务提供商管理,可以由任何实体管理,包括运行应用或服务的用户自己。
72.这里描述的各种组件的实现是取决于计算系统的性能和其他要求的选择问题。因此,这里描述的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑以及它们的任何组合来实现。还应该理解,可以执行比图5和图6a-图6b所示更多或更少的操作,并且如本文所述。这些操作也可以并行执行,或者以与本文描述的那些不同的顺序执行。这些操作中的一些或全部也可以由除特定标识的组件之外的组件执行。尽管本公开中描述的技术参考特定组件,但在其他示例中,这些技术可以由更少的组件、更多的组件、不同的组件或组件的任何配置来实现。
73.尽管本发明是针对具体示例进行描述的,但应理解本发明的范围不限于这些具体示例。由于为适合特定操作要求和环境而变化的其他修改和改变对于本领域技术人员来说将是显而易见的,因此本发明不被认为限于为公开目的而选择的示例并且涵盖不构成背离本发明的真正精神和范围的所有改变和修改。
74.尽管本技术描述了具有特定结构特征和/或方法动作的实施例,但应当理解,权利要求并不一定限于所描述的特定特征或动作。相反,具体特征和动作仅仅是说明落入本技术的权利要求范围内的一些实施例。
再多了解一些

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

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

相关文献