CN111108474A - 通过云资源管理器管理加速器资源的技术 - Google Patents

通过云资源管理器管理加速器资源的技术 Download PDF

Info

Publication number
CN111108474A
CN111108474A CN201780094882.4A CN201780094882A CN111108474A CN 111108474 A CN111108474 A CN 111108474A CN 201780094882 A CN201780094882 A CN 201780094882A CN 111108474 A CN111108474 A CN 111108474A
Authority
CN
China
Prior art keywords
accelerator
task
node computing
computing device
image
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
Application number
CN201780094882.4A
Other languages
English (en)
Inventor
M·K·布汉达鲁
S·纳达图尔
J·格雷科
R·多布斯
Y·杜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN111108474A publication Critical patent/CN111108474A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5044Allocation 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 hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements

Abstract

用于管理加速器资源的技术包括云资源管理器(102),用于从多个节点计算设备(104)中的每一个接收加速器使用信息和待执行的任务的任务参数。云资源管理器(102)访问任务分配策略、基于任务参数和任务分配策略来确定多个节点计算设备(104)中的目的地节点计算设备(104),以及将任务分配给目的地节点计算设备(104)。

Description

通过云资源管理器管理加速器资源的技术
背景技术
与中央处理单元相比,某些计算任务可以由诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)或图形处理单元(GPU)之类的硬件加速器更快地执行。计算设备越来越多地采用硬件加速器,以便更快地执行合适的计算任务。
将硬件加速器并入到计算设备中的一个缺点在于硬件加速器可能在很多时间都未被使用。取决于计算设备正在执行的特定任务,硬件加速器有时可能经历高级别的使用,而在其他时间利用率可能较低,或者处于空闲状态,这是资源的低效率分配。另外,可能需要相当频繁地重新配置硬件加速器,这可能花费时间并且导致硬件加速器的较低的有效利用。
附图说明
在附图中,以示例方式而不是以限制方式例示出本文中所描述的概念。为说明简单和清楚起见,附图中所例示出的元件不一定是按比例绘制的。在认为适当的情况下,已在多个附图之间重复了附图标记以指示对应的或类似的元件。
图1是用于由云资源管理器管理资源的系统的至少一个实施例的简化框图;
图2是图1的云资源管理器的至少一个实施例的简化框图;
图3是图1的节点计算设备的至少一个实施例的简化框图;
图4是图1和2的云资源管理器的环境的至少一个实施例的简化框图;
图5是图1和3的节点计算设备的环境的至少一个实施例的简化框图;
图6是用于在图1、2和4的云资源管理器上分配任务的方法的至少一个实施例的简化流程图;
图7、8和9是通过图1、3和5的节点计算设备管理加速器资源的方法的至少一个实施例的简化流程图;
图10图示根据示例的用于通过链路而耦合到相应的网关的各个物联网(IoT)网络的域拓扑;
图11图示根据示例的云计算网络,该云计算网络与在该云计算网络的边缘处作为雾设备操作的IoT设备的网格网络通信;
图12图示根据示例的网络的框图,该网络图示大量IoT设备之间的通信;以及
图13图示根据示例的示例IoT处理系统架构的框图,在该示例IoT处理系统架构上可执行本文中所讨论的技术(例如,操作、过程、方法和方法论)中的任何一种或多种。
具体实施方式
尽管本公开的概念易于具有各种修改和替代形式,但是,本公开的特定实施例已作为示例在附图中示出并将在本文中详细描述。然而,应当理解,没有将本公开的概念限制于所公开的特定形式的意图,而相反,意图旨在涵盖符合本公开和所附权利要求书的所有修改、等效方案和替代方案。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可包括或可以不一定包括该特定特征、结构或特性。此外,此类短语不一定是指同一个实施例。进一步地,当结合实施例来描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例来实施此类特征、结构或特性均落在本领域技术人员的知识范围之内。附加地,应当领会,以“A、B和C中的至少一者”的形式包括在列表中的术语可意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。类似地,以“A、B或C中的至少一者”的形式列出的项可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。
在一些情况下,所公开的实施例能以硬件、固件、软件或其任何组合来实现。所公开的多个实施例也可被实现为由暂态或非暂态机器可读(例如,计算机可读)存储介质承载或存储于其上的可由一个或多个处理器读取并执行的指令。机器可读存储介质可被具体化为用于以可由机器读取的形式存储或传送信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性存储器、介质盘、或其他介质设备)。
在附图中,一些结构或方法特征可按特定布置和/或排序示出。然而,应当领会,此类特定布置和/或排序可以不是必需的。相反,在一些实施例中,能以与在示例性附图中示出的不同的方式和/或次序来布置此类特征。另外,在特定附图中包括结构或方法特征不意味着暗示在所有实施例中都需要此类特征,并且在一些实施例中,可以不包括此类特征,或此类特征可以与其他特征相结合。
现在参考图1,在使用中,用于管理加速器资源的说明性系统100包括云资源管理器102和一个或多个节点计算设备104,它们通过说明性网络106通信地连接在一起。说明性云资源管理器102被配置成用于管理一个或多个节点计算设备102上的加速器设备308,诸如现场可编程门阵列(FPGA)。每个说明性节点计算设备104监视其加速器设备308的使用,诸如通过跟踪加速器设备308上加载了什么加速器镜像或程序、加速器设备308上的空闲空间、加载的加速器镜像的使用频率等。每个说明性节点计算设备104将其加速器设备308的使用信息发送到云资源管理器102,该云资源管理器102存储每个节点计算设备104的加速器使用信息。
说明性云资源管理器102可以接收将由节点计算设备104中的一个的加速器设备308执行的任务的任务参数。任务可以是适合于在加速器设备308上执行的任何任务,诸如训练深度学习算法、执行区块链计算、执行k均值聚类等。任务参数可以由节点计算设备104之一或图1中未示出的其他计算设备发送。任务参数可包括待实现的加速器镜像或位流的规范、待处理的任务数据、专用硬件要求等。云资源管理器102分析任务参数并确定哪个(哪些)节点计算设备104将适合于执行任务。云资源管理器102可以考虑因素,诸如哪个(哪些)节点计算设备104已经具有在加速器设备308中加载的指定的加速器镜像或位流,这可能导致资源的更有效分配,因为加速器设备308的重新成像可能不是必需的。在进行此类分析时,云资源管理器102可以考虑任务分配策略,该任务分配策略可以指定关于应该如何分配任务的某些规则或优先级。在说明性实施例中,云资源管理器102通过将一个或多个节点计算设备104的列表或其他标识信息发送到将任务参数发送到云资源管理器102的作出请求的设备,来将任务分配给一个或多个节点计算设备104。作出请求的设备然后可以选择节点计算设备104之一来执行任务。附加地或可替代地,云资源管理器102可以通过直接将任务参数和其他相关信息发送到节点计算设备104来将任务直接分配给节点计算设备104。
如图1所示,系统100包括云资源管理器102、节点计算设备104和网络106。系统100可被具体化为数据中心、云计算系统、计算机群集等。应当理解,系统100的各个组件不必在物理上位于相同位置,而是可以散布在若干不同位置。
云资源管理器102可被具体化为能够执行本文中描述的功能的任何类型的计算或计算机设备,包括但不限于:计算机、服务器、机架式服务器、工作站、台式计算机、工作站、膝上型计算机、笔记本计算机、平板计算机、移动计算设备、可穿戴计算设备、网络设施、web装置、分布式计算系统、基于处理器的系统和/或消费电子设备。应当理解,在一些实施例中,云资源管理器102可以不排他地专用于执行本文所描述的云资源管理功能。例如,本文描述的云资源管理功能可以由与云资源管理器102上的其他进程或软件一起运行的虚拟机或容器来执行。
节点计算设备104可被具体化为能够执行本文中所描述的功能的任何类型的计算设备。例如,节点计算设备106可被具体化为刀片服务器、机架式服务器、台式计算机、蜂窝电话、智能电话、平板计算机、上网本、笔记本、超极本TM、膝上型计算机、个人数字助理、移动因特网设备、混合式设备、和/或任何其他计算/通信设备。
网络106可被具体化为能够促进云资源管理器102与节点计算设备104和/或其他远程设备之间的通信的任何类型的网络。例如,网络106可被具体化为或以其他方式包括:有线或无线局域网(LAN)、有线或无线广域网(WAN)、蜂窝网络、和/或诸如因特网之类的可公开地访问的全球网络。由此,网络106可包括任何数量的附加设备,以促进其间的通信,该附加设备诸如附加计算机、路由器和交换机。
现在参考图2,用于管理加速器资源的说明性云资源管理器102包括处理器202、存储器204、输入/输出(“I/O”)子系统206、数据存储208和网络接口控制器210。在一些实施例中,云资源管理器102可包括显示器212和外围设备214。当然,在其他实施例中,云资源管理器102可包括其他或附加的组件,诸如那些通常在典型计算设备(例如,各种输入/输出设备)中找到的组件。另外,在一些实施例中,说明性组件中的一个或多个可被合并在另一组件中,或者以其他方式来自另一组件的部分。例如,在一些实施例中,存储器204(或其诸部分)可以被合并在处理器202中。
处理器202可被具体化为能够执行本文中所描述的功能的任何类型的处理器。例如,处理器202可被具体化为(诸)单核或多核处理器、数字信号处理器、微控制器、或其他处理器或处理/控制电路。类似地,存储器204可被具体化为能够执行本文所描述功能的任何类型的易失性或非易失性存储器或数据存储。在操作中,存储器204可存储在云资源管理器102的操作过程中使用的各种数据和软件,诸如操作系统、应用、程序、库以及驱动程序。存储器204可经由I/O子系统206通信地耦合至处理器202,该I/O子系统206可被具体化为用于促进与处理器202、存储器204以及云资源管理器102的其他组件之间的输入/输出操作的电路和/或组件。例如,I/O子系统206可被具体化为或以其他方式包括:存储器控制器中枢、输入/输出控制中枢、固件设备、通信链路(即,点对点链路、总线链路、线路、电缆、光导、印刷电路板迹线等)和/或用于促进输入/输出操作的其他组件和子系统。在一些实施例中,I/O子系统206可形成芯片上系统(SoC)的部分,并可与云资源管理器102的处理器202、存储器204及其他组件一起被合并在单个集成电路芯片上。
数据存储208可被具体化为被配置成用于数据的短期或长期存储的任何类型的一个或多个设备,诸如例如,存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其他数据存储设备。网络接口控制器210可被具体化为能够通过网络106实现云资源管理器102与其他远程设备之间的通信的任何通信电路、设备或其集合。为这样做,网络接口控制器210可以使用任何合适的通信技术(例如,无线或有线通信)和相关联的协议(例如,以太网、
Figure BDA0002410602680000051
Figure BDA0002410602680000061
WiMAX等)来实现此类通信,这取决于例如网络的类型,网络的类型可被具体化为能够促进云资源管理器102与远程设备之间的通信的任何类型的通信网络。
在一些实施例中,云资源管理器102可包括显示器212,该显示器212被具体化为或以其他方式使用任何合适的显示技术,包括例如液晶显示器(LCD)、发光二极管(LED)显示器、阴极射线管(CRT)显示器、等离子体显示器和/或其他显示技术。显示器212可被用于例如向管理员显示信息。尽管在图2中示出与云资源管理器102是一体的,但是应当理解,在其他实施例中,显示器212可以远离云资源管理器102,但是在通信上耦合至云资源管理器102。
在一些实施例中,云资源管理器102可包括外围设备214,该外围设备214可包括任何数量的附加输入/输出设备、接口设备和/或其他外围设备。例如,在一些实施例中,外围设备214可包括触摸屏、图形电路、图形处理单元(GPU)和/或处理器图形、音频设备、话筒、相机、键盘、鼠标、网络接口和/或其他输入/输出设备、接口设备和/或外围设备。被包括在外围设备214中的特定设备可以取决于例如云资源管理器102的类型和/或预期用途。
现在参考图3,用于管理加速器资源的说明性节点计算设备104包括处理器302、存储器304、输入/输出(“I/O”)子系统306、一个或多个加速器设备308和网络接口控制器310。在一些实施例中,节点计算设备104可包括数据存储312、显示器214和外围设备316。当然,在其他实施例中,节点计算设备104可包括其他或附加的组件,诸如那些通常在典型计算设备(例如,各种输入/输出设备)中找到的组件。另外,在一些实施例中,说明性组件中的一个或多个可被合并在另一组件中,或者以其他方式来自另一组件的部分。例如,在一些实施例中,存储器304(或其诸部分)可以被合并在处理器302中。
处理器302可被具体化为能够执行本文中所描述的功能的任何类型的处理器。例如,处理器302可被具体化为(多个)单核或多核处理器、数字信号处理器、微控制器、或其他处理器或处理/控制电路。类似地,存储器304可被具体化为能够执行本文所描述功能的任何类型的易失性或非易失性存储器或数据存储。在操作中,存储器304可存储节点计算设备104的操作期间使用的各种数据和软件,诸如,操作系统、应用、程序、库、以及驱动程序。存储器304可经由I/O子系统306通信地耦合至处理器302,该I/O子系统306可被具体化为用于促进与处理器302、存储器304以及节点计算设备104的其他组件之间的输入/输出操作的电路和/或组件。例如,I/O子系统306可被具体化为或以其他方式包括:存储器控制器中枢、输入/输出控制中枢、固件设备、通信链路(即,点对点链路、总线链路、线路、电缆、光导、印刷电路板迹线等)和/或用于促进输入/输出操作的其他组件和子系统。在一些实施例中,I/O子系统306可以形成片上系统(SoC)的部分,并可与节点计算设备104的处理器302、存储器304及其他组件一起被合并在单个集成电路芯片上。
一个或多个加速器设备308可被具体化为被配置为或可配置为执行专用计算任务的任何类型的设备。例如,加速器设备1312可以特别适合于任务,诸如训练深度学习算法、执行区块链计算、执行k均值聚类、加密、图像处理等。加速器设备308可被具体化为:例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、图形处理单元(GPU)、通过可配置的数据交换进行通信的可配置的逻辑块阵列等。可重新配置的加速器设备308可加载定义加速器设备308的功能和/或设置的加速器镜像。例如,加速器镜像可配置FPGA中的逻辑门。加速器镜像也可被称为位流、程序等。在一些实施例中,加速器设备308可以以与处理器中的上下文切换相似的方式保存工作负载状态而无需改变加速器镜像。加速器设备308的每一个可具有尺寸可变化的多个可编程插槽。即,加速器设备308可被划分为不同尺寸的可编程插槽,该尺寸取决于加速器镜像。加速器设备308的每一个可能具有用于页入/页出(pagingin/out)加速器镜像的快速非易失性存储器,用作未被主动使用的镜像的保持区。在一些实施例中,代替或除了包括快速非易失性存储器的加速器设备308之外,节点计算设备104可包括快速非易失性存储器。加速器设备308可以经由诸如外围总线(例如,PCI Express总线)或处理器间互连(例如,芯片内互连(IDI)或快速路径互连(QPI))之类的高速连接接口)、结构互连(诸如
Figure BDA0002410602680000071
全向路径架构)或任何其他适当的互连耦合至处理器302。
网络接口控制器310可被具体化为能够通过网络106实现节点计算设备104与其他远程设备之间的通信的任何通信电路、设备或其集合。为这样做,网络接口控制器310可以使用任何合适的通信技术(例如,无线或有线通信)和相关联的协议(例如,以太网、
Figure BDA0002410602680000081
WiMAX等)来实现此类通信,这取决于例如网络的类型,网络的类型可被具体化为能够促进节点计算设备104与远程设备之间的通信的任何类型的通信网络。
在一些实施例中,节点计算设备104可包括数据存储312,其可被具体化为用于数据的短期或长期存储的任何类型的一个或多个设备,诸如例如,存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其他数据存储设备。
在一些实施例中,节点计算设备104可包括显示器314,该显示器314被具体化为或以其他方式使用任何合适的显示技术,包括例如液晶显示器(LCD)、发光二极管(LED)显示器、阴极射线管(CRT)显示器、等离子体显示器和/或其他显示技术。显示器314可被用于例如向管理员显示信息。尽管在图2中示出与节点计算设备104是一体的,但是应当理解,在其他实施例中,显示器314可以远离节点计算设备104,但是在通信上耦合至节点计算设备104。
在一些实施例中,节点计算设备104可包括外围设备316,该外围设备316可包括任何数量的附加输入/输出设备、接口设备和/或其他外围设备。例如,在一些实施例中,外围设备316可包括触摸屏、图形电路、图形处理单元(GPU)和/或处理器图形、音频设备、话筒、相机、键盘、鼠标、网络接口和/或其他输入/输出设备、接口设备和/或外围设备。被包括在外围设备316中的特定设备可以取决于例如节点计算设备104的类型和/或预期用途。
现在参考图4,在使用中,云资源管理器102建立用于管理加速器资源的环境400。如下所述,云资源管理器102确定将任务分配给加速器设备308的有效方式。在说明性环境400中,云资源管理器102包括加速器管理器402、网络接口管理器404、加速器使用信息406、加速器镜像408和任务分配策略410。此外,加速器管理器402包括加速器使用信息聚合器412和任务分配器414。加速器管理器402、网络接口管理器404、加速器使用信息406、加速器镜像408、任务分配策略410、加速器使用信息聚合器412和任务分配器414中的每一个可被具体化为硬件、软件、固件或其组合。另外,在一些实施例中,说明性组件之一可以形成另一组件的一部分。
在一些实施例中,加速器管理器402可被实现为适于被查询的守护进程或驱动程序,诸如RESTful接口。加速器管理器402通过将任务分配给节点计算设备104的加速器设备308或将具有合适的加速器设备308的节点计算设备104的标识信息提供给请求者来管理系统100内的加速器资源。为此,加速器使用信息聚合器412跟踪系统100内的加速器使用信息406。加速器使用信息406可包括从节点计算设备104接收的遥测数据,诸如加速器镜像的部署属性,诸如部署什么加速器镜像,哪个节点计算设备104加载了给定的加速器镜像、加速器镜像是否可共享(任何人可用,或者仅对发送任务的用户或计算设备可用)、每个加载的加速器镜像被使用的时间比例、每个加速器设备308中的空闲空间量、使用加速器镜像的相关成本、硬件参数(诸如速度、尺寸、存储器、所需功率等)、当前任务的优先级以及某些加速器镜像的使用频率或最后一次使用加速器镜像的时间。加速器使用信息聚合器412聚合加速器使用信息406,以便确定将任务分配给节点计算设备104的加速器设备308的有效方式。例如,加速器使用信息聚合器412可以确定哪些加速器设备308上当前加载了哪些加速器镜像并确定使用程度,以确定是否应将任务分配给包含该加速器镜像的特定加速器设备308来执行任务。加速器使用信息406可以由云资源管理器102从节点计算设备104拉取,或者可以由节点计算设备104推送到云资源管理器102。
如上所述,加速器镜像408可被具体化为位流、程序等。加速器镜像408可被存储在云资源管理器102或节点计算设备104上。云资源管理器102或节点计算设备104可以具有通常可用的存储库或库或流行的加速器镜像408。在一些实施例中,如果加速器镜像408用于先前的任务请求中,则可以存储它们,并且仅通过密码可用等。云资源管理器102可以存储加速器镜像408的元数据,该元数据包括尺寸、功率使用以及是否允许共享相对应的加速器镜像。
与聚合加速器使用信息406一起,任务分发服务器414接收传入的任务。可以从用户、同一数据中心中的另一设备或与系统100通信的任何计算设备接收这些任务。任务的接收包括诸如任务数据之类的任务参数、应使用哪个加速器镜像408来执行任务、硬件资源需求、加速器设备308之外所需的资源(诸如在加速器设备308执行期间待运行的虚拟机)等。在一些实例中,任务分发器414可以接收加速器镜像408来执行任务。在一些实施例中,多个加速器镜像408可被存储在节点计算设备104上以被选择来执行任务。任务分配器414基于任务参数和任务分配策略410来将进入的任务分配给合适的节点计算设备104,该任务参数和任务分配策略410可以由管理员或例如服务水平协议确定。任务分配策略410可包括使用与高速缓存管理策略类似的指标和技术来指定特定目标的策略,诸如最近最少使用(LRU)、最近最多使用(MRU)、最不频繁使用(LFU)和处理优先级。目标可以是例如加速器设备308中的最少剩余空间、加速器设备308中的最多剩余空间、符合功率预算(其中给定的节点计算设备104或加速器设备308可以具有特定的功率预算)。在一些实施例中,调度决定可以由云资源管理器102、节点计算设备104执行,或者可以在云资源管理器102与节点计算设备104之间共同执行。附加地或可替代地,第三方调度决策系统可以具有用于确定何时启动特定算法的另一个实例的阈值(例如,请求的使用量超过可用量的90%)。任务的示例分布可包括任务分配器414查明哪些节点计算设备104当前具有所请求的加速器镜像408来执行任务并且具有在加速器镜像408上运行任务的可用时间。任务分配器414可以考虑的若干因素包括哪些节点计算设备104具有所请求的加速器镜像408、所请求的加速器镜像408的资源可用性(如果存在队列)、队列多长、所请求的加速器镜像408是否可能不久被换出以及空闲资源可用性以及加速器镜像408是否可以适合该空闲资源。然而,如果没有可用的空闲资源,则任务分配器414可以确定具有最短队列或具有比当前任务优先级低的任务的节点计算设备104。当接收到不适合任何可用空闲块的加速器工作负载或任务时,任务分配器414可以确定主机是否具有足够的总空闲空间,以及是否进行碎片整理然后主控加速器镜像408,或者如果存在由不频繁使用的加速器镜像408当前占用的具有足够尺寸的连续块,则任务分配器414可以页出不频繁使用的加速器镜像408,并启动新任务,并在必要时页回先前的加速器镜像408。在一些实施例中,任务分配器414可以基于高级别使用细节来进行分配/推荐,并将细节交托给节点计算设备104,诸如哪些专用加速器设备308应当执行任务以及如何对加速器设备308进行重新映像或碎片整理。替代地,任务分配器414可以对如何以及何时在节点计算设备104上执行任务进行更多或完全的控制。
网络接口管理器404管理云资源管理器102与节点计算设备104和网络106上的其他设备之间的通信。为此,网络接口管理器404可以使用NIC 210来与系统100的其他设备进行通信。网络接口管理器404可以发送和接收适当的数据以执行本文描述的功能。
现在参考图5,在使用中,节点计算设备104建立用于管理加速器资源的环境500。如下所述,节点计算设备104确定将任务分配给加速器设备308的有效方式。在说明性环境500中,节点计算设备104包括加速器管理器502、网络接口管理器504、加速器镜像506和任务调度策略508。此外,加速器管理器502包括加速器使用监视器510、任务调度器512和任务管理器514。加速器管理器502、网络接口管理器504、加速器镜像506、任务调度策略508、加速器使用监视器510、任务调度器512和任务管理器514中的每一个可被具体化为硬件、软件、固件或其组合。另外,在一些实施例中,说明性组件之一可以形成另一组件的一部分。
加速器管理器402通过将任务分配给加速器设备308或将节点计算设备104的加速器设备308的信息提供给请求者来管理节点计算设备104内的加速器资源。加速器使用监视器510可以监视和报告加速器设备308的使用、碎片、哪些加速器镜像被部署在何处、功率使用水平等。如果节点计算设备104超出功率预算,则加速器使用监视器510可以触发警报、取消操作或采取其他适当动作。加速器使用监视器510还可以监视和报告资源可用性和使用,以供调度决策、计费目的、库存管理等。节点计算设备104可以将更改推送到云资源管理器102,或者云资源管理器102可以从节点计算设备104拉取更改。
任务调度器512可以接收由云资源管理器102分配的任务。任务调度器512可以接收诸如任务数据之类的任务参数、应该使用加速器镜像506中的哪个来执行任务、硬件资源需求、加速器设备308之外所需的资源(诸如在加速器设备308执行期间待运行的虚拟机)等。在一些实例中,任务调度器512可以接收加速器镜像506来执行任务。如上所述,加速器镜像506可被具体化为位流、程序等。在一些实施例中,一个或多个加速器镜像506可被存储在节点计算设备104上以被选择来执行任务。节点计算设备104可以具有通常可用的存储库或库或流行的加速器镜像506和/或本地缓存的最近已经使用或频繁使用的加速器镜像506。在一些实施例中,如果加速器镜像506用于先前的任务请求中,则可以存储它们,并且仅仅在认证和授权过程等之后才可用等。节点计算设备104可以存储加速器镜像506的元数据,该元数据包括尺寸、功率使用以及是否允许共享相对应的加速器镜像。任务调度器512可以基于优先级、任务调度策略508、计费、当前作业的使用等来调度任务,并且可以将任务放入队列中、选择特定的插槽等。任务调度策略508可使用与高速缓存管理策略类似的技术,诸如最近最少使用(LRU)、最近最多使用(MRU)、最不频繁使用(LFU)和处理优先级。在一些实施例中,任务调度器512可以使云资源管理器102参与任务调度。
任务管理器514可以通过加速器设备308建立并执行任务。为了建立任务,任务管理器514可以加载加速器镜像506,这可能需要对加速器设备308进行碎片整理。在一些实施例中,具有或不具有状态和上下文数据的换出镜像可以被保存到快速非易失性存储器中以用于快速地换入/换出加速器镜像506。任务的建立还可包括加载虚拟机(VM)或容器以与加速器设备308交互。建立可包括在同一加速器镜像506上切换出当前正在运行的任务,与处理器中的上下文切换类似。任务管理器514可以将结果数据发送到作出请求的计算设备。
网络接口管理器504管理节点计算设备104与云资源管理器102和网络106上的其他设备之间的通信。为此,网络接口管理器504可以使用NIC 310来与系统100的其他设备进行通信。网络接口管理器504可以发送和接收适当的数据以执行本文描述的功能。
现在参看图6,在使用中,云资源管理器102可执行用于管理加速器资源的方法600。说明性方法600开始于图6的框602,在图6中,云资源管理器102从节点计算设备104接收加速器使用信息。为此,节点计算设备104可以将加速器使用信息发送到云资源管理器102,或者云资源管理器102可以从节点计算设备104拉取加速器使用信息。加速器使用信息可包括加速器镜像的部署属性,诸如部署了什么加速器镜像、哪个节点计算设备104正在执行哪些加速器镜像、加速器镜像是否可共享(任何人可用,或者仅对发送任务的用户或计算设备可用)、功能的主机平台利用率、每个加速器设备的使用程度或空闲空间、功能的相关成本、硬件参数(诸如速度、尺寸、存储器、所需的功率等)、正在执行的任务的优先级以及某些加速器镜像的使用频率或最后一次使用加速器镜像的时间。
在框604中,云资源管理器102可以接收待执行的任务的任务参数。任务参数的接收包括:接收诸如待应用的通用算法之类的任务数据、待在期望的平台上执行的指定实例、应使用哪个加速器镜像来执行任务、硬件资源需求、加速器设备之外所需的资源(诸如在加速器设备执行期间待运行的虚拟机)等。云资源管理器102可以管理任务或仅响应对推荐的请求。在一些实施例中,在框606中,云资源管理器102可以接收待用于所接收的任务的加速器镜像。
在框608中,云资源管理器102访问任务分配策略。可以由例如管理员或服务水平协议确定的任务分配策略可包括使用与高速缓存管理策略类似的指标和技术来指定特定目标的策略,诸如最近最少使用(LRU)、最近最多使用(MRU)、最不频繁使用(LFU)和处理优先级。目标可以是例如加速器设备中的最少剩余空间、加速器设备中的最多剩余空间、符合功率预算(其中给定的节点计算设备104或加速器设备可以具有特定的功率预算)、何时添加新的实例、当实例不适于当前配置时做什么(诸如对加速器设备308进行碎片整理或页出加速器镜像)。
在框610中,云资源管理器102确定可能的目的地节点计算设备104。为此,在框612中,云资源管理器102确定具有兼容硬件的节点计算设备104。可以考虑的云资源管理器102的目标是最少剩余空间或最多剩余空间以及功率注意事项。在框614中,云资源管理器102分析节点计算设备104中的加速器设备308的当前使用。在框616中,云资源管理器102分析待使用的加速器镜像的当前部署。如果当前未部署待使用的加速器镜像,则云资源管理器102可通过进行碎片整理或页出加速器镜像来确定如何处理没有执行任务所需的加速器镜像的足够大的可用块。云资源管理器102可以确定应该添加新实例,并且忽略加速器镜像的不可共享实例。例如,云资源管理器102可以在框610中确定所请求的加速器镜像的实例已经被加载并且当前未被使用和可共享,并且云资源管理器102然后可以确定将是合适的目的地的相对应的节点计算设备104。在另一个示例中,云资源管理器102可以在框610中确定所请求的加速器镜像的实例已经被加载并且正在由具有比传入任务低的优先级的任务使用,并且云资源管理器102然后可以确定将是合适的目的地的相对应的节点计算设备104。在另外的示例中,云资源管理器102可以在框610中确定所请求的加速器镜像的实例未加载在给定的加速器设备308中,但是在加速器设备308上存在用于加速器镜像的空闲空间,并且云资源管理器102然后可以确定将是合适的目的地的相对应的节点计算设备104。在又一示例中,云资源管理器102可以在框610中确定如果加速器设备被进行碎片整理,则给定的加速器设备308中将有空闲空间,并且云资源管理器102然后可以确定将是合适的目的地的相对应的节点计算设备104。
在框618中,云资源管理器102将任务分配给节点计算设备104。在说明性实施例中,为此,在框620中,云资源管理器102将目的地节点计算设备104的列表发送给作出请求的设备,该作出请求的设备然后可以与节点计算设备104直接进行通信。附加地或可替代地,在一些实施例中,在框622中,云资源管理器102可以将任务参数直接发送给节点计算设备104,以用加速器设备执行任务。
现在参看图7,在使用中,节点计算设备104可执行用于管理加速器资源的方法700。说明性方法700开始于框702,在框702中,节点计算设备104确定加速器使用信息。加速器使用信息可包括加速器镜像的部署属性,诸如部署了什么加速器镜像、哪个节点计算设备104正在执行加速器镜像、加速器镜像是否可共享(任何人可用,或者仅对发送任务的用户或计算设备可用)、加速器镜像的利用、每个加速器设备的使用程度或空闲空间、功能的相关成本、硬件参数(诸如速度、尺寸、存储器、所需的功率等)、当前正在执行的任务的优先级以及某些加速器镜像的使用频率或最后一次使用该加速器镜像的时间。
在框704中,节点计算设备104将加速器使用信息发送给云资源管理器102。加速器使用信息的传输可以由云资源管理器102或由节点计算设备104来初始化。
在框706中,节点计算设备104接收待执行的任务的任务参数。在一些实施例中,节点计算设备104可以从云资源管理器102接收任务。替代地,节点计算设备104可以直接从作出请求的计算设备接收任务。示例任务可包括深度学习算法、区块链计算、计算k-均值等。在一些实施例中,在框708中,节点计算设备104可以接收待用于任务的加速器镜像。
在框710中,节点计算设备104访问任务调度策略。任务调度策略可使用与高速缓存管理策略类似的技术,诸如最近最少使用(LRU)、最近最多使用(MRU)、最不频繁使用(LFU)和处理优先级。任务调度策略可以指定某些目标,诸如加速器设备308中的最少剩余空间、加速器设备308中的最大剩余空间、符合功率预算(其中给定节点计算设备104或加速器设备308可以具有特定的功率预算)等。
在框712中,节点计算设备104调度所请求的任务。在框714中,节点计算设备104确定待使用的加速器镜像的实例是否可用。在框716中,节点计算设备104确定是否应该启动加速器镜像的新实例。如果对加速器镜像的给定实例的请求超过加速器镜像的容量,则节点计算设备104可以确定应该启动加速器的新实例。在框718中,节点计算设备104确定是否应该进行碎片整理以建立加速器镜像。
在框720中,节点计算设备104确定是否该执行任务(例如,先前调度的任务是否已完成、调度的时间是否已经到来、或者是否已满足调度中所确定的条件的集合)。如果节点计算设备104确定是时候执行所请求的任务,则方法700前进到图8的框722。但是,如果节点计算设备104确定不是该任务要执行的时间,则方法700循环回到框720的开始以连续检查直到该任务要执行的时间。
在框722中,在图8中,节点计算设备104确定是否页出当前任务。如果节点计算设备104确定需要页出,则在框724中,节点计算设备104页出当前任务。为此,节点计算设备104可以保存加速器设备308上当前正在执行的任务的上下文数据。在一些实施例中,节点计算设备104可确定当前正在执行的任务应移至第二节点计算设备104。在此类实施例中,节点计算设备104可将上下文数据发送至第二计算设备104,然后第二计算设备104可以继续执行任务。但是,如果节点计算设备104确定不需要页出,则方法700前进到框726。
在框726中,节点计算设备104确定是否对加速器设备进行碎片整理。如果节点计算设备104确定对加速器设备进行碎片整理,则在框728中,节点计算设备对加速器设备进行碎片整理。如果加速器设备308具有一些空闲空间,但是空闲空间分布在加速器设备308上加载的其他加速器镜像的间隙之间,则节点计算设备104可以确定应进行碎片整理。通过将加速器镜像移动得更近,可以将加速器设备308的空闲空间组合在一起,从而允许加载新加速器镜像。然而,如果节点计算设备104确定不需要对加速器设备进行碎片整理,则方法700前进到框730。
在框730中,节点计算设备104确定是否页出当前的加速器镜像。如果节点计算设备104确定页出当前加速器镜像,则在框732中,节点计算设备页出当前加速器镜像。节点计算设备104可以将当前加速器镜像页出到非易失性闪存。如果节点计算设备104确定不需要页出当前加速器镜像,则节点计算设备104前进到框734。
在框734中,节点计算设备104确定在要执行任务的地方是否已加载加速器镜像。如果节点计算设备104确定在要执行任务的地方没有加载加速器镜像,则在框736中,节点计算设备104加载加速器镜像。如果节点计算设备104确定已加载加速器镜像,则方法700前进到图9的框738。
在框738中,在图9中,节点计算设备104准备要执行的任务。为此,节点计算设备104可以加载任务参数。另外,节点计算设备104可以加载虚拟机(VM)或容器以与加速器设备交互。
在框740中,节点计算设备104在加速器设备上执行任务。在一些实施例中,节点计算设备104可以向云资源管理器102和/或作出请求的设备发送任务已被启动的通知。在框742中,在加速器设备上执行任务的同时,节点计算设备104可监视功率使用。
在框744中,节点计算设备104确定功率使用是否高于阈值。如果节点计算设备104确定功率使用高于阈值,则在框746中,节点计算设备触发功率警报。响应于功率警报,节点计算设备104可以停止任务、暂停任务或采取其他适当的措施。尽管示出为发生在框746中,但是应当理解,在一些实施例中,功率监视可以连续、持续或周期性地执行。如果节点计算设备104确定功率使用不高于阈值,则在框748中,节点计算设备104继续执行任务并将结果数据发送到作出请求的设备。结果数据可被发送到云资源管理器102或结果数据可被直接发送到作出请求的设备。当然,应当理解,任务不一定一次全部执行,而是可以被其他任务打断,并且可以在稍后的时间页出并页回。在一些实施例中,可以在多个不同的时间生成结果数据,并且不一定仅在任务完成时才发送结果数据。
现在参见图10-13,在一些实施例中,上述技术中的一些或全部可被具体化为一个或多个物联网设备或与一个或多个物联网设备交互。图10图示用于通过链路而耦合到相应的网关的各个物联网(IoT)网络的示例域拓扑。物联网(IoT)是这样的概念,其中,大量计算设备互连至彼此并互连至因特网,以便在非常低的级别上提供功能和数据采集。因此,如本文中所使用,IoT设备可包括执行功能(诸如感测或控制,等等)、与其他IoT设备和范围更广的网络(诸如因特网)进行通信的半自主设备。
IoT设备常在存储器、尺寸或功能方面受限,从而允许部署较大数量的设备,以实现与较少数量的较大设备类似的成本。然而,IoT设备可以是智能电话、膝上型设备、平板、或PC、或其他较大的设备。而且,IoT设备可以是虚拟设备,诸如智能电话或其他计算设备上的应用。IoT设备可包括IoT网关,这些IoT网关用于将IoT设备耦合至其他IoT设备并耦合至云应用,以进行数据存储、过程控制,等等。
IoT设备的网络可包括商用和家用自动化设备,诸如给水系统、配电系统、管道控制系统、工厂控制系统、灯开关、恒温器、锁、相机、警报、运动传感器,等等。IoT设备可以是通过远程计算机、服务器和其他系统能访问的,从而例如控制系统或访问数据。
因特网和类似网络的未来增长可涉及非常大量的IoT设备。相应地,在本文中讨论的技术的情境中,用于此类未来联网的大量创新将解决所有这些层无障碍地增长、发现并制造能访问的经连接资源以及支持隐藏并分隔经连接资源的能力的需求。可使用任何数量的网络协议和通信标准,其中,每种协议和标准被设计成解决特定的目标。此外,这些协议是支持无论地点、时间或空间而进行操作的人类能访问服务的结构的部分。创新包括:服务交付和相关联的基础结构,诸如,硬件和软件;安全增强;以及基于在服务水平和服务交付协议中指定的服务质量(QoS)条款的服务提供。如将理解的那样,使用诸如在图10和图11中介绍的IoT设备和网络那样的IoT设备和网络在包括有线和无线技术的组合的异构连接性网络中呈现出大量新挑战。
图10具体提供可用于大量物联网(IoT)网络的域拓扑的简化图,大量IoT网络包括IoT设备1004,并且IoT网络1056、1058、1060、1062通过主干链路1002耦合至相应的网关1054。例如,大量IoT设备1004可与网关1054通信,并且可通过网关1054彼此通信。为了简化该图,不是每个IoT设备1004或通信链路(例如,链路1016、1022、1028或1032)都被标记。主干链路1002可包括任何数量的有线或无线技术(包括光学网络),并且可以是局域网(LAN)、广域网(WAN)或因特网的部分。此外,此类通信链路促进IoT设备1004与网关1054两者之间的光学信号路径,包括使用促进各种设备的互连的复用/解复用组件。
网络拓扑可包括任何多种类型的IoT网络,诸如,配备有使用蓝牙低能量(BLE)链路1022的网络1056的网格网络。可能存在的其他类型的IoT网络包括:用于通过IEEE802.11(Wi-Fi)链路1028与IoT设备1004通信的无线局域网(WLAN)网络1058;用于通过LTE/LTE-A(4G)或5G蜂窝网络与IoT设备1004通信的蜂窝网络1060;低功率广域(LPWA)网1062,例如,与由LoRa联盟颁布的LoRaWan规范兼容的LPWA网络;或低功率广域网(LPWAN)网络上的IPv6,其与由因特网工程任务组(IETF)颁布的规范兼容。此外,各个IoT网络可使用任何数量的通信链路与外部网络提供商(例如,层2或层3提供商)通信,这些通信链路诸如,LTE蜂窝链路、LPWA链路、或基于IEEE 802.15.4标准的链路(诸如,
Figure BDA0002410602680000181
)。各个IoT网络也可伴随着各种网络和网际应用协议(诸如,受约束的应用协议(CoAP))的使用来操作。各个IoT网络还可与协调器设备集成,这些协调器设备提供链路链,该链路链形成经链接的设备和网络的集群树(cluster tree)。
这些IoT网络中的每一个可为新技术特征(诸如,如本文中所描述的那些技术特征)提供机会。改进的技术和网络可实现设备和网络的指数式增长,包括将IoT网络用作雾设备或雾系统。随着此类改进技术的使用增长,可在无需直接的人类干预的情况下开发IoT网络以实现自管理、功能进化和协同。改进的技术甚至可使IoT网络能够在没有集中式受控的系统的情况下运作。相应地,本文中描述的改进的技术可用于远超当前实现方式地使网络管理和操作功能自动化并增强网络管理和操作功能。
在示例中,IoT设备1004之间的(诸如,骨干链路1002上的)通信可受分散化系统保护以进行认证、授权和记账(AAA)。在分散化AAA系统中,可跨互连的异构网络基础结构实现分布式支付、信贷、审计、授权和认证系统。这允许系统和网络迈向自主操作。在这些类型的自主操作中,机器甚至可订立人力资源合约,并且与其他机器网络商议伙伴关系。这可允许针对概括的计划服务水平协议实现共同目标和均衡的服务交付,并且实现提供计量、测量、可追溯性和可跟踪性的解决方案。新供应链结构和方法的产生可在没有任何人类参与的情况下使大量服务能够被产生、被挖掘价值以及坍塌。
此类IoT网络可进一步通过将感测技术(诸如,声、光、电子通信量、面部和模式识别、嗅觉、振动)集成到IoT设备之间的自主组织中而进一步被增强。对传感系统的集成可允许对于针对合同服务目标、基于编排和服务质量(QoS)的分群以及资源融合的服务交付的系统性的和自主的通信和协调。基于网络的资源处理的单独的示例中的一些包括以下示例。
网格网络1056例如可由执行串联式数据-信息变换的系统来增强。例如,包括多链路网络的处理资源的自形成的链可按照高效的方式分布原始数据向信息的变换、在资产和资源之间进行区分的能力以及对每一者的相关联的管理。此外,可插入基于基础结构和资源的恰当组件的信任和服务索引,以改善数据完整性、质量、保证并递送数据置信度的度量。
WLAN网络1058例如可使用执行标准转换的系统以提供多标准连接性,从而实现使用不同协议进行通信的IoT设备1004。进一步的系统可提供跨多标准基础结构的无缝的互连接性,该多标准基础结构包括可见的因特网资源和隐藏的因特网资源。
蜂窝网络1060中的通信例如可由卸载数据的系统、将通信延伸至更远程的设备的系统或卸载数据的系统和将通信延伸至更远程的设备的系统两者来增强。LPWA网络1062可包括执行非网际(IP)至IP互连、寻址和路由的系统。此外,IoT设备1004中的每一个可包括用于与那个设备进行广域通信的适当的收发机。此外,每个IoT设备1004可包括用于使用附加的协议和频率进行通信的其他收发机。关于图12和13中所描绘的IoT处理设备的通信环境和硬件进一步讨论了这一点。
最终,可装备IoT设备的集群以与其他IoT设备以及与云网络通信。这可允许IoT设备在多个设备之间形成自组织(ad-hoc)网络,从而允许它们充当单个设备,该单个设备可被称为雾设备。下面进一步参考图11来讨论该配置。
图11图示云计算网络,该云计算网络与在该云计算网络的边缘处作为雾设备操作的IoT设备(设备1102)的网格网络通信。IoT设备的网格网络可被称为在云1100的边缘处操作的雾1120。为了简化该图,没有对每个IoT设备1102进行标记。
可以将雾1120认为是大规模地互连的网络,其中数个IoT设备1102例如通过无线电链路1122与彼此进行通信。作为示例,该经互连的网络可使用由开放连接性基金会TM(OCF)发布的互连规范来促进。该标准允许设备发现彼此并建立通信以用于互连。也可使用其他互连协议,包括例如,最优链路状态路由(OLSR)协议、或移动自组织联网更优方案(B.A.T.M.A.N)路由协议、或OMA轻量型M2M(LWM2M)协议,等等。
尽管在本示例中展示三种类型的IoT设备1102:网关1104、数据聚合器1126、以及传感器1128,但可以使用IoT设备1102和功能的任何组合。网关1104可以是提供云1100与雾1120之间的通信的边缘设备,并且还可为从传感器1128获得的数据(诸如,运动数据、流数据、温度数据等)提供后端处理功能。数据聚合器1126可从任何数量的传感器1128收集数据,并执行后端处理功能以用于分析。结果、原始数据或这两者可通过网关1104传递至云1100。传感器1128可以是例如能够既收集数据又处理数据的完整的IoT设备1102。在一些情况下,传感器1128在功能上可能更受限制,该功能例如,收集数据并允许数据聚合器1126或网关1104处理该数据。
来自任何IoT设备1102的通信可以沿着IoT设备1102中的任何设备之间的方便路径(例如,最方便的路径)传递以到达网关1104。在这些网络中,互连的数目提供了大量冗余,这允许即使在损失数个IoT设备1102的情况下也维持通信。此外,网格网络的使用可允许使用功率非常低或位于距基础结构一定距离的IoT设备1102,因为连接到另一个IoT设备1102的距离可能比连接到网关1104的距离小得多。
从这些IoT设备1102提供的雾1120可以被呈现给云1100中的设备(诸如,服务器1106)作为位于云1100的边缘处的单个设备,例如,雾设备。在该示例中,来自雾设备的警报可以被发送而不被识别为来自雾1120内的特定IoT设备1102。按此方式,雾1120可被视为分布式平台,该分布式平台提供计算和存储资源以执行处理或数据密集型任务(诸如,数据分析、数据聚合和机器学习,等等)。
在一些示例中,可以使用命令性编程风格来配置IoT设备1102,例如,每个IoT设备1102具有特定功能和通信伙伴。然而,形成雾设备的IoT设备1102能以声明性编程风格配置,从而允许IoT设备1102重新配置它们的操作和通信,诸如,响应于条件、查询和设备故障来确定所需的资源。作为示例,来自位于服务器1106处的用户关于由IoT设备1102监测的装备子集的操作的查询可以导致雾1120设备选择回答该查询所需的IoT设备1102,诸如特定的传感器1128。然后,在由雾1128设备发送到服务器1106以回答该查询之前,可由传感器1128、数据聚合器1126或网关1104的任何组合来聚合并分析来自这些传感器1120的数据。在该示例中,雾1120中的IoT设备1102可以基于查询来选择所使用的传感器1128,诸如添加来自流量传感器或温度传感器的数据。而且,如果IoT设备1102中的一些不可操作,则雾1120设备中的其他IoT设备1102可以提供类似的数据(如果可得到)。
在其他示例中,上面描述的操作和功能可由电子处理系统的示例形式的IoT设备机器来具体化,在该电子处理系统内,可执行指令序列的集合以使该电子处理系统执行根据示例实施例的本文中讨论的方法中的任一方法。该机器可以是IoT设备或IoT网关,包括由以下各项的多个方面具体化的机器:个人计算机(PC)、平板PC、个人数字助理(PDA)、移动电话或智能电话、或能够执行指定要由该机器采取的动作的指令(顺序地或以其他方式)的任何机器。而且,尽管在上述示例中仅描绘并引用了单个机器,但是也应当认为此类机器包括单独地或联合地执行一组(或多组)指令以执行本文中所讨论的方法中的任何一种或多种方法的机器的任何集合。而且,对于基于处理器的系统的这些示例和类似示例应当被认为包括由处理器(例如,计算机)控制或操作以单独地或联合地执行指令来执行本文中所讨论的方法中的任何一种或多种方法的一个或多个机器的任何集合。
图12图示与数个物联网(IoT)设备通信的云计算网络或云1200的图。云1200可表示因特网,或者可以是局域网(LAN)、或广域网(WAN),诸如,用于公司的专属网络。IoT设备可包括按各种组合分组的任何数量的不同类型的设备。例如,交通控制组1206可包括沿城市中的街道的IoT设备。这些IoT设备可包括停车灯、交通流量监视器、相机、天气传感器,等等。交通控制组1206或其他子组可通过有线或无线链路1208(诸如LPWA链路、光学链路,等等)与云1200通信。进一步地,有线或无线子网1212可允许IoT设备诸如通过局域网、无线局域网等等来彼此通信。IoT设备可使用另一设备(诸如网关1310或1328)来与远程位置(诸如云1300)通信;IoT设备也可使用一个或多个服务器1330来促进与云1300或与网关1310的通信。例如,一个或多个服务器1330可充当中间网络节点以支持在局域网之间的局部边缘云或雾实现。而且,所描绘的网关1328可在诸如具有各种IoT设备1314、1320、1324的云-网关-许多边缘设备配置中操作,各种IoT设备1314、1320、1324约束于云1300中的资源的分配和使用,或对于云1300中的资源的分配和使用是动态的。
IoT设备的其他示例组可包括远程气象站1214、本地信息终端1216、警报系统1218、自动化柜员机1220、警报面板1222或移动车辆(诸如,应急车辆1224或其他车辆1226),等等。这些IoT设备中的每一个可与其他IoT设备、与服务器1204、与另一IoT雾设备或系统(未示出但在图11中描绘)、或与其中的组合通信。这些IoT设备的组可部署在各种住宅、商业和工业设定(包括私有环境或公共环境两者)中。
如从图12可见,大量的IoT设备可通过云1200进行通信。这可允许不同的IoT设备自主地请求信息或将信息提供给其他设备。例如,IoT设备的组(例如,交通控制组1206)可从可在没有人类干预的情况下提供预报的远程气象站1214的组请求当前的天气预报。而且,可由自动化柜员机1220向应急车辆1224警告盗窃在进行中。当应急车辆1224朝自动化柜员机1220行进时,它可访问交通控制组1206以请求清空该位置,例如,通过在足够的时间内亮起红灯以阻止交叉路口处的交叉交通流,以使应急车辆1224能够畅通无阻地进入该交叉路口。
可装备IoT设备的集群(诸如,远程气象站1214或交通控制组1206)以与其他IoT设备以及与云1200进行通信。这可允许IoT设备在多个设备之间形成自组织网络,从而允许它们充当单个设备,该单个设备可被称为雾设备或系统(例如,如上文中参照图11所描述)。
图13是可存在于IoT设备1350中用于实现本文中描述的技术的组件的示例的框图。IoT设备1350可包括在上文公开内容中的示例中示出或在上文公开内容中引用的组件的任何组合。这些组件可被实现为适用于IoT设备1350中的IC、IC的部分、分立电子器件、或其他模块、逻辑、硬件、软件、固件或其组合,或作为以其他方式被并入在更大的系统的机架内的组件。此外,图13的框图旨在描绘IoT设备1350的组件的高级视图。然而,可省略所示出的组件中的一些组件,可存在附加的组件,并且所示出的组件的不同布置可在其他实现方式中发生。
IoT设备1350可包括处理器1352,该处理器1352可以是微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器或其他已知的处理元件。处理器1352可以是芯片上系统(SoC)的部分,在该SoC中,处理器1352和其他组件被形成到单个集成电路或单个封装中,诸如来自英特尔的爱迪生TM(EdisonTM)或伽利略TM(GalileoTM)SoC板。作为示例,处理器1352可包括基于
Figure BDA0002410602680000231
架构酷睿TM(CoreTM)的处理器(诸如,QuarkTM、凌动TM(AtomTM)、i3、i5、i7或MCU类处理器)、或可从加利福尼亚州圣克拉拉市的
Figure BDA0002410602680000241
公司获得的另一此类处理器。然而,可使用任何数量的其他处理器,诸如可从加利福尼亚州桑尼威尔市的超微半导体公司(AMD)获得的处理器、来自加利福尼亚州桑尼威尔市的MIPS技术公司的基于MIPS的设计、许可自ARM控股有限公司的基于ARM的设计,或从上述各公司的客户、被许可方或采纳方获得的处理器。处理器可包括诸如以下单元:来自
Figure BDA0002410602680000242
公司的A5-A10处理器、来自
Figure BDA0002410602680000243
技术公司的骁龙TM(SnapdragonTM)处理器或来自德州仪器公司的OMAPTM处理器。
处理器1352可通过互连1356(例如,总线)来与系统存储器1354通信。任何数量的存储器设备可被用来提供给定量的系统存储器。作为示例,存储器可以是根据联合电子器件工程委员会(JEDEC)设计的随机存取存储器(RAM),诸如DDR或移动DDR标准(例如,LPDDR、LPDDR2、LPDDR3或LPDDR4)。在各种实现方式中,单独的存储器设备可以是任何数量的不同封装类型,诸如单管芯封装(SDP)、双管芯封装(DDP)或四管芯封装(Q17P)。在一些示例中,这些设备可以直接焊接到主板上,以提供更薄型的解决方案,而在其他示例中,设备被配置为一个或多个存储器模块,这些存储器模块进而通过给定的连接器耦合到主板。可使用任何数量的其他存储器实现方式,诸如其他类型的存储器模块,例如,不同种类的双列直插存储器模块(DIMM),包括但不限于微DIMM(microDIMM)或迷你DIMM(MiniDIMM)。
为了提供对信息(诸如,数据、应用、操作系统等)的持久性存储,存储1358可经由互连1356而耦合至处理器1352。在示例中,存储1358可经由固态盘驱动器(SSDD)来实现。可用于存储1358的其他设备包括闪存卡(诸如,SD卡、microSD卡、xD图片卡,等等)和USB闪存驱动器。在低功率实现中,存储1358可以是与处理器1352相关联的管芯上存储器或寄存器。然而,在一些示例中,存储1358可使用微硬盘驱动器(HDD)来实现。此外,附加于或替代所描述的技术,可将任何数量的新技术用于存储1358,诸如阻变存储器、相变存储器、全息存储器或化学存储器,等等。
组件可通过互连1356进行通信。互连1356可包括任何数量的技术,包括工业标准架构(ISA)、扩展ISA(EISA)、外围组件互联(PCI)、外围组件互联扩展(PCIx)、PCI快速(PCIe)或任何数量的其他技术。互连1356可以是例如在基于SoC的系统中使用的专属总线。其他总线系统可被包括,诸如I2C接口、SPI接口、点对点接口、功率总线,等等。
互连1356可将处理器1352耦合至网格收发机1362,以便例如与其他网格设备1364通信。网格收发机1362可使用任何数量的频率和协议,诸如IEEE 802.15.4标准下的2.4千兆赫兹(GHz)传输,使用如由
Figure BDA0002410602680000251
特殊利益集团定义的
Figure BDA0002410602680000252
低能量(BLE)标准、或
Figure BDA0002410602680000253
标准,等等。为特定的无线通信协议配置的任何数量的无线电可用于到网状设备1364的连接。例如,WLAN单元可用于根据电气和电子工程师协会(IEEE)802.11标准实现Wi-FiTM通信。此外,例如根据蜂窝或其他无线广域协议的无线广域通信可经由WWAN单元发生。
网格收发机1362可使用用于不同范围的通信的多种标准或无线电来进行通信。例如,IoT设备1350可使用基于BLE的或另一低功率无线电的本地收发机与接近的(例如,在约10米内的)设备通信以节省功率。更远的(例如,在约50米内的)网状设备1364可通过ZigBee或其他中间功率的无线电而被联络到。这两种通信技术能以不同的功率水平通过单个无线电发生,或者可通过分开的收发机而发生,分开的收发机例如使用BLE的本地收发机以及使用ZigBee的分开的网格收发机。
无线网络收发机1366可被包括,以经由局域网协议或广域网协议来与云1300中的设备或服务通信。无线网络收发机1366可以是遵循IEEE 802.15.4或IEEE 802.15.4g标准等的LPWA收发机。IoT设备1350可使用由Semtech和LoRa联盟开发的LoRaWANTM(长距离广域网)在广域上通信。本文中所描述的技术不限于这些技术,而是可与实现长距离、低带宽通信(诸如Sigfox和其他技术)的任何数量的其他云收发机一起使用。此外,可使用其他通信技术,诸如,在IEEE 802.15.4e规范中描述的时分信道跳跃。
除了针对如本文中所述的网格收发机1362和无线网络收发机1366而提及的系统之外,还可使用任何数量的其他无线电通信和协议。例如,无线电收发机1362和1366可包括使用扩展频谱(SPA/SAS)通信以实现高速通信的LTE或其他蜂窝收发机。此外,可使用任何数量的其他协议,诸如用于中速通信和供应网络通信的
Figure BDA0002410602680000254
网络。
无线电收发机1362和1366可包括与任何数量的3GPP(第三代合作伙伴计划)规范(尤其是长期演进(LTE)、长期演进-高级(LTE-A)和长期演进-高级加强版(LTE-A Pro))兼容的无线电。可以注意到,可选择与任何数量的其他固定的、移动的或卫星通信技术和标准兼容的无线电。这些可包括例如任何蜂窝广域无线通信技术,其可包括例如第5代(5G)通信系统、全球移动通信(GSM)无线电通信系统、通用分组无线电服务(GPRS)无线电通信技术、或GSM演进(EDGE)增强数据速率无线电通信技术、UMTS(通用移动电信系统)通信技术,除了上面列出的标准外,任何数量的卫星上行链路技术都可以用于无线网络收发器1366,包括例如符合由ITU(国际电信联盟)或ETSI(欧洲电信标准协会)发布的标准的无线电等。本文中所提供的示例因此可被理解为适用于各种现有的和尚未制定的各种其他通信技术。
网络接口控制器(NIC)1368可被包括以提供到云1300或到其他设备(诸如网格设备1364)的有线通信。有线通信可提供以太网连接,或可基于其他类型的网络,诸如控制器区域网(CAN)、本地互连网(LIN)、设备网络(DeviceNet)、控制网络(ControlNet)、数据高速路+、现场总线(PROFIBUS)或工业以太网(PROFINET),等等。附加的NIC 1368可被包括以允许到第二网络的连接,例如,NIC 1368通过以太网提供到云的通信,并且第二NIC 1368通过另一类型的网络提供到其他设备的通信。
互连1356可将处理器1352耦合至外部接口1370,该外部接口1370用于连接外部设备或子系统。外部设备可包括传感器1372,诸如加速度计、水平传感器、流量传感器、光学光传感器、相机传感器、温度传感器、全球定位系统(GPS)传感器、压力传感器、气压传感器,等等。外部接口1370可进一步用于将IoT设备1350连接至致动器1374(诸如,电源开关、阀致动器、可听声发生器、视觉警告设备等)。
在一些任选的示例中,各种输入/输出(I/O)设备可存在于IoT设备1350内,或可连接至IoT设备1350。例如,显示器或其他输出设备1384可被包括以显示信息,诸如传感器读数或致动器位置。输入设备1386(诸如,触摸屏或键区)可被包括以接受输入。输出设备1384可包括任何数量的音频或视觉显示形式,包括:简单视觉输出,诸如二进制状态指示器(例如,LED);多字符视觉输出;或更复杂的输出,诸如显示屏(例如,LCD屏),其具有从IoT设备1350的操作生成或产生的字符、图形、多媒体对象等的输出。
电池1376可为IoT设备1350供电,但是在其中IoT设备1350被安装在固定位置的示例中,该IoT设备1350可具有耦合至电网的电源。电池1376可以是锂离子电池、金属-空气电池(诸如锌-空气电池、铝-空气电池、锂-空气电池),等等。
电池监视器/充电器1378可被包括在IoT设备1350中以跟踪电池1376的充电状态(SoCh)。电池监视器/充电器1378可用于监视电池1376的其他参数以提供失效预测,诸如电池1376的健康状态(SoH)和功能状态(SoF)。电池监视器/充电器1378可包括电池监视集成电路,诸如来自线性技术公司(Linear Technologies)的LTC4020或LTC2990、来自亚利桑那州的凤凰城的安森美半导体公司(ON Semiconductor)的ADT7488A、或来自德克萨斯州的德州仪器公司的UCD90xxx族的IC。电池监视器/充电器1378可通过互连1356将电池1376上的信息传递至处理器1352。电池监视器/充电器1378也可包括允许处理器1352直接监视电池1376的电压或来自电池1376的电流的模数(ADC)转换器。电池参数可被用于确定IoT设备1350可执行的动作,诸如传输频率、网格网络操作、感测频率,等等。
功率块1380或耦合至电网的其他电源可与电池监视器/充电器1378耦合以对电池1376充电。在一些示例中,功率块1380可用无线功率接收机代替,以便例如通过IoT设备1350中的环形天线来无线地获得功率。无线电池充电电路(诸如来自加利福尼亚州的苗比达市的线性技术公司的LTC4020芯片,等等)可被包括在电池监视器/充电器1378中。所选择的特定的充电电路取决于电池1376的尺寸,并因此取决于所需的电流。可使用由无线充电联盟(Airfuel Alliance)颁布的Airfuel标准、由无线电力协会(Wireless PowerConsortium)颁布的Qi无线充电标准、由无线电力联盟(the Alliance for WirelessPower)颁布的Rezence充电标准等等执行充电。
存储1358可包括用于实现本文中公开的技术的软件、固件或硬件命令形式的指令1382。虽然此类指令1382被示出为被包括在存储器1354和存储1358中的代码块,但是可以理解,可用例如被建立到专用集成电路(ASIC)中的硬连线电路替换代码块中的任一个。
在示例中,经由存储器1354、存储1358或处理器1352提供的指令1382可具体化为非暂态机器可读介质1360,该非暂态机器可读介质1360包括用于指示处理器1352执行IoT设备1350中的电子操作的代码。处理器1352可通过互连1356访问非暂态机器可读介质1360。例如,非暂态机器可读介质1360可由针对图13的存储1358所描述的设备来具体化,并且可包括特定的存储单元,诸如光盘、闪存驱动器或任何数量的其他硬件设备。非暂态机器可读介质1360可包括用于指示处理器1352执行例如像参照上文中描绘的操作和功能的(多个)流程图和(多个)框图而描述的特定的动作序列或动作流的指令。
在进一步的示例中,机器可读介质也包括任何有形介质,该有形介质能够存储、编码或携带供由机器执行并且使机器执行本公开方法中的任何一种或多种方法的指令,或者该有形介质能够储存、编码或携带由此类指令利用或与此类指令相关联的数据结构。术语“机器可读介质”因此可包括但不限于固态存储器、光学介质和磁介质。机器可读介质的特定示例包括非易失性存储器,作为示例,包括但不限于:半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪存设备;诸如内部硬盘及可移除盘之类的磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。可使用传输介质,经由网络接口设备,利用数个传输协议中的任何一种协议(例如,HTTP),进一步通过通信网络来传输或接收由机器可读介质具体化的指令。
应当理解,在本说明书中所描述的功能单元或能力可被称为或标记为组件或模块,从而特别强调其实现的独立性。此类组件可由任何数量的软件或硬件形式具体化。例如,组件或模块可被实现为硬件电路,该硬件电路包括:定制的超大规模集成(VLSI)电路或门阵列,诸如逻辑芯片、晶体管之类的现成的半导体,或其他分立组件。组件或模块也可被实现在可编程硬件器件(诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等等)中。组件或模块也能以软件来实现,以供由各种类型的处理器执行。可执行代码的所标识的组件或模块可以例如包括计算机指令的一个或多个物理或逻辑块,其例如可被组织成例如对象、过程、或函数。然而,所标识的组件或模块的可执行对象不必在物理上在一起,而是可包括存储在不同位置中的不同指令,当这些指令在逻辑上结合在一起时,包括组件或模块,并且针对该组件或模块实现所声称的目的。
实际上,可执行代码的组件或模块可以是单条指令或许多条指令,并且甚至可以分布在若干不同的代码段上,分布在不同的程序之间,以及跨若干存储器设备或处理系统而分布。具体而言,所描述的过程的一些方面(诸如代码重写和代码分析)可发生在与代码部署在其中的处理系统(例如,在嵌入在传感器或机器人中的计算机中)不同的处理系统(例如,在数据中心中的计算机中)上。类似地,操作数据在此可被标识并图示在组件或模块内,并且能以任何合适的形式被具体化并被组织在在任何合适类型的数据结构内。操作数据可以被收集为单个数据集,或者可分布在不同位置上(包括分布在不同的存储设备上),并且可以至少部分地仅作为电子信号而存在于系统或网络上。组件或模块可以是被动或主动的,包括用于执行所需功能的代理。
示例
下面提供了本文中所公开的技术的说明性示例。这些技术的实施例可包括下文所描述的示例中的任何一个或多个以及其任何组合。
示例1包括用于管理加速器资源的云资源管理器,该云资源管理器包括网络接口控制器,用于从多个节点计算设备中的每一个接收加速器使用信息;以及加速器管理器,用于接收待执行的任务的任务参数;访问任务分配策略;基于任务参数和任务分配策略来确定多个节点计算设备中的目的地节点计算设备;以及将该任务分配给目的地节点计算设备。
示例2包括示例1的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,其中加速器使用信息包括加速器镜像的实例在目的地节点计算设备中可用的指示,其中确定目的地节点计算设备包括基于加速器镜像的实例在目的地节点计算设备中可用的指示来确定目的地节点计算设备。
示例3包括示例1和2中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,其中加速器使用信息包括目的地节点计算设备的加速器设备具有可用于加速器镜像的空间的指示,并且其中确定目的地节点计算设备包括基于目的地节点计算设备中可用于加速器镜像的空间来确定该目的地节点计算设备。
示例4包括示例1-3中任一项的主题,并且其中加速器使用信息包括目的地节点计算设备具有与要执行的任务相关联的虚拟机或容器的硬件能力和容量的指示,并且其中确定目的地节点计算设备包括基于具有与要执行的任务相关联的虚拟机或容器的硬件能力和容量的目的地节点计算设备来确定该目的地节点计算设备。
示例5包括示例1-4中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,其中加速器使用信息包括目的地节点计算设备的加速器设备在加速器设备进行碎片整理之后将在该加速器设备上具有用于该加速器镜像的空间的指示;其中确定目的地节点计算设备包括基于在加速器设备进行碎片整理之后目的地节点计算设备中可用于加速器镜像的空间来确定目的地节点计算设备。
示例6包括示例1-5中任一项的主题,并且其中将任务分配给目的地节点计算设备包括将任务参数发送到目的地节点计算设备。
示例7包括示例1-6中任一项的主题,并且其中接收任务参数包括从作出请求的计算设备接收任务参数,其中将任务分配给目的地节点计算设备包括将对目的地节点计算设备的标识发送到作出请求的计算设备。
示例8包括示例1-7中任一项的主题,并且其中从多个节点计算设备中的每一个接收加速器使用信息包括从多个节点计算设备中的每一个接收加速器使用信息,而无需发送对加速器使用信息的请求。
示例9包括示例1-8中的任一项的主题,并且其中网络接口控制器进一步向多个节点计算设备中的每一个发送对相对应的加速器使用信息的请求,其中从多个节点计算设备中的每一个接收加速器使用信息包括响应于对相对应加速器使用信息的请求而从多个节点计算设备中的每一个接收加速器使用信息。
示例10包括示例1-9中任一项的主题,并且其中任务参数包括要在任务执行中使用的加速器镜像的指示,其中加速器管理器进一步存储多个加速器镜像,其中多个加速器镜像包括要在该任务的执行中使用的加速器镜像,并且其中网络接口控制器进一步响应于接收到要在该任务的执行中使用的加速器镜像的指示而将加速器镜像发送到目的地节点计算设备。
示例11包括示例1-10中任一项的主题,并且其中存储多个加速器镜像包括存储多个加速器镜像中的每一个的尺寸、功率使用、以及是否允许共享相对应的加速器镜像。
示例12包括示例1-11中任一项的主题,并且其中加速器使用信息包括以下至少一个:(i)部署在多个节点计算设备的每一个上的加速器镜像,(ii)是否允许共享部署在多个节点计算设备中的每一个上的每个加速器镜像,(iii)多个节点计算设备中的每一个的至少一个加速器设备中有多少空闲空间,(iv)多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的使用频率,(v)多个节点计算设备中的每一个的功率使用,以及(vi)最后一次使用多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的指示。
示例13包括示例1-12中任一项的主题,并且其中确定多个节点计算设备的目的地节点计算设备包括基于以下至少一个来确定目的地节点计算设备:(i)部署在多个节点计算设备的每一个上的加速器镜像,(ii)是否允许共享部署在多个节点计算设备中的每一个上的每个加速器镜像,(iii)多个节点计算设备中的每一个的至少一个加速器设备中有多少空闲空间,(iv)多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的使用频率,(v)多个节点计算设备中的每一个的功率使用,以及(v)最后一次使用多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的指示。
示例14包括用于管理节点计算设备的加速器资源的节点计算设备,该节点计算设备包括网络接口控制器,该网络接口控制器接收要由节点计算设备执行的任务的任务参数;以及加速器管理器,用于访问任务调度策略;基于任务参数和任务调度策略来调度该任务;以及响应于任务被调度而在该节点计算设备的加速器设备上执行该任务。
示例15包括示例14的主题,并且其中网络接口控制器进一步向云资源管理器发送加速器使用信息。
示例16包括示例14和15中任一项的主题,并且其中加速器使用信息包括以下至少一个:(i)部署在节点计算设备上的加速器镜像,(ii)是否允许共享部署在节点计算设备上的每个加速器镜像,(iii)加速器设备中有多少空闲空间,(iv)加速器设备的加速器镜像的使用频率,(v)加速器设备的功率使用,以及(vi)最后一次使用加速器设备的加速器镜像的指示。
示例17包括示例14-16中任一项的主题,并且其中将加速器使用信息发送到云资源管理器包括将加速器使用信息发送到云资源管理器而无需接收发送加速器使用信息的请求。
示例18包括示例14-17中任一项的主题,并且其中网络接口控制器进一步从云资源管理器接收对加速器使用信息的请求,其中将加速器使用信息发送到云资源管理器包括响应于接收发送加速器使用信息的请求,将加速器使用信息发送到云资源管理器。
示例19包括示例14-18中的任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,其中在加速器设备接收任务参数之前,加速器管理器进一步在加速器设备上加载加速器镜像的实例;以及响应于接收到任务参数,确定在接收到任务参数之前,在加速器设备上加载的加速器镜像的实例,其中调度任务包括响应于在接收到任务参数之前确定加速器镜像的实例已加载在加速器设备上而调度该任务以在加速器镜像的实例上运行。
示例20包括示例14-19中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,其中加速器管理器进一步用于确定加速器设备上当前没有用于加速器镜像的可用空间;确定在对加速器设备进行碎片整理之后加速器设备上将有用于加速器镜像的可用空间;响应于确定对加速器设备进行碎片整理后将有用于加速器镜像的可用空间,而对加速器设备进行碎片整理;以及响应于加速器设备的碎片整理而将加速器镜像加载到加速器设备上。
示例21包括示例14-20中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,其中在接收到任务参数之前,加速器管理器进一步用于在加速器设备上加载加速器镜像的实例;在接收到任务参数之前,在加速器镜像上执行第二任务的至少一部分;响应于任务参数的接收,确定第二任务应被页出以支持该任务;以及从加速器设备页出第二任务,其中页出第二任务包括保存第二任务的上下文数据。
示例22包括示例14-21中的任一项的主题,并且其中加速器管理器进一步将向第二节点计算设备发送该第二任务的上下文数据,以便在第二节点计算设备上页入第二任务。
示例23包括示例14-22中的任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,其中在接收到任务参数之前,加速器管理器进一步在加速器设备中的第二加速器镜像上执行第二任务的至少一部分;响应于任务参数的接收,确定第二任务应被页出以支持任务;以及从加速器设备页出第二任务,其中页出第二任务包括将第二加速器镜像保存到节点计算设备的存储器中。
示例24包括示例14-23中任一项的主题,并且其中接收任务参数包括从作出请求的计算设备接收任务参数,其中加速器管理器进一步发送任务启动的通知到作出请求的计算设备。
示例25包括示例14-24中任一项的主题,并且其中接收任务参数包括从作出请求的计算设备接收任务参数,其中加速器管理器进一步发送任务的结果到作出请求的计算设备。
示例26包括一种用于通过云资源管理器管理加速器资源的方法,该方法包括:通过云资源管理器从多个节点计算设备的每一个接收加速器使用信息;通过云资源管理器接收待执行任务的任务参数;通过云资源管理器访问任务分配策略;通过云资源管理器基于任务参数和任务分配策略来确定多个节点计算设备中的目的地节点计算设备;以及通过云资源管理器将任务分配给目的地节点计算设备。
示例27包括示例26的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,其中加速器使用信息包括加速器镜像的实例在目的地节点计算设备中可用的指示,其中确定目的地节点计算设备包括基于加速器镜像的实例在目的地节点计算设备中可用的指示来确定目的地节点计算设备。
示例28包括示例26和27中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,其中加速器使用信息包括目的地节点计算设备的加速器设备具有可用于加速器镜像的空间的指示;其中确定目的地节点计算设备包括基于目的地节点计算设备中可用于加速器镜像的空间来确定目的地节点计算设备。
示例29包括示例26-28中任一项的主题,并且其中加速器使用信息包括目的地节点计算设备具有与要执行的任务相关联的虚拟机或容器的硬件能力和容量的指示,并且其中确定目的地节点计算设备包括基于具有与要执行的任务相关联的虚拟机或容器的硬件能力和容量的目的地节点计算设备来确定目的地节点计算设备。
示例30包括示例26-29中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,其中加速器使用信息包括目的地节点计算设备的加速器设备在加速器设备进行碎片整理之后将在加速器设备上具有可用于加速器镜像的空间的指示;其中确定目的地节点计算设备包括基于在加速器设备进行碎片整理之后目的地节点计算设备中可用于加速器镜像的空间来确定目的地节点计算设备。
示例31包括示例26-30中任一项的主题,并且其中将任务分配给目的地节点计算设备包括将任务参数发送到目的地节点计算设备。
示例32包括示例26-31中任一项的主题,并且其中接收任务参数包括从作出请求的计算设备接收任务参数,其中将任务分配给目的地节点计算设备包括将对目的地节点计算设备的标识发送到作出请求的计算设备。
示例33包括示例26-32中任一项的主题,并且其中从多个节点计算设备中的每一个接收加速器使用信息包括从多个节点计算设备中的每一个接收加速器使用信息,而无需发送对加速器使用信息的请求。
示例34包括示例26-33中的任一项的主题,并且进一步包括向多个节点计算设备中的每一个发送对相对应的加速器使用信息的请求,其中从多个节点计算设备中的每一个接收加速器使用信息包括响应于发送对相对应加速器使用信息的请求而从多个节点计算设备中的每一个接收加速器使用信息。
示例35包括示例26-34中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,方法进一步包括通过云资源管理器存储多个加速器镜像,其中多个加速器镜像包括要在任务执行中使用的加速器镜像;响应于接收到要在任务执行中使用的加速器镜像的指示,通过云资源管理器将加速器镜像发送到目的地节点计算设备。
示例36包括示例26-35中任一项的主题,并且其中存储多个加速器镜像包括存储多个加速器镜像中的每一个的尺寸、功率使用、以及是否允许共享相对应的加速器镜像。
示例37包括示例26-36中任一项的主题,并且其中加速器使用信息包括以下至少一个:(i)部署在多个节点计算设备的每一个上的加速器镜像,(ii)是否允许共享部署在多个节点计算设备中的每一个上的每个加速器镜像,(iii)多个节点计算设备中的每一个的至少一个加速器设备中有多少空闲空间,(iv)多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的使用频率,(v)多个节点计算设备中的每一个的功率使用,以及(vi)最后一次使用多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的指示。
示例38包括示例26-37中任一项的主题,并且其中确定多个节点计算设备的目的地节点计算设备包括以下至少一个来确定目的地节点计算设备:(i)部署在多个节点计算设备的每一个上的加速器镜像,(ii)是否允许共享部署在多个节点计算设备中的每一个上的每个加速器镜像,(iii)多个节点计算设备中的每一个的至少一个加速器设备中有多少空闲空间,(iv)多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的使用频率,(v)多个节点计算设备中的每一个的功率使用,以及(vi)最后一次使用多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的指示。
示例39包括一种用于通过节点计算设备管理加速器资源的方法,该方法包括:通过节点计算设备接收要通过节点计算设备执行的任务的任务参数;通过节点计算设备访问任务调度策略;通过节点计算设备基于任务参数和任务调度策略来调度任务;以及响应于调度任务,通过节点计算设备在节点计算设备的加速器设备上执行任务。
示例40包括示例39的主题,并且进一步包括将加速器使用信息发送到云资源管理器。
示例41包括示例39和40中任一项的主题,并且其中加速器使用信息包括以下至少一个:(i)部署在节点计算设备上的加速器镜像,(ii)是否允许共享部署在节点计算设备上的每个加速器镜像,(iii)加速器设备中有多少空闲空间,(iv)加速器设备的加速器镜像的使用频率,(v)加速器设备的功率使用,以及(v)最后一次使用加速器设备的加速器镜像的指示。
示例42包括示例39-41中任一项的主题,并且其中将加速器使用信息发送到云资源管理器包括将加速器使用信息发送到云资源管理器而无需接收发送加速器使用信息的请求。
示例43包括示例39-42中任一项的主题,并且进一步包括从云资源管理器接收对加速器使用信息的请求,其中将加速器使用信息发送到云资源管理器包括响应于接收发送加速器使用信息的请求,将加速器使用信息发送到云资源管理器。
示例44包括示例39-43中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,方法进一步包括在接收到任务参数之前,通过节点计算设备在加速器设备上加载加速器镜像的实例;以及通过节点计算设备响应于任务参数的接收,确定在接收到任务参数之前加速器镜像的实例被加载在加速器设备上,其中调度任务包括响应于在接收到任务参数之前确定加速器镜像的实例已加载在加速器设备上,调度该任务以在加速器镜像的实例上运行。
示例45包括示例39-44中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,方法进一步包括通过节点计算设备确定加速器设备上当前没有用于加速器镜像的可用空间;通过节点计算设备确定对加速器设备进行碎片整理后加速器设备上将有用于加速器镜像的可用空间;响应于确定在对加速器设备进行碎片整理之后将存在用于加速器镜像的可用空间,通过节点计算设备对加速器设备进行碎片整理;以及响应于加速器设备的碎片整理,通过节点计算设备将加速器镜像加载到加速器设备上。
示例46包括示例39-45中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,方法进一步包括在接收到任务参数之前,通过节点计算设备将加速器镜像的实例加载到加速器设备上;在接收到任务参数之前,通过节点计算设备在加速器镜像上执行第二任务的至少一部分;通过节点计算设备响应于任务参数的接收,确定应页出第二任务以支持该任务;以及通过节点计算设备从加速器设备中页出第二任务,其中页出第二任务包括保存第二任务的上下文数据。
示例47包括示例39-46中的任一项的主题,并且进一步包括向第二节点计算设备发送第二任务的上下文数据,以便在第二节点计算设备上页入第二任务。
示例48包括示例39-47中的任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,方法进一步包括:在接收到任务参数之前,通过节点计算设备在加速器设备中的加速器镜像上执行第二任务的至少一部分;通过节点计算设备响应于任务参数的接收,确定第二任务应被页出以支持该任务;以及通过节点计算设备从加速器设备页出第二任务,其中页出第二任务包括将第二加速器镜像保存到节点计算设备的存储器中。
示例49包括示例39-48中任一项的主题,并且其中接收任务参数包括从作出请求的计算设备接收任务参数,方法进一步包括通过节点计算设备向作出请求的计算设备发送任务启动的通知。
示例50包括示例39-49中任一项的主题,并且其中接收任务参数包括从作出请求的计算设备接收任务参数,方法进一步包括通过节点计算设备将任务的结果发送到作出请求的计算设备。
示例51包括一种或多种计算机可读介质,包括存储于其上的多条指令,这些指令在被执行时使节点计算设备执行示例26-49中任一项的方法。
示例52包括用于管理加速器资源的云资源管理器,该云资源管理器包括:用于以从多个节点计算设备中的每一个接收加速器使用信息的装置;以及用于接收待执行任务的任务参数的装置;用于访问任务分配策略的装置;用于基于任务参数和任务分配策略来确定多个节点计算设备中的目的地节点计算设备的装置;以及用于将任务分配给目的地节点计算设备的装置。
示例53包括示例52的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,其中加速器使用信息包括加速器镜像的实例在目的地节点计算设备中可用的指示,其中用于确定目的地节点计算设备的装置包括用于基于加速器镜像的实例在目的地节点计算设备中可用的指示来确定目的地节点计算设备的装置。
示例54包括示例52和53中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,其中加速器使用信息包括目的地节点计算设备的加速器设备具有可用于加速器镜像的空间的指示;其中用于确定目的地节点计算设备的装置包括用于基于目的地节点计算设备中可用于加速器镜像的空间来确定目的地节点计算设备的装置。
示例55包括示例52-54中任一项的主题,并且其中加速器使用信息包括目的地节点计算设备具有与要执行的任务相关联的虚拟机或容器的硬件能力和容量的指示,并且其中用于确定目的地节点计算设备的装置包括用于基于具有与要执行的任务相关联的虚拟机或容器的硬件能力和容量的目的地节点计算设备来确定目的地节点计算设备的装置。
示例56包括示例52-55中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,其中加速器使用信息包括目的地节点计算设备的加速器设备在加速器设备进行碎片整理之后将在加速器设备上具有可用于加速器镜像的空间的指示;其中用于确定目的地节点计算设备的装置包括用于基于在加速器设备进行碎片整理之后目的地节点计算设备中可用于加速器镜像的空间来确定目的地节点计算设备的装置。
示例57包括示例52-56中任一项的主题,并且其中用于将任务分配给目的地节点计算设备的装置包括用于将任务参数发送到目的地节点计算设备的装置。
示例58包括示例52-57中任一项的主题,并且其中用于接收任务参数的装置包括用于从作出请求的计算设备接收任务参数的装置,其中用于将任务分配给目的地节点计算设备的装置包括用于将对目的地节点计算设备的标识发送到作出请求的计算设备的装置。
示例59包括示例52-58中任一项的主题,并且其中用于从多个节点计算设备中的每一个接收加速器使用信息的装置包括用于从多个节点计算设备中的每一个接收加速器使用信息的装置,而无需发送对加速器使用信息的请求。
示例60包括示例52-59中的任一项的主题,进一步用于向多个节点计算设备中的每一个发送对相对应的加速器使用信息的请求的装置,其中用于从多个节点计算设备中的每一个接收加速器使用信息的装置包括用于响应于发送对相对应加速器使用信息的请求而从多个节点计算设备中的每一个接收加速器使用信息的装置。
示例61包括示例52-60中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,方法进一步包括用于存储多个加速器镜像的装置,其中多个加速器镜像包括要在任务执行中使用的加速器镜像;用于响应于接收到要在任务执行中使用的加速器镜像的指示,将加速器镜像发送到目的地节点计算设备的装置。
示例62包括示例52-61中任一项的主题,并且其中用于存储多个加速器镜像的装置包括用于存储多个加速器镜像中的每一个的尺寸、功率使用、以及是否允许共享相对应的加速器镜像的装置。
示例63包括示例52-62中任一项的主题,并且其中加速器使用信息包括以下至少一个:(i)部署在多个节点计算设备的每一个上的加速器镜像,(ii)是否允许共享部署在多个节点计算设备中的每一个上的每个加速器镜像,(iii)多个节点计算设备中的每一个的至少一个加速器设备中有多少空闲空间,(iv)多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的使用频率,(v)多个节点计算设备中的每一个的功率使用,以及(vi)最后一次使用多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的指示。
示例64包括示例52-63中任一项的主题,并且其中用于确定多个节点计算设备的目的地节点计算设备的装置包括用于基于以下至少一个来确定目的地节点计算设备的装置:(i)部署在多个节点计算设备的每一个上的加速器镜像,(ii)是否允许共享部署在多个节点计算设备中的每一个上的每个加速器镜像,(iii)多个节点计算设备中的每一个的至少一个加速器设备中有多少空闲空间,(iv)多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的使用频率,(v)多个节点计算设备中的每一个的功率使用,以及(vi)最后一次使用多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的指示。
示例65包括用于管理节点计算设备的加速器资源的节点计算设备,该节点计算设备包括用于通过该节点计算设备接收通过该节点计算设备执行的任务的任务参数的装置;用于通过节点计算设备访问任务调度策略的装置;用于通过节点计算设备基于任务参数和任务调度策略来调度任务的装置;以及用于通过节点计算设备响应于调度任务而在节点计算设备的加速器设备上执行任务的装置。
示例66包括示例65的主题,并且进一步包括用于将加速器使用信息发送到云资源管理器的装置。
示例67包括示例65和66中任一项的主题,并且其中加速器使用信息包括以下至少一个:(i)部署在节点计算设备上的加速器镜像,(ii)是否允许共享部署在节点计算设备上的每个加速器镜像,(iii)加速器设备中有多少空闲空间,(iv)加速器设备的加速器镜像的使用频率,(v)加速器设备的功率使用,以及(v)最后一次使用加速器设备的加速器镜像的指示。
示例68包括示例65-67中任一项的主题,并且其中用于将加速器使用信息发送到云资源管理器的装置包括用于将加速器使用信息发送到云资源管理器而无需接收发送加速器使用信息的请求的装置。
示例69包括示例65-68中任一项的主题,并且进一步包括用于从云资源管理器接收对加速器使用信息的请求的装置,其中用于将加速器使用信息发送到云资源管理器的装置包括用于响应于接收发送加速器使用信息的请求将加速器使用信息发送到云资源管理器的装置。
示例70包括示例65-69中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,方法进一步包括用于在接收到任务参数之前,通过节点计算设备加载加速器设备上的加速器镜像的实例的装置;以及用于通过节点计算设备响应于任务参数的接收,确定在接收到任务参数之前加速器镜像的实例被加载在加速器设备上的装置,其中用于调度任务的装置包括用于响应于在接收到任务参数之前确定加速器镜像的实例已加载在加速器设备上,调度该认为以在加速器镜像的实例上运行。
示例71包括示例65-70中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,方法进一步包括用于通过节点计算设备确定加速器设备上当前没有用于加速器镜像的可用空间的装置;用于通过节点计算设备确定对加速器设备进行碎片整理后加速器设备上将有用于加速器镜像的可用空间的装置;用于响应于确定在对加速器设备进行碎片整理之后将存在用于加速器镜像的可用空间,通过节点计算设备对加速器设备进行碎片整理的装置;以及用于响应于加速器设备的碎片整理,通过节点计算设备将加速器镜像加载到加速器设备上的装置。
示例72包括示例65-71中任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,方法进一步包括用于在接收到任务参数之前,通过节点计算设备将加速器镜像的实例加载到加速器设备上的装置;用于在接收到任务参数之前,通过节点计算设备在加速器镜像上执行第二任务的至少一部分的装置;用于通过节点计算设备响应于任务参数的接收,确定应页出第二任务以支持该任务的装置;以及用于通过节点计算设备从加速器设备中页出第二任务的装置,其中用于页出第二任务的装置包括用于保存第二任务的上下文数据的装置。
示例73包括示例65-72中的任一项的主题,并且进一步包括用于将向第二节点计算设备发送第二任务的上下文数据,以便在第二节点计算设备上页入第二任务的装置。
示例74包括示例65-73中的任一项的主题,并且其中任务参数包括要在该任务的执行中使用的加速器镜像的指示,方法进一步包括用于在接收到任务参数之前,通过节点计算设备在加速器设备中的第二加速器镜像上执行第二任务的至少一部分的装置;用于通过节点计算设备响应于任务参数的接收,确定第二任务应被页出以支持该任务的装置;以及用于从加速器设备页出第二任务的装置,其中用于页出第二任务的装置包括用于将第二加速器镜像保存到节点计算设备的存储器中的装置。
示例75包括示例65-74中的任一项的主题,并且其中用于接收任务参数的装置包括用于从作出请求的计算设备接收任务参数的装置,方法进一步包括用于通过节点计算设备将任务启动的通知发送到作出请求的计算设备的装置。
示例76包括示例65-75中的任一项的主题,并且其中用于接收任务参数的装置包括用于从作出请求的计算设备接收任务参数的装置,方法进一步包括用于通过节点计算设备将任务的结果发送到作出请求的计算设备的装置。

