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

任务处理方法与流程

2022-09-03 05:02:28 来源:中国专利 TAG:


1.本说明书实施例涉及计算机技术领域,特别涉及一种任务处理方法。


背景技术:

2.随着计算机技术的不断发展,基于计算设备实现计算任务的占比在快速提升,比如异构计算场景下,基于异构硬件(如图形处理器gpu)的异构计算占比在快速提升,从而在音视频生产、图形图像处理、ai训练、等领域被广泛地应用。而随着不同计算服务提供方通过计算实例支持异构计算任务的执行,基于不同异构计算任务的工作负载类型,为其准确的确定计算实例的需求由此产生;因此,亟需提供一种能够满足为异构计算任务准确分配计算实例弹性扩容需求的方案。


技术实现要素:

3.有鉴于此,本说明书实施例提供了一种任务处理方法。本说明书一个或者多个实施例同时涉及一种任务处理装置,一种计算设备,一种计算机可读存储介质,一种计算机程序,以解决现有技术中存在的技术缺陷。
4.根据本说明书实施例的第一方面,提供了一种任务处理方法,包括:
5.基于接收的目标任务确定初始虚拟节点的当前状态信息,其中,所述当前状态信息基于初始虚拟节点对应的物理计算单元确定;
6.基于所述目标任务的任务类型信息,从所述初始虚拟节点中确定与所述任务类型信息对应的候选虚拟节点;
7.基于所述候选虚拟节点的当前状态信息为所述目标任务确定对应的目标虚拟节点,并通过所述目标虚拟节点执行所述目标任务。
8.根据本说明书实施例的第二方面,提供了一种任务处理装置,包括:
9.接收模块,被配置为基于接收的目标任务确定初始虚拟节点的当前状态信息,其中,所述当前状态信息基于初始虚拟节点对应的物理计算单元确定;
10.确定模块,被配置为基于所述目标任务的任务类型信息,从所述初始虚拟节点中确定与所述任务类型信息对应的候选虚拟节点;
11.执行模块,被配置为基于所述候选虚拟节点的当前状态信息为所述目标任务确定对应的目标虚拟节点,并通过所述目标虚拟节点执行所述目标任务。
12.根据本说明书实施例的第三方面,提供了一种计算设备,包括:
13.存储器和处理器;
14.所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现所述任务处理方法的步骤。
15.根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现所述任务处理方法的步骤。
16.根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程
序在计算机中执行时,令计算机执行所述任务处理方法的步骤。
17.本说明书提供的任务处理方法,包括基于接收的目标任务确定初始虚拟节点的当前状态信息,其中,所述当前状态信息基于初始虚拟节点对应的物理计算单元确定;基于所述目标任务的任务类型信息,从所述初始虚拟节点中确定与所述任务类型信息对应的候选虚拟节点;基于所述候选虚拟节点的当前状态信息为所述目标任务确定对应的目标虚拟节点,并通过所述目标虚拟节点执行所述目标任务。
18.具体地,该方法通过在接收到目标任务的情况下,基于初始虚拟节点的当前状态信息以及目标任务的任务类型信息,为该目标任务确定对应的目标虚拟节点,并通过目标虚拟节点执行目标任务,从而满足了准确的为目标任务确定目标虚拟节点的需求。
附图说明
19.图1是本说明书提供了一种serverless平台调度框架示意图;
20.图2是本说明书提供了一种基于请求并发度的serverless调度算法的示意图;
21.图3是本说明书一个实施例提供的一种任务处理方法的流程图;
22.图4是本说明书一个实施例提供的一种任务处理方法中任务调度的流程图;
23.图5是本说明书一个实施例提供的一种任务处理方法中弹性伸缩的示意图;
24.图6是本说明书一个实施例提供的一种任务处理方法的处理过程流程图;
25.图7是本说明书一个实施例提供的一种任务处理装置的结构示意图;
26.图8是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
27.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
28.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
29.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
30.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
31.gpu:一般指图形处理器。图形处理器(graphics processing unit,缩写:gpu),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
32.vpu:vpu(video processing unit,视频处理单元)是一种全新的视频处理平台核
心引擎,具有硬解码功能以及减少cpu(中央处理器)负荷的能力。另外,vpu可以减少服务器负载和网络带宽的消耗。用于区别于gpu(graph process unit,图形处理单元)。图形处理单元又包括视频处理单元、外视频模块和后处理模块这三个主要模块。
33.tpu:是一种神经网络训练的处理器,主要用于深度学习、ai(人工智能)运算。tpu具有像gpu和cpu一样的编程,以及一套cisc指令集(复杂指令集)。作为机器学习处理器,不仅仅支持某一种神经网络,还支持卷积神经网络、lstm(长短期记忆人工神经网络)、全连接网络等多种。tpu采用低精度(8位)计算,以降低每步操作使用的晶体管数量。
34.gpgpu:通用图形处理器(general-purpose computing on graphics processing units,简称gpgpu),是一种利用处理图形任务的图形处理器来计算原本由中央处理器处理的通用计算任务。这些通用计算常常与图形处理没有任何关系。由于现代图形处理器强大的并行处理能力和可编程流水线,令流处理器可以处理非图形数据。特别在面对单指令流多数据流(simd),且数据处理的运算量远大于数据调度和传输的需要时,通用图形处理器在性能上大大超越了中央处理器应用程序。
35.硬件编码器:一种显卡内置的视频编码单元。
36.硬件解码器:一种显卡内置的视频解码单元。
37.sp(streamingprocessor、stream processing units):流处理器,是直接将多媒体的图形数据流映射到流处理器上进行处理的,有可编程和不可编程两种。
38.cudacore:一种流处理器。
39.tensorcore:一种专为执行张量或矩阵运算而设计的专用执行单元。
40.nvlink:一种总线及其通信协议。nvlink采用点对点结构、串列传输,用于中央处理器(cpu)与图形处理器(gpu)之间的连接,也可用于多个图形处理器之间的相互连接。
41.gpu实例:一种可以运行gpu任务的容器类型。
42.serverless平台:无服务器计算平台,或者微服务平台。
43.rr轮询:rr轮询调度,是指在一次轮询响应请求中,每个请求信号都会获得响应。
44.随着计算机技术的不断发展,一方面基于gpu的异构计算占比在快速提升,比如:在音视频生产、图形图像处理、ai训练、ai推理、渲染场景等领域gpu被广泛地应用,以取得相较于cpu数倍、乃至数万倍的加速比;另一方面基于云计算的普及以及计算界面的不断上移,越来越多的客户从vm(虚拟机)、容器,迁移至serverless弹性计算平台,使得客户聚焦于其自身的计算任务,屏蔽掉诸多例如集群管理、可观测、诊断等非计算任务本身的细节。
45.而随着serverless平台对gpu异构计算任务的支持,对基于不同异构计算任务的工作负载类型的弹性伸缩需求自然产生。也即是,基于gpu硬件的异构计算任务,会根据工作负载的不同种类,从而使用gpu内置的不同硬件算力单元。例如:音视频生产会使用gpu的硬件编码单元/硬件解码单元,高精度的ai训练任务会使用gpu的tensorcore计算单元,低精度的ai推理任务会使用gpu的cudacore计算单元。基于serverless平台的异构计算任务,需要serverless平台提供一种方法,使得serverless平台的客户可以根据自己的异构计算工作负载类型,选择适当的gpu指标,从而应对流量高峰时的弹性扩容、以及流量低峰时的弹性缩容。
46.基于此,在本说明书提供的一种弹性伸缩方案中,serverless平台通常基于请求并发度来对gpu计算实例进行弹性伸缩,比如:当函数的并发度设置为1时,100并发(即100
个并发的请求)就会创建100个gpu实例;当函数的并发度设置为10时,100并发就会创建10个gpu实例。这种基于请求并发度的弹性伸缩方法,并未真实反映gpu硬件是否充分使用,比如:当函数的并发度设置为10时,100并发所创建的10个gpu实例,每个gpu实例中的gpu内部不同硬件部分;比如:gpu计算单元、gpu存储单元、gpu互联带宽资源,gpu各部件利用率可能仍维持在较低的水平上,从而导致资源浪费、成本浪费。
47.进一步的,参见图1,图1是本说明书提供了一种serverless平台调度框架示意图,该调度框架包括请求接入系统、调度系统、库存系统、gpu实例。其中,当用户完成serverless的服务功能编写后,会向serverless平台的请求接入系统发起函数调用请求。参见图1,图1描述了函数请求在到达serverless平台内部后的处理流程,具体包括:接入请求系统提供了http、https或其它的接入协议,通过该接入写协议将请求调度至调度系统;该调度系统负责向库存系统申请gpu实例,并负责将用户的函数请求,调度至不同的gpu实例,以便运行相应的功能。库存系统负责gpu实例的纳管;当调度系统感知当前的gpu实例无法服务该函数调用时,向库存系统申请新的gpu实例,而库存系统会基于调度系统的申请创建gpu实例。gpu实例负责函数的具体执行。
48.基于此,参见图2,图2是本说明书提供了一种基于请求并发度的serverless调度算法的示意图,该调度方法基于上述图1提供的一种serverless平台调度框架,具体包括如下步骤:
49.步骤202:判断函数请求是否有存活的gpu实例。
50.具体地,serverless能够向用户提供调度入口,当用户通过该调度入口向serverless平台发起函数请求的情况下,该serverless平台判断该函数请求是否具有对应存活的gpu实例,从而将该函数请求调度至该gpu实例。
51.若是,则执行步骤206,若否,则执行步骤204。
52.步骤204:向库存系统申请新的gpu实例。
53.具体地,该serverless平台向库存系统申请新的gpu实例。若申请成功的情况下,则申请获得存活的gpu实例,并执行步骤202,若申请失败的情况下,则执行步骤210。
54.步骤206:遍历所有gpu实例,判断是否有gpu实例的请求并发度小于用户配置的请求并发度。
55.具体地,该serverless平台在确定该函数请求具有存活的gpu实例后,遍历所有gpu实例,并判断是否有gpu实例的请求并发度小于用户配置的请求并发度。若是,则执行步骤208;若否,则执行步骤204。
56.步骤208:调度该请求至满足条件的gpu实例。
57.具体地,该serverless平台将该函数请求,调度至满足条件的gpu实例中。
58.步骤210:调度终止。
59.基于此,该serverless平台默认的基于请求并发度的弹性伸缩调度方法,虽然实现了请求的调度,但并未综合考虑gpu硬件内部各部件的利用率,这会导致当gpu硬件内部各部件的利用率维持在较低水位时,由于请求并发度高于用户设置而引发的弹性扩容,对用户造成了成本浪费。以及当gpu硬件内部各部件的利用率维持在较高水位时,由于请求并发度低于用户设置而引发的弹性缩容,对用户造成了性能损失。
60.综上所述,serverless平台默认的基于请求并发度的弹性伸缩调度方法,并未考
虑gpu硬件内部各部件的利用率,从而导致成本与性能上的损失。
61.基于上述方案中存在的缺陷,本说明书提供的一种任务处理方法中,提出了一种serverl ess平台异构计算任务的弹性伸缩的系统结构,从而解决serverless异构计硬件的弹性伸缩所带来的性能与成本问题。
62.具体地,在本说明书中,提供了一种任务处理方法,本说明书同时涉及一种任务处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
63.图3示出了根据本说明书一个实施例提供的一种任务处理方法的流程图,具体包括以下步骤。
64.步骤302:基于接收的目标任务确定初始虚拟节点的当前状态信息,其中,所述当前状态信息基于初始虚拟节点对应的物理计算单元确定。
65.其中,该目标任务可以理解为需要异构硬件设备进行处理的异构计算任务;例如,该异构计算任务包括但不限于音视频生产任务、图形图像处理任务、ai训练任务、ai推理任务、场景渲染任务等等。
66.该初始虚拟节点可以理解为能够运行异构计算任务的节点,例如,该初始虚拟节点可以为通用计算节点、gpu实例、虚拟机、容器等。
67.该物理计算单元可以理解为支持该初始虚拟节点实现的物理设备;例如,该物理计算单元可以为gpu、gpgpu、vpu、tpu等等。
68.在初始虚拟节点为gpu实例的情况下,该当前状态信息可以理解为该gpu实例对应的gpu中各硬件部件的利用率。需要说明的是,本说明书提供的任务处理方法能够应用于serverless平台、或者serverless平台中的调度系统,调度系统可以理解为将目标任务调度到对应的gpu实例的系统。
69.具体地,该调度系统在接收到目标任务之后,能够基于接收到的目标任务确定所有初始虚拟节点的当前状态信息,其中,该初始虚拟节点的当前状态信息,基于该初始虚拟节点对应的物理计算单元确定。
70.实际应用中,在初始虚拟节点为gpu实例,该物理计算单元为gpu的情况下,初始虚拟节点的当前状态信息基于初始虚拟节点对应的物理计算单元确定,可以理解为将该gpu硬件内部各硬件部件的利用率指标,确定为各硬件部件对应的gpu实例的当前利用率,便于后续基于该利用率进行任务调度。具体实现方式如下。
71.所述基于接收的目标任务确定初始虚拟节点的当前状态信息,包括:
72.基于接收的目标任务,确定所述物理计算单元中的物理计算子单元,以及所述物理计算子单元的当前运行信息;
73.从所述物理计算子单元中确定所述初始虚拟节点对应的目标物理计算子单元;
74.将所述目标物理计算子单元的当前运行信息作为所述初始虚拟节点的当前状态信息。
75.其中,物理计算子单元可以理解为gpu硬件内部各硬件部件,包括但不限于硬件编码器、硬件解码器、sp、cudacore、tensor core等等。物理计算子单元的当前运行信息可以理解为各硬件部件的利用率指标。基于此,调度系统通过确定物理计算单元中各物理计算子单元的当前运行信息,并能够将该当前运行信息作为初始虚拟节点的当前状态信息。例
如,调度系统能够获取该gpu硬件内部各部件的利用率指标,并将该利用率指标确定为gpu实例对应的利用率。
76.初始虚拟节点对应的目标物理计算子单元可以理解为gpu中与该gpu实例对应的硬件设备。
77.下面以本说明书提供的任务处理方法在serverless场景下的应用为例,对基于物理计算单元确定初始虚拟节点的当前状态信息做进一步说明,其中,该物理计算单元为gpu、目标任务为图形图像处理任务,该目标物理计算子单元为硬件编码器和硬件解码器。
78.基于此,serverless平台的调度系统在接收到目标任务的情况下,确定gpu中各硬件单元的当前利用率,并从多个硬件单元中确定gpu实例对应的硬件单元,其中,该处理图形图像处理任务的gpu实例,与硬件编码器、硬件解码器对应。该ai推理处理任务的gpu实例,与cudacore、tensor core对应。将gpu中各硬件单元的当前利用率,作为对应的gpu实例的利用率。
79.本说明书实施例中,在接收的目标任务的情况下,基于物理计算单元中的物理计算子单元的当前运行信息确定初始虚拟节点的当前状态信息,从而便于后续基于利用率为目标任务确定对应的目标虚拟机节点。
80.进一步的,在本说明书提供的一实施例中,所述基于接收的目标任务确定初始虚拟节点对应的物理计算单元之前,还包括:
81.接收信息采集模块发送的、所述物理计算单元中的所述物理计算子单元的当前运行信息,其中,所述信息采集模块为监测所述物理计算单元中的、所述物理计算子单元的当前运行信息的模块。
82.其中,该信息采集模块可以理解为任意一种实现采集物理计算单元的当前运行信息功能的模块,例如gpu监测器。
83.具体地,该信息采集模块能够实时监测物理计算单元中各物理计算子单元的当前运行信息,并将该当前运行信息发送至调度系统;从而该调度系统能够接收信息采集模块发送的、物理计算单元中各物理计算子单元的当前运行信息。例如,gpu监测器能够获取各gpu实例对应的gpu内部各硬件部件的利用率指标,并将利用率指标周期性地同步至调度系统。
84.在本说明书实施例中,也即是说,能够接收信息采集模块发送的该物理计算单元的当前运行信息,便于后续能够基于该当前运行信息确定初始虚拟节点的当前状态信息。其中,该物理计算单元的当前运行信息可以为物理计算单元中各物理计算单元的当前运行信息。
85.进一步地,在本说明书提供的一实施例中,该物理计算单元为gpu;
86.相应地,所述基于接收的目标任务确定初始虚拟节点的当前状态信息,包括:
87.基于接收的目标任务确定所述gpu的硬件部件,以及所述硬件部件的当前利用率;
88.从所述硬件部件中确定所述初始虚拟节点对应的目标硬件部件,并将所述目标硬件部件的当前利用率作为所述初始虚拟节点的当前状态信息。
89.其中,该gpu的硬件部件包括但不限于硬件编码器、硬件解码器、sp、cudacore、tensor core等等。
90.沿用上例,gpu监测器能够获取各gpu实例对应的gpu内部各硬件部件的利用率指
标,并将利用率指标周期性地同步至调度系统。之后serverless平台的调度系统在接收到目标任务的情况下,确定gpu中各硬件单元的当前利用率,并从多个硬件单元中确定gpu实例对应的硬件单元,将gpu中各硬件单元的当前利用率,作为对应的gpu实例的利用率。从而便于后续基于利用率为目标任务确定对应的gpu实例。
91.步骤304:基于所述目标任务的任务类型信息,从所述初始虚拟节点中确定与所述任务类型信息对应的候选虚拟节点。
92.其中,该目标任务的任务类型信息可以理解为表征目标任务的类型的信息,例如,字符、编号等信息。在目标任务为ai训练任务的情况下,该目标任务的任务类型信息可以为表征ai训练任务类型的字符、编号等信息。
93.候选虚拟节点可以理解为初始虚拟节点中能够处理该目标任务的所有虚拟节点。例如,在目标任务为图形图像处理任务的情况下,该候选虚拟节点为能够处理图形图像处理任务的gpu实例,其中,处理图形图像处理任务的gpu实例与gpu中的硬件编码器、硬件解码器对应。
94.具体地,调度系统在确定初始虚拟节点的当前状态信息之后,能够确定该目标任务的任务类型信息,并基于该任务类型信息,从初始虚拟节点中确定与任务类型信息对应的候选虚拟节点,也即是,初始虚拟节点中能够处理该目标任务的所有虚拟节点。
95.步骤306:基于所述候选虚拟节点的当前状态信息为所述目标任务确定对应的目标虚拟节点,并通过所述目标虚拟节点执行所述目标任务。
96.其中,该目标虚拟节点可以理解为需要将该异构计算任务调度至的gpu实例。
97.具体地,该调度系统能够基于候选虚拟节点的当前状态信息为该目标任务添加或选择对应的目标虚拟节点,并通过该目标虚拟节点执行目标任务。
98.在本说明书提供的一实施例中,可以通过扩容gpu实例的方式,为异构计算任务添加对应的gpu实例;也可以从当前存在的gpu实例中为异构计算任务选择硬件性能较优的gpu实例,从而实现灵活的对异构计算任务进行调度,并且节省了硬件资源。基于此,为异构计算任务扩容gpu实例的方式如下。
99.所述基于所述候选虚拟节点的当前状态信息为所述目标任务确定对应的目标虚拟节点,包括:
100.基于所述候选虚拟节点的当前状态信息,为所述目标任务添加对应的目标虚拟节点。
101.具体地,该调度系统在确定候选虚拟节点之后,能够在基于该候选虚拟节点的当前状态信息,确定该一个或多个候选虚拟节点无法处理该目标任务的情况下,为该目标任务重新添加对应的目标虚拟节点,也即是说为该目标任务重新申请或创建一个虚拟节点。
102.进一步地,在本说明书提供的实施例中,所述基于所述候选虚拟节点的当前状态信息,为所述目标任务添加对应的目标虚拟节点,包括:
103.基于所述候选虚拟节点的当前状态信息确定所述候选虚拟节点的目标计算比率;
104.在所述目标计算比率大于等于第一比率阈值的情况下,为所述目标任务添加对应的目标虚拟节点。
105.其中,在当前状态信息为硬件编码单元的利用率的情况下,该目标计算比率可以理解为该后续虚拟节点的利用率;该利用率可以根据实际应用场景进行设置,例如该利用
率可以为0%至100%区间内的任意数值,或者[0,1]区间内的任意数值等等。
[0106]
该第一比率阈值可以根据实际应用场景进行设置,本说明书对此不作具体限定,例如70%、0.7等等。
[0107]
沿用上例,其中,该目标任务可以为音视频生产任务,当前状态信息为硬件编码单元的利用率,该第一比率阈值可以为70%。基于此,调度系统确定gpu实例对应的硬件解码单元的利用率,并将该硬件解码单元的利用率作为该硬件解码单元对应的gpu实例的利用率,其中该利用率可以为80%。之后调度系统在确定该利用率大于第一比率阈值(70%)的情况下,确定该gpu实例的剩余计算能力过低,可能无法执行当前的音视频生产任务。因此,通过gpu实例扩容的方式为音视频生产任务创建新的gpu实例,从而保证音视频生产任务的正常执行。
[0108]
本说明书提供的实施例中,该调度系统可以通过向库存系统申请gpu实例的方式,达到扩容gpu实例的目的,进一步保证异构计算任务的正常执行;具体实现方式如下。
[0109]
所述为所述目标任务添加对应的目标虚拟节点,包括:
[0110]
基于所述目标任务生成虚拟节点获取请求,并将所述虚拟节点获取请求发送至虚拟节点提供模块;
[0111]
接收所述虚拟节点提供模块基于所述虚拟节点获取请求发送的待确定虚拟节点,并将所述待确定虚拟节点确定为所述目标任务对应的目标虚拟节点。
[0112]
其中,该虚拟节点提供模块可以理解为能够为目标任务提供虚拟节点的模块。例如,serverless中的库存系统。相应地,该待确定虚拟节点可以理解为库存系统提供的虚拟节点。例如,库存系统新创建的gpu实例。
[0113]
沿用上例,调度系统在确定现有的gpu实例的利用率不足以运行该音视频生产任务的情况下,能够向库存系统发生gpu实例获取请求,从而申请一个新的gpu实例,而库存系统会基于调度系统的申请,为其创建新gpu实例,并将该新gpu实例发送至调度系统。该调度系统将新申请的gpu实例作为处理该音视频生产任务的gpu实例,后续该调度系统能够将音视频生产任务调度至新gpu实例中运行。
[0114]
进一步地,调度系统从当前存在的gpu实例中,为异构计算任务匹配硬件性能较优的gpu实例的方式如下。
[0115]
所述基于所述候选虚拟节点的当前状态信息为所述目标任务确定对应的目标虚拟节点,包括:
[0116]
基于所述候选虚拟节点的当前状态信息,从所述候选虚拟节点中选择所述目标任务对应的目标虚拟节点。
[0117]
具体地,该调度系统在确定候选虚拟节点之后,能够在基于该候选虚拟节点的当前状态信息,确定该一个或多个候选虚拟节点能够处理该目标任务的情况下,从候选虚拟节点为该目标任务选择一个对应的目标虚拟节点。
[0118]
进一步地,在本说明书提供的实施例中,所述基于所述候选虚拟节点的当前状态信息,从所述候选虚拟节点中选择所述目标任务对应的目标虚拟节点,包括:
[0119]
基于所述候选虚拟节点的当前状态信息确定所述候选虚拟节点的目标计算比率;
[0120]
在所述目标计算比率小于第一比率阈值的情况下,从所述目标计算比率中确定最小目标计算比率;
[0121]
基于所述最小目标计算比率对应的所述候选虚拟节点,确定所述目标任务对应的目标虚拟节点。
[0122]
沿用上例,调度系统确定gpu实例对应的一个或多个硬件解码单元的利用率。在确定该利用率存在小于等于第一比率阈值70%的情况下,确定当前gpu实例中存在能够运行该音视频生产任务的gpu实例。之后该调度系统从小于等于第一比率阈值70%的利用率中,确定最小利用率。
[0123]
在该最小利用率为一个的情况下,将该最小利用率对应的gpu实例确定为运行该音视频生产任务的gpu实例。
[0124]
在该最小利用率为多个的情况下,从多个最小利用率对应的gpu实例中,随机确定一个或多个gpu实例,作为运行该音视频生产任务的gpu实例。
[0125]
在实际应用中,在确定利用率小于等于第一比率阈值70%的情况下,从中确定性能较优的gpu实例还包括:基于所述目标计算比率对所述候选虚拟节点进行排序,获得所述候选虚拟节点的排序结果,其中,所述候选虚拟节点包括至少两个;
[0126]
基于所述排序结果从所述候选虚拟节点中为所述目标任务确定对应的目标虚拟节点。
[0127]
沿用上例,调度系统在确定该利用率小于等于第一比率阈值70%的情况下,确定利用率小于等于第一比率阈值70%的gpu实例,并基于利用率对该gpu实例进行降序排序,获得该gpu实例的排序结果,其中该排序结果中gpu实例越靠前,利用率越小,也即是该gpu实例的性能越优,基于此,该调度系统将音视频生产任务调度至排序结果中第一位、或者排序结果中前特定数量的gpu实例,其中该特定数量可以根据实际应用场景进行设置,例如前三位、前十位。
[0128]
进一步地,在本说明书提供的实施例中,在物理计算单元为gpu。在此情况下,所述通过所述目标虚拟节点执行所述目标任务之后,还包括:
[0129]
在基于所述目标硬件部件的当前利用率确定所述目标任务执行完毕的情况下,删除所述目标虚拟节点。
[0130]
具体地,该调度系统能够实时监测该目标硬件部件的当前利用率,例如,通过gpu监测器组件(gpu monitor)获取各gpu内部的硬件部件的利用率指标,并在根据利用率指标确定目标任务执行完毕的情况下,则删除待删除虚拟机节点,从而节省了硬件资源。
[0131]
此外,参见图4,图4是本说明书一个实施例提供的一种任务处理方法中任务调度的流程图。其中,函数调取请求可以理解为上述目标任务。基于此,调度系统在接收到请求调度的指令后,能够确定该函数请求是否有存活的gpu实例,也即是确定是否有实例能够运行该函数请求。其中,确定该是否有实例能够运行该函数请求的方式,可以通过判断gpu实例的利用率是否小于第一比率阈值(即预设的gpu硬件最大利用率)的方式确定。
[0132]
若否,该调度系统则向库存系统申请新的gpu实例,并在申请成功后,继续判断是否有实例能够运行该函数请求。
[0133]
若是,调度系统则确定存在能够运行该函数调取请求的gpu实例,并通过rr轮询的方式,将该函数调用请求负载均衡至所有的gpu实例,从而执行调度终止。其中,将函数调用请求负载均衡至所有的gpu实例,可以采用上述基于利用率对gpu实例进行排序的方式,确定性能较优的gpu实例,实现负载均衡。
[0134]
基于此,实现了当函数请求到来时,serverless调度系统通过采用rr轮询方式,将请求依次负载均衡至扩容后、缩容后的每个gpu实例,从而保证整体gpu集群被充分使用。
[0135]
在本说明书提供的一实施例中,本说明书提供的任务处理方,可以通过采样gpu硬件内部各部件的利用率,并允许用户根据不同场景的异构计算任务设置不同的弹性伸缩指标,从而解决了过度扩容带来的成本浪费、以及过早缩窄带来的性能损失,
[0136]
本说明书提供的实施例中,考虑到serverless默认的基于请求并发度的弹性伸缩调度方法,并未综合考虑gpu硬件内部各部件的利用率,从而无法解决过度扩容带来的成本浪费、以及过早缩窄带来的性能损失的问题,本说明书提供的任务处理方法,可以通过采样gpu硬件内部各部件的利用率,并允许用户根据不同场景的异构计算任务设置不同的弹性伸缩指标,从而周期性的基于gpu实例的硬件利用率对gpu实例进行弹性伸缩,解决了过度扩容带来的成本浪费、以及过早缩窄带来的性能损失的问题。具体实现方式如下。
[0137]
所述的任务处理方法,还包括:
[0138]
基于初始虚拟节点对应的物理计算单元,确定所述初始虚拟节点的当前状态信息;
[0139]
在基于所述当前状态信息,确定所述初始虚拟节点满足预设节点添加条件的情况下,添加新增虚拟节点;或者
[0140]
在基于所述当前状态信息,确定所述初始虚拟节点满足预设节点删除条件的情况下,删除所述初始虚拟节点中的空闲虚拟节点。
[0141]
具体地,调度系统能够周期性确定该初始虚拟节点对应的物理计算单元,并基于该物理计算单元确定该初始虚拟节点的当前状态信息。例如,实时监测该gpu中各硬件部件的利用率,并基于该各硬件部件的利用率,确定各硬件部件对应的gpu实例的利用率。
[0142]
之后,在基于当前状态信息确定初始虚拟节点满足预设节点添加条件的情况下,则可以确定当前初始虚拟节点的数量过少,从而添加新增虚拟节点;或者
[0143]
在基于当前状态信息确定初始虚拟节点满足预设节点删除条件的情况下,则确定前初始虚拟节点的数量过少,许多虚拟节点的利用率较低,因此删除初始虚拟节点中的空闲虚拟节点。从而灵活且准确地对虚拟节点进行添加和删除,解决了过度扩容带来的成本浪费、以及过早缩窄带来的性能损失。
[0144]
进一步地,在本说明书提供的实施例中,所述在基于所述当前状态信息,确定所述初始虚拟节点满足预设节点添加条件的情况下,添加新增虚拟节点,包括:
[0145]
基于所述初始虚拟节点的当前状态信息,确定所述初始虚拟节点的目标计算比率;
[0146]
在所述目标计算比率大于节点负载阈值的情况下,确定所述初始虚拟节点满足预设节点添加条件;
[0147]
在所述初始虚拟节点满足预设节点添加条件的情况下,基于虚拟节点提供模块添加新增虚拟节点。
[0148]
其中,该节点负载阈值可以理解为预先为每个初始虚拟节点设定的、表征其利用率已经达到负载状态或即将达到负载状态的阈值。此外,该节点负载阈值可以根据实际应用场景进行设置,例如,该节点负载阈值可以设置为80%。
[0149]
具体地,调度系统可以基于初始虚拟节点的当前状态信息,确定踹初始虚拟节点
的目标计算比率,并在确定该目标计算比率大于节点负载阈值的情况下,确定初始虚拟节点满足预设节点添加条件,且在初始虚拟节点满足预设节点添加条件的情况下,向虚拟节点提供模块申请添加新的虚拟节点,从而将虚拟节点提供模块提供的虚拟节点作为新增虚拟节点。
[0150]
沿用上例,本说明书提供的任务处理方法,能够允许用户根据不同场景的异构计算任务设置不同的弹性指标,该弹性指标包括弹性扩容指标和弹性缩容指标。其中,该弹性扩容指标可以理解利用率阈值,也即是节点负载阈值。基于此,调度系统将音视频生产任务调度至性能较优的gpu实例后,能够实时监测gpu实例基于硬件解码单元确定的利用率。在该利用率大于等于用户设置的弹性扩容指标(节点负载阈值)的情况下,该调度系统能够主动向库存系统申请新的gpu实例,并基于该新的gpu实例以及基于利用率为音视频生产任务确定的gpu实例,共同运行该视频生产任务,从而保证了视频生产任务的正常运行。并且实现了用户能够根据不同场景的异构计算任务设置不同的弹性伸缩指标。
[0151]
进一步地,在本说明书提供的实施例中,所述在基于所述当前状态信息,确定所述初始虚拟节点满足预设节点删除条件的情况下,删除所述初始虚拟节点中的空闲虚拟节点,包括:
[0152]
基于所述初始虚拟节点的当前状态信息,确定所述初始虚拟节点的目标计算比率;
[0153]
在所述目标计算比率小于节点空闲阈值的情况下,确定所述初始虚拟节点满足预设节点删除条件;
[0154]
在所述初始虚拟节点满足预设节点删除条件的情况下,删除所述初始虚拟节点中的空闲虚拟节点。
[0155]
其中,该节点空闲阈值可以理解为预先为每个初始虚拟节点设定的、表征其利用率已经达到空闲状态的阈值。此外,该节点空闲阈值可以根据实际应用场景进行设置,例如,该节点负载阈值可以设置为0%、5%。
[0156]
沿用上例,本说明书提供的任务处理方法,调度系统将音视频生产任务调度至性能较优的gpu实例后,能够实时监测该gpu实例中硬件解码单元的利用率。在该利用率小于用户设置的弹性缩容指标(节点空闲阈值)的情况下,该调度系统能够主动向库存系统删除多余的gpu实例,从而在保证视频生产任务的正常运行,节省了硬件资源。
[0157]
在实际应用中,在删除gpu实例的过程中,由于gpu实例中可能还运行有音视频生产任务,因此,调度系统需要在gpu实例对应的任务执行完毕的情况下,将该gpu实例删除。具体方式如下。
[0158]
删除所述初始虚拟节点中的空闲虚拟节点,包括:
[0159]
监测所述空闲虚拟节点的任务执行状态信息;
[0160]
在基于所述任务执行状态信息确定目标任务执行完成的情况下,删除所述空闲虚拟节点。
[0161]
其中,该任务执行状态信息可以理解为表征任务执行进度的信息。
[0162]
具体地,该调度系统能够实时监测该空闲虚拟节点的任务执行状态信息,并在基于任务执行状态信息确定目标任务执行完成的情况下,删除空闲虚拟节点,从而节省了硬件资源。
[0163]
在实际应用中,调度系统能够周期性的进行扩容检查,该扩容检测可以理解为上述实施例中,调度系统根据用户对不同场景的异构计算任务设置不同的弹性指标进行弹性伸缩的内容。参见图5,图5是本说明书一个实施例提供的一种任务处理方法中弹性伸缩的示意图,其中,弹性伸缩基于gpu利用率实现,用户可以配置每个函数的gpu弹性伸缩指标。参见图5,调度系统能够周期性的进行扩容检查,确定该函数(即函数调用请求)所有gpu实现的汇总利用率是否高于用户配置,也即是,确定运行该函数调用请求的所有gpu的汇总利用率,是否高于用户配置的、针对每个函数调用请求的gpu弹性伸缩指标。例如,在音视频场景下,gpu弹性伸缩指标可以配置为,当gpu实例的硬件编码利用率》80%时进行扩容;在ai场景下,gpu弹性伸缩指标可以配置为,当gpu实例的cudacore硬件利用率《20%时,进行缩容。
[0164]
基于此,若是,即若调度系统在确定汇总利用率高于用户配置的情况下,向库存系统申请新的gpu实例,并执行调度终止。若否,即若调度系统在确定汇总利用率低于用户配置的情况下,向库存系统归还已申请的gpu实例,并执行调度终止。
[0165]
需要说明的是,当任务处理方法应用在serverless场景的情况下,针对基于gpu的异构计算任务的弹性伸缩问题,该当前状态信息还可以包括多维度混合指标,从而便于后续基于多维度混合指标进行综合调度决策,以更好的适应各种不同场景下的异构计算任务的伸缩要求。
[0166]
此外,本说明书提供的任务处理方法中的gpu实例扩容,采取较为激进的策略,以保证用户函数的服务性能;而gpu实例缩容,则采取较为懒惰的策略,兼顾保证用户函数的成本。激进系数与懒惰系数,将在图5中的“该函数所有gpu实例的汇总利用率是否高于用户配置”时生效。
[0167]
本说明书提供的任务处理方法,通过在接收到目标任务的情况下,基于初始虚拟节点的当前状态信息以及目标任务的任务类型信息,为该目标任务确定对应的目标虚拟节点,并通过目标虚拟节点执行目标任务,从而满足了准确的为目标任务确定目标虚拟节点的需求。
[0168]
下述结合附图6,以本说明书提供的任务处理方法在基于gpu利用率实现弹性伸缩场景的应用为例,对所述任务处理方法进行进一步说明。其中,图6示出了本说明书一个实施例提供的一种任务处理方法的处理过程流程图,图6提供了一种基于gpu利用率实现弹性伸缩的系统框架,其中,该系统框架包括请求接入系统、调度系统、库存系统、gpu实例,以及gpu监测器(gpu monitor)。该系统框架中的gpu监测器组件(gpu monitor)用于获取各gpu实例的内部硬件部件利用率指标;需要说明的是,根据本说明书提供的任务处理方法所应用的场景不同,该硬件部件也不同;例如,在任务处理方法应用于音视频生产场景的情况下,该硬件部件可以为硬件编码单元、硬件解码单元;在任务处理方法应用于ai生产场景的情况下,该硬件部件可以为cuda core等等;相应地,该硬件部件利用率指标包括但不限于音视频生产场景的硬件编码利用率、音视频生产场景的硬件解码利用率、ai生产场景的cuda core利用率、ai生产场景的tensor core利用率、ai生产场景的nvlink带宽利用率、所有场景的显存利用率等等。
[0169]
基于此,该gpu监测器将这些gpu硬件部分利用率周期性地同步至调度系统,当用户完成serverless的服务功能编写,并向serverless平台的请求接入系统发起函数调用请
求的情况下,该接入请求系统通过接入写协议将请求调度至调度系统,serverless调度系统将基于gpu硬件利用率以及相应的调度策略,对gpu实例进行弹性扩缩容。比如,serverless调度系统将基于gpu硬件利用率以及相应的调度策略,向库存系统申请或归还gpu实例的方式,实现对gpu实例进行弹性扩缩容。需要说明的是,该调度策略可以根据实际应用场景进行设置,本说明书对此不做具体限定,例如图4所展示的调度策略。
[0170]
同时,该serverless调度系统在对gpu实例进行弹性扩缩容之后,将用户的函数请求,调度至不同的gpu实例,以便运行相应的功能;该gpu实例则负责函数的具体执行。
[0171]
本说明书实施例提供的任务处理方法,在serverless场景下,提供一种基于gpu不同维度指标的弹性伸缩控制方法,使不同场景的异构计算任务(音视频生产、ai生产、图形图像生产)可以设置不同的弹性伸缩指标,从而达到性能与成本兼顾的弹性伸缩策略。
[0172]
与上述方法实施例相对应,本说明书还提供了任务处理装置实施例,图6示出了本说明书一个实施例提供的一种任务处理装置的结构示意图。如图6所示,该装置包括:
[0173]
接收模块702,被配置为基于接收的目标任务确定初始虚拟节点的当前状态信息,其中,所述当前状态信息基于初始虚拟节点对应的物理计算单元确定;
[0174]
确定模块704,被配置为基于所述目标任务的任务类型信息,从所述初始虚拟节点中确定与所述任务类型信息对应的候选虚拟节点;
[0175]
执行模块706,被配置为基于所述候选虚拟节点的当前状态信息为所述目标任务确定对应的目标虚拟节点,并通过所述目标虚拟节点执行所述目标任务。
[0176]
可选地,所述执行模块706,还被配置为:
[0177]
基于所述候选虚拟节点的当前状态信息,从所述候选虚拟节点中选择所述目标任务对应的目标虚拟节点。
[0178]
可选地,所述执行模块706,还被配置为:
[0179]
基于所述候选虚拟节点的当前状态信息,为所述目标任务添加对应的目标虚拟节点。
[0180]
可选地,所述任务处理装置还包括节点处理模块,被配置为:
[0181]
基于初始虚拟节点对应的物理计算单元,确定所述初始虚拟节点的当前状态信息;
[0182]
在基于所述当前状态信息,确定所述初始虚拟节点满足预设节点添加条件的情况下,添加新增虚拟节点;或者
[0183]
在基于所述当前状态信息,确定所述初始虚拟节点满足预设节点删除条件的情况下,删除所述初始虚拟节点中的空闲虚拟节点。
[0184]
可选地,所述任务处理装置中,所述物理计算单元为gpu;
[0185]
相应地,所述接收模块702,还被配置为:
[0186]
基于接收的目标任务确定所述gpu的硬件部件,以及所述硬件部件的当前利用率;
[0187]
从所述硬件部件中确定所述初始虚拟节点对应的目标硬件部件,并将所述目标硬件部件的当前利用率作为所述初始虚拟节点的当前状态信息。
[0188]
可选地,所述任务处理装置还包括删除模块,被配置为:
[0189]
在基于所述目标硬件部件的当前利用率确定所述目标任务执行完毕的情况下,删除所述目标虚拟节点。
[0190]
可选地,所述执行模块706,还被配置为:
[0191]
基于所述候选虚拟节点的当前状态信息确定所述候选虚拟节点的目标计算比率;
[0192]
在所述目标计算比率大于等于第一比率阈值的情况下,为所述目标任务添加对应的目标虚拟节点。
[0193]
可选地,所述执行模块706,还被配置为:
[0194]
基于所述目标任务生成虚拟节点获取请求,并将所述虚拟节点获取请求发送至虚拟节点提供模块;
[0195]
接收所述虚拟节点提供模块基于所述虚拟节点获取请求发送的待确定虚拟节点,并将所述待确定虚拟节点确定为所述目标任务对应的目标虚拟节点。
[0196]
可选地,所述执行模块706,还被配置为:
[0197]
基于所述候选虚拟节点的当前状态信息确定所述候选虚拟节点的目标计算比率;
[0198]
在所述目标计算比率小于第一比率阈值的情况下,从所述目标计算比率中确定最小目标计算比率;
[0199]
基于所述最小目标计算比率对应的所述候选虚拟节点,确定所述目标任务对应的目标虚拟节点。
[0200]
可选地,所述节点处理模块,还被配置为:
[0201]
基于所述初始虚拟节点的当前状态信息,确定所述初始虚拟节点的目标计算比率;
[0202]
在所述目标计算比率大于节点负载阈值的情况下,确定所述初始虚拟节点满足预设节点添加条件;
[0203]
在所述初始虚拟节点满足预设节点添加条件的情况下,基于虚拟节点提供模块添加新增虚拟节点。
[0204]
可选地,所述节点处理模块,还被配置为:
[0205]
基于所述初始虚拟节点的当前状态信息,确定所述初始虚拟节点的目标计算比率;
[0206]
在所述目标计算比率小于节点空闲阈值的情况下,确定所述初始虚拟节点满足预设节点删除条件;
[0207]
在所述初始虚拟节点满足预设节点删除条件的情况下,删除所述初始虚拟节点中的空闲虚拟节点。
[0208]
可选地,所述接收模块702,还被配置为:
[0209]
基于接收的目标任务,确定所述物理计算单元中的物理计算子单元,以及所述物理计算子单元的当前运行信息;
[0210]
从所述物理计算子单元中确定所述初始虚拟节点对应的目标物理计算子单元;
[0211]
将所述目标物理计算子单元的当前运行信息作为所述初始虚拟节点的当前状态信息。
[0212]
可选地,所述任务处理装置还包括信息接收模块,被配置为:
[0213]
接收信息采集模块发送的、所述物理计算单元中的所述物理计算子单元的当前运行信息,其中,所述信息采集模块为监测所述物理计算单元中的、所述物理计算子单元的当前运行信息的模块。
[0214]
本说明书提供的任务处理装置,通过在接收到目标任务的情况下,基于初始虚拟节点的当前状态信息以及目标任务的任务类型信息,为该目标任务确定对应的目标虚拟节点,并通过目标虚拟节点执行目标任务,从而满足了准确的为目标任务确定目标虚拟节点的需求。
[0215]
上述为本实施例的一种任务处理装置的示意性方案。需要说明的是,该任务处理装置的技术方案与上述的任务处理方法的技术方案属于同一构思,任务处理装置的技术方案未详细描述的细节内容,均可以参见上述任务处理方法的技术方案的描述。
[0216]
图8示出了根据本说明书一个实施例提供的一种计算设备800的结构框图。该计算设备800的部件包括但不限于存储器810和处理器820。处理器820与存储器810通过总线830相连接,数据库850用于保存数据。
[0217]
计算设备800还包括接入设备840,接入设备840使得计算设备800能够经由一个或多个网络860通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备840可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
[0218]
在本说明书的一个实施例中,计算设备800的上述部件以及图8中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图8所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
[0219]
计算设备800可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备800还可以是移动式或静止式的服务器。
[0220]
其中,处理器820用于执行如下计算机可执行指令,该计算机可执行指令被处理器820执行时实现上述任务处理方法的步骤。
[0221]
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的任务处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述任务处理方法的技术方案的描述。
[0222]
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述任务处理方法的步骤。
[0223]
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的任务处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述任务处理方法的技术方案的描述。
[0224]
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述任务处理方法的步骤。
[0225]
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的任务处理方法的技术方案属于同一构思,计算机程序的技术方案未详
细描述的细节内容,均可以参见上述任务处理方法的技术方案的描述。
[0226]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0227]
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、虚拟节点代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccess memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0228]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
[0229]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0230]
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献