Claims (25)

1.一种用于管理加速器资源的云资源管理器,所述云资源管理器包括:
网络接口控制器,用于从多个节点计算设备中的每一个接收加速器使用信息;以及
加速器管理器,用于:
接收待执行任务的任务参数;
访问任务分配策略;
基于所述任务参数和所述任务分配策略来确定多个节点计算设备中的目的地节点计算设备;以及
将所述任务分配给目的地节点计算设备。
2.如权利要求1所述的云资源管理器,其中所述任务参数包括要在所述任务的执行中使用的加速器镜像的指示,
其中加速器使用信息包括加速器镜像的实例在所述目的地节点计算设备中可用的指示,
其中确定所述目的地节点计算设备包括基于加速器镜像的实例在所述目的地节点计算设备中可用的指示来确定所述目的地节点计算设备。
3.如权利要求1所述的云资源管理器,其中任务参数包括要在所述任务的执行中使用的加速器镜像的指示,
其中加速器使用信息包括所述目的地节点计算设备的加速器设备具有可用于所述加速器镜像的空间的指示,以及
其中确定所述目的地节点计算设备包括基于所述目的地节点计算设备中可用于所述加速器镜像的空间来确定目的地节点计算设备。
4.如权利要求1所述的云资源管理器,其中任务参数包括要在所述任务的执行中使用的加速器镜像的指示,
其中加速器使用信息包括所述目的地节点计算设备的加速器设备在加速器设备进行碎片整理之后将在所述加速器设备上具有可用于所述加速器镜像的空间的指示;
其中确定所述目的地节点计算设备包括基于在所述加速器设备进行碎片整理之后在所述目的地节点计算设备中可用于所述加速器镜像的空间来确定所述目的地节点计算设备。
5.如权利要求1所述的云资源管理器,其中任务参数包括要在所述任务的执行中使用的加速器镜像的指示,其中加速器管理器进一步用于存储多个加速器镜像;其中所述多个加速器镜像包括要在所述任务的执行中使用的加速器镜像;以及
其中所述网络接口控制器进一步用于响应于接收到要在所述任务的执行中使用的所述加速器镜像的指示而将所述加速器镜像发送到所述目的地节点计算设备。
6.如权利要求1所述的云资源管理器,其中加速器使用信息包括以下至少一个:(i)部署在多个节点计算设备的每一个上的加速器镜像,(ii)是否允许共享部署在多个节点计算设备中的每一个上的每个加速器镜像,(iii)多个节点计算设备中的每一个的至少一个加速器设备中有多少空闲空间,(iv)多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的使用频率,(v)多个节点计算设备中的每一个的功率使用,以及(vi)最后一次使用多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的指示。
7.一种节点计算设备,所述节点计算设备用于管理所述节点计算设备的加速器资源,所述节点计算设备包括:
网络接口控制器,用于接收要由所述节点计算设备执行的任务的任务参数;以及
加速器管理器,用于:
访问任务调度策略;
基于所述任务参数和所述任务调度策略来调度所述任务;以及
响应于所述任务被调度而在节点计算设备的加速器设备上执行所述任务。
8.如权利要求7所述的节点计算设备,其中网络接口控制器进一步用于将加速器使用信息发送到云资源管理器,并且其中加速器使用信息包括以下至少一个:(i)部署在所述节点计算设备上的加速器镜像,(ii)是否允许共享部署在所述节点计算设备上的每个加速器镜像,(iii)所述加速器设备中有多少空闲空间,(iv)所述加速器设备的加速器镜像的使用频率,(v)所述加速器设备的功率使用,以及(vi)最后一次使用所述加速器设备的加速器镜像的指示。
9.如权利要求7所述的节点计算设备,其中所述任务参数包括在所述任务的执行中使用的加速器镜像的指示,其中加速器管理器进一步用于:
在接收到所述任务参数之前,将所述加速器镜像的实例加载到所述加速器设备上;
响应于所述任务参数的接收,确定在接收到所述任务参数之前所述加速器镜像的实例被加载在所述加速器设备上,
其中调度所述任务包括:响应于在接收到所述任务参数之前确定所述加速器镜像的实例已加载在所述加速器设备上,调度所述任务以在所述加速器镜像的实例上运行。
10.如权利要求7所述的节点计算设备,其中所述任务参数包括要在所述任务的执行中使用的加速器镜像的指示,其中所述加速器管理器进一步用于:
确定所述加速器设备上当前没有用于所述加速器镜像的可用空间;
确定在对所述加速器设备进行碎片整理之后所述加速器设备上将有用于所述加速器镜像的可用空间;
响应于确定对所述加速器设备进行碎片整理后将有用于所述加速器镜像的可用空间,而对所述加速器设备进行碎片整理;以及
响应于所述加速器设备的碎片整理而将所述加速器镜像加载到所述加速器设备上。
11.如权利要求7所述的节点计算设备,其中所述任务参数包括要在所述任务的执行中使用的加速器镜像的指示,其中加速器管理器进一步用于:
在接收到所述任务参数之前,将所述加速器镜像的实例加载到所述加速器设备上;
在接收到所述任务参数之前,在所述加速器镜像上执行第二任务的至少一部分;
响应于所述任务参数的接收,确定应页出所述第二任务以支持所述任务;以及
从所述加速器设备中页出所述第二任务,其中页出所述第二任务包括保存所述第二任务的上下文数据。
12.如权利要求11所述的节点计算设备,其中加速器管理器进一步用于向第二节点计算设备发送所述第二任务的上下文数据,以便在所述第二节点计算设备上页入所述第二任务。
13.一种用于通过云资源管理器管理加速器资源的方法,所述方法包括:
通过所述云资源管理器从多个节点计算设备的每一个接收加速器使用信息;
通过所述云资源管理器接收待执行任务的任务参数;
通过所述云资源管理器访问任务分配策略;
通过所述云资源管理器基于所述任务参数和所述任务分配策略来确定所述多个节点计算设备中的目的地节点计算设备;以及
通过所述云资源管理器将所述任务分配给所述目的地节点计算设备。
14.如权利要求13所述的方法,其中所述任务参数包括要在所述任务的执行中使用的加速器镜像的指示,
其中所述加速器使用信息包括所述目的地节点计算设备的加速器设备在加速器设备进行碎片整理之后将在所述加速器设备上具有可用于所述加速器镜像的空间的指示;
其中确定所述目的地节点计算设备包括:基于在所述加速器设备进行碎片整理之后在所述目的地节点计算设备中可用于所述加速器镜像的空间来确定所述目的地节点计算设备。
15.如权利要求13所述的方法,其中任务参数包括要在所述任务的执行中使用的加速器镜像的指示,所述方法进一步包括:
通过所述云资源管理器存储多个加速器镜像,其中所述多个加速器镜像包括要在所述任务的执行中使用的所述加速器镜像;
响应于接收到要在所述任务的执行中使用的加速器镜像的指示,通过所述云资源管理器将所述加速器镜像发送到所述目的地节点计算设备。
16.如权利要求13所述的方法,其中所述加速器使用信息包括以下至少一个:(i)部署在所述多个节点计算设备的每一个上的加速器镜像,(ii)是否允许共享部署在所述多个节点计算设备中的每一个上的每个加速器镜像,(iii)所述多个节点计算设备中的每一个的至少一个加速器设备中有多少空闲空间,(iv)所述多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的使用频率,(v)所述多个节点计算设备中的每一个的功率使用,以及(vi)最后一次使用所述多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的指示。
17.如权利要求16所述的方法,其中确定所述多个节点计算设备的所述目的地节点计算设备包括基于以下至少一个来确定所述目的地节点计算设备:(i)部署在所述多个节点计算设备的每一个上的加速器镜像,(ii)是否允许共享部署在所述多个节点计算设备中的每一个上的每个加速器镜像,(iii)所述多个节点计算设备中的每一个的至少一个加速器设备中有多少空闲空间,(iv)所述多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的使用频率,(v)所述多个节点计算设备中的每一个的功率使用,以及(vi)最后一次使用所述多个节点计算设备中的每一个的至少一个加速器设备的加速器镜像的指示。
18.一种用于通过节点计算设备管理加速器资源的方法,所述方法包括:
通过所述节点计算设备接收要通过所述节点计算设备执行的任务的任务参数;
通过所述节点计算设备访问任务调度策略;
通过所述节点计算设备基于所述任务参数和所述任务调度策略来调度所述任务;以及
响应于调度所述任务,通过所述节点计算设备在所述节点计算设备的加速器设备上执行所述任务。
19.如权利要求18所述的方法,进一步包括将加速器使用信息发送到云资源管理器,其中所述加速器使用信息包括以下至少一个:(i)部署在所述节点计算设备上的加速器镜像,(ii)是否允许共享部署在所述节点计算设备上的每个加速器镜像,(iii)所述加速器设备中有多少空闲空间,(iv)所述加速器设备的加速器镜像的使用频率,(v)所述加速器设备的功率使用,以及(v)最后一次使用所述加速器设备的加速器镜像的指示。
20.如权利要求18所述的方法,其中所述任务参数包括要在所述任务的执行中使用的加速器镜像的指示,所述方法进一步包括:
在接收到所述任务参数之前,通过所述节点计算设备将所述加速器镜像的实例加载到所述加速器设备上;以及
通过所述节点计算设备,响应于任务参数的接收,确定在接收到所述任务参数之前所述加速器镜像的实例被加载在所述加速器设备上,
其中调度所述任务包括:响应于在接收到所述任务参数之前确定所述加速器镜像的实例已加载在所述加速器设备上,调度所述任务以在所述加速器镜像的实例上运行。
21.如权利要求18所述的方法,其中所述任务参数包括要在所述任务的执行中使用的加速器镜像的指示,所述方法进一步包括:
通过所述节点计算设备确定所述加速器设备上当前没有用于所述加速器镜像的可用空间;
通过所述节点计算设备确定对所述加速器设备进行碎片整理后所述加速器设备上将有用于所述加速器镜像的可用空间;
响应于确定在对所述加速器设备进行碎片整理之后将有用于所述加速器镜像的可用空间,通过所述节点计算设备对所述加速器设备进行碎片整理;以及
响应于所述加速器设备的碎片整理,通过所述节点计算设备将所述加速器镜像加载到所述加速器设备上。
22.如权利要求18所述的方法,其中所述任务参数包括要在所述任务的执行中使用的加速器镜像的指示,所述方法进一步包括:
在接收到所述任务参数之前,通过所述节点计算设备将所述加速器镜像的实例加载到所述加速器设备上;
在接收到所述任务参数之前,通过所述节点计算设备在加速器镜像上执行第二任务的至少一部分;
通过所述节点计算设备响应于任务参数的接收,确定应页出所述第二任务以支持所述任务;以及
通过所述节点计算设备从所述加速器设备中页出所述第二任务,其中页出所述第二任务包括保存所述第二任务的上下文数据。
23.如权利要求22所述的方法,进一步包括向第二节点计算设备发送所述第二任务的上下文数据,以便在所述第二节点计算设备上页入第所述二任务。
24.一个或多个计算机可读介质,所述计算机可读介质包括存储于其上的多条指令,所述指令在被执行时促使节点计算设备执行根据权利要求13-24中任一项所述的方法。
25.一种节点计算设备,包括用于执行权利要求13-24中的任何一项所述的方法的装置。
CN201780094882.4A 2017-09-30 2017-09-30 通过云资源管理器管理加速器资源的技术 Pending CN111108474A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/105035 WO2019061501A1 (en) 2017-09-30 2017-09-30 ACCELERATOR RESOURCE MANAGEMENT TECHNOLOGIES BY A RESOURCE MANAGER IN THE CLOUD

Publications (1)

Publication Number Publication Date
CN111108474A true CN111108474A (zh) 2020-05-05

Family

ID=65903779

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780094882.4A Pending CN111108474A (zh) 2017-09-30 2017-09-30 通过云资源管理器管理加速器资源的技术

Country Status (4)

Country Link
US (2) US20210073047A1 (zh)
CN (1) CN111108474A (zh)
DE (1) DE112017008102T5 (zh)
WO (1) WO2019061501A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024037239A1 (zh) * 2022-08-15 2024-02-22 华为技术有限公司 一种加速器调度方法及相关装置

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10798162B2 (en) * 2017-08-28 2020-10-06 Texas Instruments Incorporated Cluster system with fail-safe fallback mechanism
JP2021503124A (ja) 2017-11-15 2021-02-04 ホアウェイ・テクノロジーズ・カンパニー・リミテッド アクセラレーションリソーススケジューリング方法及び装置、並びにアクセラレーションシステム
US11144357B2 (en) * 2018-05-25 2021-10-12 International Business Machines Corporation Selecting hardware accelerators based on score
US10892944B2 (en) 2018-11-29 2021-01-12 International Business Machines Corporation Selecting and using a cloud-based hardware accelerator
US11681945B2 (en) * 2019-03-11 2023-06-20 Cisco Technology, Inc. Distributed learning model for fog computing
CN110633144A (zh) * 2019-08-23 2019-12-31 成都华为技术有限公司 一种边缘云的融合管理的方法及装置
US11368525B2 (en) * 2019-12-02 2022-06-21 Red Hat, Inc. Relaying network management tasks using a multi-service receptor network
KR20220036494A (ko) * 2020-09-16 2022-03-23 삼성전자주식회사 딥러닝 워크로드를 위한 하이브리드 스케줄링 방법과 이를 수행하는 컴퓨팅 장치
KR102398076B1 (ko) * 2020-10-30 2022-05-13 펜타시큐리티시스템 주식회사 데이터 분산 저장 방법 및 장치
US11720425B1 (en) 2021-05-20 2023-08-08 Amazon Technologies, Inc. Multi-tenant radio-based application pipeline processing system
US11800404B1 (en) * 2021-05-20 2023-10-24 Amazon Technologies, Inc. Multi-tenant radio-based application pipeline processing server
US11916999B1 (en) 2021-06-30 2024-02-27 Amazon Technologies, Inc. Network traffic management at radio-based application pipeline processing servers
US11539582B1 (en) 2021-08-30 2022-12-27 Amazon Technologies, Inc. Streamlined onboarding of offloading devices for provider network-managed servers
CN113992751A (zh) * 2021-10-27 2022-01-28 北京八分量信息科技有限公司 异构网络中资源共享方法、装置及相关产品
US11824943B1 (en) 2022-06-29 2023-11-21 Amazon Technologies, Inc. Managed connectivity between cloud service edge locations used for latency-sensitive distributed applications
US11937103B1 (en) 2022-08-17 2024-03-19 Amazon Technologies, Inc. Enhancing availability of radio-based applications using multiple compute instances and virtualized network function accelerators at cloud edge locations

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7495791B2 (en) * 2004-10-06 2009-02-24 Xerox Corporation Load sharing among networked image processing devices
US20080104601A1 (en) * 2006-10-26 2008-05-01 Nokia Corporation Scheduler for multiple software tasks to share reconfigurable hardware
EP2442228A1 (en) * 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
AU2010249337A1 (en) * 2010-12-13 2012-06-28 Canon Kabushiki Kaisha Predicting the times of future events in a multi-threaded RIP
US9560126B2 (en) * 2013-05-06 2017-01-31 Alcatel Lucent Stateless load balancing of connections
GB2525002B (en) * 2014-04-09 2021-06-09 Advanced Risc Mach Ltd Data processing systems
US20160306677A1 (en) * 2015-04-14 2016-10-20 Globalfoundries Inc. Automatic Analytical Cloud Scaling of Hardware Using Resource Sub-Cloud
CN104794100B (zh) * 2015-05-06 2017-06-16 西安电子科技大学 基于片上网络的异构多核处理系统
US20170046794A1 (en) * 2015-08-11 2017-02-16 Accenture Global Services Limited System for sourcing talent utilizing crowdsourcing
US10191686B2 (en) * 2016-06-28 2019-01-29 Vmware, Inc. Rate limiting in a decentralized control plane of a computing system
US10572306B2 (en) * 2016-09-14 2020-02-25 Cloudera, Inc. Utilization-aware resource scheduling in a distributed computing cluster
CN107102824B (zh) * 2017-05-26 2019-08-30 华中科技大学 一种基于存储和加速优化的Hadoop异构方法和系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024037239A1 (zh) * 2022-08-15 2024-02-22 华为技术有限公司 一种加速器调度方法及相关装置

Also Published As

Publication number Publication date
US20230401110A1 (en) 2023-12-14
US20210073047A1 (en) 2021-03-11
DE112017008102T5 (de) 2020-07-09
WO2019061501A1 (en) 2019-04-04

Similar Documents

Publication Publication Date Title
US20230401110A1 (en) Technologies for managing accelerator resources by a cloud resource manager
US11373099B2 (en) Artificial intelligence inference architecture with hardware acceleration
US11743143B2 (en) Service level agreement-based multi-hardware accelerated inference
US11768705B2 (en) Automatic localization of acceleration in edge computing environments
US20230115259A1 (en) Malleable fabric attached virtual artificial intelligence (ai) training appliances
US11218553B2 (en) Inter-MEC system communication for V2X services
US11650851B2 (en) Edge server CPU with dynamic deterministic scaling
US11900148B2 (en) Technologies for scheduling time sensitive cyclical network traffic in real-time
US11625277B2 (en) Dynamically augmenting edge resources
US20190042955A1 (en) Distributed and contextualized artificial intelligence inference service
US11487688B2 (en) Technologies for fast MAUSB enumeration
US20190098635A1 (en) Distributed and adaptive heterogeneous wireless communication management
KR20230043044A (ko) 디지털 트윈 보조 회복성을 위한 방법 및 장치
NL2029288B1 (en) Model-assisted deep reinforcement learning based scheduling in wireless networks
US20240134680A1 (en) Technologies for scheduling time sensitive cyclical network traffic in real-time
US11329925B2 (en) Technologies for low-latency network packet transmission

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