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

一种资源共享感知的在线任务卸载方法与流程

2022-04-02 10:21:43 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,更具体地,涉及一种资源共享感知的在线任务卸载方法。


背景技术:

2.基于云的交互式应用程序对用户的网络环境要求高,难以满足用户的延迟要求。利用新兴的移动边缘计算和5g网络,交互式应用程序的渲染任务被卸载到距离用户近的边缘服务器上,可以降低用户延迟。
3.边缘计算以本地化云的形式出现。电信运营商正在将现有通信网络中的基础设施升级为移动边缘计算平台,存在诸如蜂窝无线电基站的接入站点,诸如容纳分布式天线系统的聚合站点,以及诸如中心局的核心站点。这些站点配备了计算和存储资源、冷却、电力系统等,并且经过重新设计,可以容纳边缘服务器。由于边缘服务器靠近用户,利用移动边缘计算可以降低用户请求的响应时间。
4.基于云的交互式应用程序,例如虚拟现实和云游戏,利用云资源来处理计算密集型任务,这种方式可以避免用户设备对高端硬件(通常昂贵且能耗高)的需求,使客户端轻量化。然而,基于云的交互式应用需要高吞吐量和低延迟的网络连接。如果用户与数据中心之间的距离远,那么用户的低延迟要求将难以满足。利用新兴的移动边缘计算,边缘辅助交互式应用程序将计算密集型3d渲染任务卸载到移动边缘计算系统中,并通过5g连接将边缘渲染的视频流传输给终端用户。由于边缘服务器靠近终端用户,这种方式能够大幅度地降低延迟。
5.如图1所示,一个边缘辅助交互式应用系统由云服务器、边缘服务器和用户设备组成。云服务器托管应用程序的核心逻辑;边缘服务器负责渲染和编码;用户设备负责解码和显示。三者之间形成了一个信息环。云服务器生成渲染命令,并传输给边缘服务器;边缘服务器渲染生成视频帧,并传输给用户设备;用户设备生成控制命令,并传输给云服务器,其接收到之后更新应用程序逻辑。
6.在现有技术中,根据优化目标可以将边缘计算中任务卸载划分为三类:最小化任务延迟、最小化系统成本以及同时最小化任务延迟和系统成本。尽管这些技术方案以不同的方式来降低任务的时延,或者降低系统的成本,但均没有考虑任务的多维资源共享的特性,而利用任务之间的资源共享,可以有效地降低资源消耗,从而降低系统的成本。
7.以运行渲染任务为例,其涉及多种类型的资源,如存储、内存、gpu内存、cpu、gpu和带宽。除了带宽外,每种类型的资源都可以被同一台服务器提供服务的多位用户共享。利用渲染任务具有多维度的资源共享的特征,可以将共享资源的用户分配到同一台服务器上,从而节省资源消耗和成本。参见图2的示例来说明资源共享。第一,对于一个应用程序(示例中为多人3d国际象棋游戏),渲染素材(棋盘和棋子)存储在存储器中,这些素材可以被多个应用程序实例共享。一个实例是应用程序的一次执行,例如示例中对应一局国际象棋游戏,其中每一方都有两位互相合作的用户。第二,在一个实例中,这些缓存数据可以被该实例的
所有渲染任务共享。第三,某些用户在整个应用程序运行过程中拥有相同的视角,因此这些用户可以共享由cpu和gpu运行的渲染任务,例如示例中的用户1和用户2共享视角,因此共享渲染任务1。利用这种多维资源共享的特性,可以将一个应用实例的用户分配到一起来节省资源消耗。
8.一个应用程序实例的多位用户通常位于网络的不同位置,给定若干配备了服务器的边缘站点供用户卸载任务,要将每位用户的渲染任务卸载到某个边缘站点的某台服务器上。由于交互式应用程序对延迟敏感,在选择进行卸载的边缘站点时,要确保每位用户的延迟都能满足要求。此外,不同站点的服务器的成本可能不相同。因此,需要提供新的任务卸载方法,以利用渲染任务的多维资源共享的特性,最小化使用的服务器的成本,或者在服务器成本相同的情况下,最小化使用服务器的数量。


技术实现要素:

9.本发明的目的是克服上述现有技术的缺陷,提供资源共享感知的在线任务卸载方法。该方法包括:
10.对站点进行排序,得到站点序列,其中用c表示排序第一的站点;
11.执行以下步骤,直到用户集合中的用户任务已装载或目标站点已遍历:基于实例的用户集合u和目标站点集合v’,通过求解建模的用户分配问题将用户预分配到站点,其中v’表示站点序列中从站点c开始的所有站点的集合,所述用户分配问题的优化目标是满足每位用户的延迟要求,并最大化资源共享的机会;在当前站点c中,对得到的用户集合中的用户任务通过求解建模的服务器装载问题,确定待装载任务的服务器,其中所述服务器装载问题的优化目标是针对预分配给各站点的用户,使用最少的服务器装载其任务,并满足服务器的资源容量限制。
12.与现有技术相比,本发明的优点在于,利用了任务的多维资源共享的特性,提供进行卸载渲染任务的新技术方案,既能使每位用户的延迟满足需求,同时又能最小化使用的服务器的成本,成本可以是租赁成本或能源消耗等。
13.通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
14.被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
15.图1是现有技术中边缘辅助交互式应用的系统架构示意图;
16.图2是现有技术中的资源共享示例;
17.图3是根据本发明一个实施例的用户分配示例;
18.图4是根据本发明一个实施例的随着实例数量的增加,成本降低率也随之增加的示意图;
19.图5是根据本发明一个实施例的在服务器成本相等的情况下的成本降低率示意图;
20.图6是根据本发明一个实施例的动态环境中的性能示意图;
21.图7是根据本发明一个实施例的多种延迟限制值下的成本示意图;
22.图8是根据本发明一个实施例的延迟限制为40ms的成本降低率示意图;
23.图9是根据本发明一个实施例的不同权重值θ下集合划分块的基数的经验累积分布函数示意图;
24.图10是根据本发明一个实施例的不同权重值θ下的成本降低率示意图。
具体实施方式
25.现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
26.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
27.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
28.在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
29.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
30.本发明提出了一种共享感知(sharing-aware)的在线任务卸载方法,用于优化单个应用的多个实例的任务卸载问题,目标是使每位用户的延迟要求都得到满足,同时最小化使用的服务器的成本。本发明交替和迭代地求解两个子问题:用户分配问题和服务器装载问题。
31.用户分配问题是将用户分配到边缘站点,使得每位用户的延迟都满足要求,同时最大化资源共享的机会。在一个实施例中,将用户分配问题建模成集合划分问题,并提出了一种启发式算法来求解。
32.服务器装载问题是在每个站点中,针对上述预分配给该站点的用户,使用最少的服务器装载其渲染任务,同时要满足服务器的资源容量限制。在一个实施例中,将服务器装载问题建模成多维装箱问题。然而,资源共享的特点使得服务器装载问题变复杂。因此,进一步地,提出了可以将每个用户视为一个物品,或者将一组共享视角的用户视为一个物品,或者将同属于一个实例的用户视为一个物品,然后对多个物品求解装箱问题。上述三种装载方式的区别在于粒度不同,装载方案和产生的成本也不同。因此,存在三种粒度级别:单个用户级别,共享视角用户组级别和实例级别。为了找到一种实现最低成本的粒度级别,将粒度决策问题建模成多臂赌博机问题,并使用强化学习算法来求解。
33.在下文中,将首先对用户延迟进行分析,然后,分别介绍任务卸载问题、用户分配问题和服务器装载问题,并详细介绍共享感知的在线卸载方法和其包含的两个子方法:共享感知的用户分配算法和粒度决策算法。
34.1)、用户延迟分析
35.渲染任务的卸载位置会影响用户延迟。如图1所示,在边缘辅助交互式应用中,用户延迟由传输控制命令的上行延迟、传输渲染命令和渲染后的视频帧的下行延迟组成。渲
染任务的卸载位置与下行延迟有关,而与上行延迟无关。因此,本文以考虑下行延迟为例进行说明。
36.假设用户u的渲染任务被卸载到边缘站点v,其下行延迟用t
uv
表示。令r和f分别表示渲染命令和视频帧的平均数据大小,令bv和dv分别表示从云服务器到边缘站点v的下行吞吐量和延迟,可以得到传输渲染命令的延迟为:
[0037][0038]
令b
vu
和d
vu
分别表示从边缘站点v到用户设备u的下行吞吐量和延迟,可以得到传输视频帧的延迟为:
[0039][0040]
根据公式(1)和公式(2),可以得到下行延迟:
[0041][0042]
由公式(3)可知,下行延迟与v的位置有关。因此,在卸载渲染任务时,需要确保每位用户的延迟要求都得到满足。
[0043]
2)、任务卸载问题建模
[0044]
给定一个应用程序和一组实例(用i表示),每个实例是该应用程序的一次执行,其由一位或多位用户参与。另外,给定一组边缘服务器(用s表示),分布在一组边缘站点(用v表示)中。假设所有边缘服务器的硬件配置都是相同的,边缘服务器的成本取决于其所在的边缘站点的位置。本发明的目标是将这些实例的渲染任务卸载到边缘服务器上,并最小化总成本。以下的建模可以扩展到异构边缘服务器的场景,如服务器的硬件配置不相同,或服务器的容量不相同等情况,并且所提出的方法也可以应用到异构边缘服务器的场景。
[0045]
将任务分配问题定义为:给定一组用户u和一组边缘服务器s,将u中的每位用户分配给s中的一台边缘服务器,不仅要使得每位用户的延迟要求得到满足,而且每台边缘服务器上的资源受其容量限制,同时最小化所使用的边缘服务器的总成本。对于每位用户,为其提供服务的渲染任务将运行在所分配的服务器上。对于每台服务器,所有的共享视角的用户将共享同一个渲染任务。
[0046]
令布尔变量x
uj
表示服务器j是否托管用户u的渲染任务。每位用户必须被分配到一台服务器上,表示为:
[0047][0048]
如前所述,用户延迟取决于卸载任务的站点。令t
uv
表示将用户u的任务卸载到站点v所产生的网络延迟。对于站点v中的任何一台服务器j,有t
uj
=t
uv
。因此,用户u的延迟是∑
j∈s
t
uj
x
uj
。延迟以一个可容忍的最大值为上限,用τ表示。因此,可表示为:
[0049][0050]
接下来,对资源约束进行建模。假设每台边缘服务器都有充足的存储空间来托管应用程序。否则,某些服务器会因为无法托管任何渲染任务而被忽略。令向量p=(pc,pg,pm,p
gm
,pb)表示每台服务器的cpu、gpu、内存、gpu内存和带宽容量。为简单起见,假设渲染任务
对每种资源的需求量均为一个单位。渲染任务的多维资源共享的特性使对资源约束的建模变得复杂,因此,引入辅助变量。
[0051]
假设u中的用户分为若干共享视角的用户组,用k表示。为了对cpu和gpu的资源约束进行建模,引入布尔变量y
kj
,表示服务器j是否托管共享视角用户组k的渲染任务。因此,服务器j上的任务数为∑
k∈kykj
。由于可能存在的任务共享,该任务数可能小于分配给服务器的用户数量(即∑
u∈u
x
uj
)。令布尔变量wj表示服务器j是否已启动。从而,容量约束可表示为:
[0052][0053][0054]
上述两个约束可以进行合并,令pk表示每台服务器允许的最大任务数,即:
[0055]
pk=min{pc,pg} (8)
[0056]
将上述公式(6)和(7)两个约束替换为:
[0057][0058]
公式(9)的约束确保了如果wj为0,则所有变量y
kj
一定为0。
[0059]
为了对内存和gpu内存的资源约束进行建模,引入了布尔变量z
ij
,表示服务器j是否托管实例i∈i。然后,容量约束可表示为:
[0060][0061][0062]
因为任何两个实例都有单独的内存和gpu内存,因此,对所有实例求和。上述公式(10)和(11)的两个约束也可以进行合并,令pi表示每台服务器允许的最大实例数,即:
[0063]
pi=min{pm,p
gm
}
ꢀꢀ
(12)
[0064]
然后,将上述公式(10)和(11)的两个约束替换为:
[0065][0066]
与可以共享的资源不同,假设用户不能共享带宽。因此,带宽约束可以表示为:
[0067][0068]
需要注意的是,上述变量之间存在某种关系。首先,x
uj
和y
kj
必须满足约束:
[0069][0070]
其中k(u)表示用户u所属的共享视角用户组。这意味着只有当y
k(u),j
为1时x
uj
才为1。也就是事件服务器j托管用户组k(u)是事件服务器j托管用户u的必要条件。y
kj
和z
ij
之间也存在类似的关系。如果服务器j托管了用户组k,那么它必定托管了用户组所属的实例。令i(k)表示包含用户组k的实例,那么有以下表达式:
[0071][0072]
最后,公式(13)给出了必要条件z
ij
≤wj。
[0073]
本发明的目标是最小化所使用的服务器的总成本,例如应用程序提供商支付给边缘计算服务提供商的总费用。令cv表示站点v中每台服务器的成本,对于站点v中的任何服务器j,都有cj=cv。目标是最小化∑
j∈scj
wj。因此,将任务分配问题建模为如下所示的布尔线性规划:
[0074][0075]
3)、用户分配问题建模
[0076]
用户分配问题是将用户分配到边缘站点,不仅要使得每位用户的延迟要求得到满足,而且要最大化资源共享。最终,给定的用户集合被划分成不相交的子集,每个子集被分配到一个站点。不同的划分将导致不同的资源消耗,从而产生不同的成本。找到最佳的划分是一个集合划分问题。
[0077]
参见图3所示来说明用户分配问题。给定4个边缘站点(用正方形表示)和8位用户(用圆形表示)。用户都属于同一个实例,但属于2个不同的共享视角用户组,用实心圆和空心圆区分用户组。在该示例中,用二分图表示用户和站点之间的关系,即如果用户的延迟要求在一个站点上得到满足,则用户和站点之间存在一条边。其中浅灰色边表示可行的分配,
深灰色边表示实际的分配。每个站点都有一组与之相连的用户,与站点v相连的用户集合用rv表示。例如,在图3(a)中,r3={u2,u3,u4,u7}。被分配到站点v的用户,其延迟要求必须得到满足,因此这些用户必须是rv的子集。此外,每位用户必须被分配到某一个站点。因此,分配给每个站点的用户集合必须两两互不相交,并且这些集合的并集等于整个用户集合。也就是说,用户分配的结果是一种集合划分。例如,图3(b)中的用户分配方案{{u1},{u2,u3,u4},{u5,u6,u7,u8}}是一种集合划分,图3(c)中的用户分配方案{{u1,u3},{u2,u5,u6},{u4,u7},{u8}}是另一种集合划分。两种分配方案都是有效的,但可能产生不同的成本。图3(b)中的分配方案需要3个渲染任务,分别在站点v1、v3和v4中运行,因为在站点v3中,用户u2、u3和u4共享视角,因此共享同一个渲染任务。分配到站点v4的用户也是如此。相比之下,图3(c)中的分配方案在每个站点中需要的渲染任务数量分别是1、2、2和1个,总共6个。任务数量越多,产生的成本越高。
[0078]
下面,定义用户分配问题。令u表示某一个实例的用户集合,区别于前面表示所有实例的用户集合所使用的符号u。给定一个实例的用户集合u和一组边缘站点v,用户分配问题是求解u的一种划分。一种划分对应一个索引族(indexed family),由u的子集组成,索引集合是v,用{uv:v∈v}表示。索引族满足以下两个约束。
[0079]
1)所有子集的并集等于u,即:
[0080]uv∈v
uv=u (18)
[0081]
2)所有子集是两两互不相交的,即:
[0082][0083]
划分出的一个划分块uv对应于被分配到站点v的用户集合。
[0084]
划分要确保每位用户都被分配到一个边缘站点,并且用户的延迟要求在分配的站点上得到满足。令rv表示u中所有在站点v上满足延迟要求的用户,则可以表示为:
[0085]rv
={u∈u|t
uv
≤τ} (20)
[0086]
因此,划分给边缘站点v的用户集合uv必须满足:
[0087][0088]
为了将此约束引入集合划分问题的建模,引入了一个二元组《v,a》,表示站点v和该站点的一个可行集然后,得到一个由候选二元组构成的集合:
[0089][0090]
因此,问题变成给定u和选择的子集组成u的一种划分,这意味着所选择的二元组的第二个元素能够满足约束(18)和(19)。
[0091]
可以从中得到u的多种划分。但是,不同的划分会导致不同类型的资源共享,从而导致不同的资源(内存和处理器)消耗。例如,考虑一种划分,每位用户被分配到不同的边缘站点,那么就没有资源共享,导致资源消耗高。相比之下,考虑另一种划分,所有用户都被分配到同一个边缘站点,如果他们的渲染任务被装载到同一台服务器上,那么就可以共享资源,从而降低资源消耗。
[0092]
给定公式(22)中定义的由候选二元组构成的集合优选地,选择基数大的集合a,因为资源共享的机会更大。此外,倾向于选择成本低的边缘站点。为了同时满足以上两项
要求,可以将二元组的成本定义为:
[0093]
c(《v,a》)=cv|a|-θ (23)
[0094]
成本越低越好。θ是|a|的权重,用于平衡服务器的成本和集合的基数。θ的值会影响资源共享的程度。
[0095]
因此,将单个实例的用户分配问题定义为:给定某个实例的一组用户u,一个公式(22)中定义的集合和一个成本函数c:找到一个中成本最小的子集,使其组成u的一种划分。这是一个集合划分问题。这种建模确保了每位用户都被分配到某一个边缘站点,并且用户的延迟要求在该站点上得到满足,即满足数学模型(17)的前两个约束。在下文中,将介绍共享感知的用户分配算法来求解该问题。
[0096]
3)、服务器装载问题
[0097]
一旦用户被分配到边缘站点,将求解服务器装载问题。对于每个站点,给定一组分配给它的用户,本发明的优化目标是使用最少的服务器来装载用户的渲染任务。根据数学模型(17),每个服务器具有三种资源容量约束:实例数量受限、共享视角用户组数量受限以及用户数量受限。因此,服务器装载问题可以建模成一个三维装箱问题。
[0098]
由于将一些用户的任务装载在一起可能会降低资源消耗,因而资源共享使服务器装载问题变得复杂。在一个实施例中,可以将每个用户当作一个资源需求为《1,1,1》的物品,装在一个容量为《pi,pk,pb》的箱子里。三元组中的每个元素分别对应实例数量、任务数量和用户数量。或者,可以将属于同一个共享视角用户组的用户组合在一起,将其视为资源需求为《1,1,nb》的物品,其中nb是该用户组的用户数量。类似地,可以将属于同一实例的用户组合在一起,将其视为一个资源需求为《1,nk,nb》的物品,其中nk和nb分别是该实例中的任务(即用户组)数量和用户数量。不同级别的粒度可能会产生不同的成本。粗粒度(如实例)可以最大化共享资源,但可能会因为物品的尺寸大而导致资源浪费。相比之下,细粒度(如用户)不能最大化资源共享,但由于物品尺寸小,因此可能更充分地利用资源。因此,需要找到一种最佳的粒度级别,以最小化装载的成本。
[0099]
根据仿真实验,发现最佳的粒度级别取决于多种因素,例如服务器的容量《pi,pk,pb》,延迟限制τ,各个边缘站点的服务器成本是否相同等。在不同情况下,最佳的粒度级别也不相同,通过分析模型很难得到粒度级别的决策公式。因此,在一个实施例中,使用强化学习方法从经验中学习最佳粒度级别。
[0100]
具体地,将粒度决策问题建模成多臂赌博机问题。给定三种动作(粒度级别),每一步,选择一个动作(粒度级别),对于之后依次卸载的k个实例,都用该动作(粒度级别)进行服务器装载。每一步都重复此过程。一些服务器会被启动来装载实例,启动服务器的数量越少越好。因此,将动作的奖励(用r表示)定义为新启动的服务器数量(用c表示)的负数,即r=-c。本发明的目标是在长期的动作选择中最大化预期的总回报。在下文将具体介绍利用粒度决策算法来求解该粒度决策问题。
[0101]
当选定某一种粒度级别,就将一组用户按照该粒度级别构成一组物品,然后使用最少的服务器来装载其渲染任务,同时满足三维资源容量的约束。三维装箱问题是np难问题,有许多近似或启发式算法能够求解该问题。例如,可以使用传统的首次适应(first-fit)算法:在装载一个新的物品时,算法会按顺序扫描已启动的服务器,将物品装载在满足容量约束的第一台服务器中;如果已启动的服务器中没有任何一台满足容量约束,就启动
一台新服务器。为了确定一个物品是否满足服务器的容量约束,需要评估资源容量约束(9)、(13)和(14),并考虑数学模型(17)中列出的资源共享。值得注意的是,本发明的粒度决策算法适用于任何装箱算法。
[0102]
考虑上述问题的一个特例:每个应用程序实例中只有一个用户组。在这种情况下,用户组和实例是一一对应的。数学模型(17)中的两个变量y
kj
和z
ij
变得相同了,因此两个对应的容量约束变成一个:
[0103][0104]
结果,服务器装载问题变成了基数受限的装箱问题(cardinality constrained bin packing problem),仍然是np难问题,已有一些近似算法被提出用于求解该问题。
[0105]
在下文中将介绍求解上述建模问题涉及到的算法。
[0106]
1)共享感知的用户分配算法
[0107]
对于上述将用户分配问题建模成集合划分问题,公式(22)中定义的二元组集合的基数是指数级的,所以直接求解该问题效率低下。因此,在一个实施例中,提出了一种高效的启发式算法(共享感知的用户分配算法)来求解,算法不从指数级基数的集合中选择一种划分,而是从集合的一个子集开始,即:
[0108][0109]
集合的元素数量只有|v|个。
[0110]
具体地,共享感知的用户分配算法步骤包括:
[0111]
步骤s101,由给定的某一个实例的用户集合u和一组边缘站点v,可以得到二元组集合每个二元组的第一个元素为站点v,第二个元素为用户集合u的子集rv,其为在站点v上满足延迟要求的用户。
[0112]
步骤s102,从集合中选择成本效益最小的二元组(称为《v
*
,a
*
》),作为用户集合u对应站点v的划分块。
[0113]
步骤s103,更新集合从每个二元组中删除步骤s102中已经被分配的用户(即a*),以确保所选的二元组是两两互不相交的。
[0114]
步骤s104,从集合中移除无效二元组
[0115]
步骤s105,重复步骤s102至s104,直到所选二元组的并集等于u。
[0116]
2)粒度决策算法
[0117]
在一个实施例中,将粒度决策问题建模成多臂赌博机问题,使用强化学习中的动作价值(action-value)方法来求解该问题。令q(a)表示动作a的价值函数,用该价值函数来评价选择每个动作的优劣。价值函数q(a)是通过计算选择动作a的步骤中获得的平均奖励得到的。价值函数q(a)的初始值对收敛影响很大,首先初始化q(a),再利用q(a)来选择动作。在价值函数q(a)的初始化阶段,在m个步骤中选择动作a来初始化q(a)。令n(a)表示选择动作a的次数。
[0118]
具体地,粒度决策算法包括以下步骤:
[0119]
步骤s201,根据以下规则初始化价值函数q(a),每个步骤,依次采取用户组粒度级别、实例粒度级别和用户粒度级别三个动作。循环上述过程直到每个动作均被选择了m次,结束初始化阶段。将m个步骤中动作a获得的平均奖励赋值给q(a),将m赋值给n(a)。
[0120]
步骤s202在初始化阶段结束以后,以1-ξ的概率选择价值函数q(a)值最高的动作,以ξ的概率随机选择动作。
[0121]
步骤s203,使用动作a对依次到达的k个实例进行服务器装载。统计在此期间新启动服务器的数量,将其负数作为动作a获得的奖励r。
[0122]
步骤s204,计数函数n(a)增加1。
[0123]
步骤s205,利用计数函数n(a)更新价值函数q(a),即q(a)=q(a) [r-q(a)]/n(a)。
[0124]
步骤s206,重复步骤s202至s205。
[0125]
在上述算法中,参数ξ平衡了强化学习中的探索和利用。参数m影响初始化的质量,并进一步影响学习的过程。m越大,价值函数越接近真实值,但是m过大可能会导致算法的收敛变慢。参数k是每一个步骤执行卸载的实例的数量,它会影响奖励的质量。如果k太小,极端情况下为1,则每个动作的奖励都非常相似甚至为0,以至于无法区分动作的优劣;如果k太大,价值函数的更新需要卸载大量的实例,同时会导致算法的收敛变慢。
[0126]
3)共享感知的在线卸载方法
[0127]
接下来,基于上述介绍的子算法介绍在线卸载方法。本发明按照实例到达的顺序一个一个地进行卸载。对于每个实例,首先求解用户分配问题,然后求解每个站点的服务器装载问题。但是,一个站点可能无法容纳分配给它的所有用户,因为在进行用户分配的时候没有考虑每个站点的服务器数量。因此,按照成本非递减的顺序对站点进行排序,然后依次对站点进行服务器装载,目的是优先利用成本最低的站点,在站点成本相同的情况下,服务器较多的站点优先,以避免在服务器装载时发生资源不够的情况。
[0128]
具体地,共享感知的在线卸载方法卸载任意一个实例的步骤包括:
[0129]
步骤s301,按照站点的成本非递减的顺序对站点进行排序,如果成本相同,则具有更多服务器的站点优先级更高。令c表示当前成本最低的站点。
[0130]
步骤s302,根据步骤s301得到的站点序列,令v’表示序列中从站点c开始的所有站点的集合。基于实例的用户集合u和站点集合v’,用户分配算法可以求解得到用户集合u的一个集合划分{uv:v∈v’},其中,当前站点c对应的用户集合为uc。
[0131]
步骤s303,由粒度决策算法得到当前的最佳粒度级别。
[0132]
步骤s304,根据步骤s303得到的粒度级别,使用首次适应算法,在当前站点c中对步骤s302得到用户集合uc中的用户的任务进行服务器装载,直到服务器不够。
[0133]
步骤s305,从实例的用户集合u中删除步骤s304中成功装载任务的用户。
[0134]
步骤s306,根据步骤s301得到的站点序列,将当前站点c的下一个站点作为站点c。
[0135]
步骤s307,重复步骤s302至s306,直到用户集合u中的所有用户的任务都已装载或所有站点都已尝试。
[0136]
综上,本发明的共享感知的卸载方法(或称为sao),在卸载渲染任务时考虑了资源共享。与不考虑资源共享的算法(或称为sbo)相比,尽管不考虑共享的卸载算法(sbo)与本发明的方法一样交替、迭代地求解用户分配子问题和服务器装载子问题,但sbo算法使用不同的用户分配算法和服务器装载算法。对于每个实例,sbo算法将每位用户分配给延迟满足
要求且成本最低的边缘站点,如果成本相同,则服务器最多的站点优先。另外,在服务器装载时,sbo算法使用首次适应算法且以用户为粒度。需要注意的是,对于任何一种方法,在首次适应算法中,在确定一个物品(可以是一位用户、同属于一个共享视角用户组的一组用户、或同属于一个实例的一组用户)是否满足服务器的容量约束时,必须考虑数学模型(17)中的资源共享。
[0137]
进一步地,为了验证本发明的效果,进行了仿真实验,并将本发明与以用户为粒度(sao-u)、以用户组为粒度(sao-g)和以实例为粒度(sao-i)进行服务器装载的算法进行了比较。使用下面定义的成本降低率来评估算法的性能:
[0138][0139]
在仿真实验中,如果没有另外说明,设置的参数如表1所示。实例依次启动并保持运行直到实验结束。每个实验结果都是经过20次随机仿真实验获得的。实验中,将算法的参数设置如下:θ=1,ξ=0,k=200,m=1。因此,在粒度决策算法中,价值函数的初始化需要3mk=600个实例。此外,在粒度决策算法中,从第二步开始初始化,因为第一步的服务器都是未启动的,从零开始可能会导致奖励的偏差较大。
[0140]
表1仿真环境的参数设置
[0141][0142][0143]
1)、成本的降低
[0144]
对比sbo算法,本发明可以显著降低成本。如图4所示,本发明的方法(sao)比sbo算法降低了高达52%的成本。性能的提升来自两个方面:1)共享感知的用户分配算法;2)粒度决策算法。首先,与sbo算法相比,sao-u算法的成本降低了50%。这表明同样是以用户为粒度进行服务器装载,利用资源共享可以降低成本。此外,本发明的方法(sao)优于sao-u算法大约两个百分点。这表明粒度决策算法可以进一步降低成本。
[0145]
表2通过20次4000个实例的随机仿真实验,粒度决策算法在各种情况下的收敛结果。
[0146]
表2实验结果
[0147]
环境参数实例用户组用户默认的延迟限制τ,默认的服务器成本1640
默认的延迟限制τ,服务器成本相同0416延迟限制τ=40ms,默认的服务器成本0200
[0148]
如表2第一行所示,在20次4000个实例的随机仿真实验中,粒度决策算法在16次实验中收敛到实例的粒度级别,在4次实验中收敛到用户组的粒度级别。
[0149]
接下来,将所有服务器的成本设为相同值。由图5可知,本发明的方法(sao)可以降低成本多达30%。在这种情况下,sao-i算法的性能非常差,因为在服务器成本相等的情况下,|a|-θ
在公式(23)中占主导地位,因此实例中的用户更加紧密地聚合起来,以实例为粒度进行服务器装载,尽管可以最大化资源共享,但由于物品的尺寸大而导致资源浪费。相比之下,sao-u算法的性能最好,因为以用户为粒度的物品的尺寸小,可以充分地利用资源。本发明的方法(sao)通过学习几乎得到了最好的性能。如表2第二行所示,在20次有4000个实例的随机仿真实验中,粒度决策算法在16次实验中收敛到用户的粒度级别,在4次实验中收敛到用户组的粒度级别,成功地避开了性能最差的实例这一粒度级别,几乎收敛到了最佳的粒度级别。
[0150]
2)、动态环境下的性能
[0151]
当一个实例启动时,本发明的方法为其分配资源,当实例完成时,被占用的资源将被释放并在之后重新利用。在上述动态环境中评估算法的性能,4000个实例依次到达和离开,实例的到达时间间隔服从均值为500毫秒的指数分布,实例的运行时间服从10到20分钟的均匀分布。其他参数设置如表1所示。实验结果通过20次随机仿真实验获得。图6(a)显示了随着时间的推移,系统中正在运行的实例的平均数量。在每一次仿真实验中,随着实例的依次到达,正在运行的实例的数量先增加,接着在第一个实例离开前达到最大,并保持了一段时间,然后在最后一个实例到达后减少。图6(b)显示了随着时间推移,各算法的平均成本降低率。与sbo算法相比,本发明的方法(sao)降低了40%以上的成本,学习到了服务器装载的最佳粒度。
[0152]
3)、延迟限制τ的影响
[0153]
针对评估延迟限制τ对性能的影响,比较了延迟限制τ在三种值下的服务器成本:20毫秒、30毫秒和40毫秒。由于sbo算法在延迟限制τ为20毫秒时会消耗大量服务器,在这组实验中,将每个站点的服务器数量设置为服从100到150的均匀分布。如图7所示,随着延迟限制的增加,本发明的方法(sao)和sbo算法的成本都降低了。原因是延迟限制的值越高,每个边缘站点中延迟要求满足的用户越多,资源共享和降低成本的机会越大。
[0154]
图8显示了当延迟限制τ为40毫秒时的成本降低率。与延迟限制τ为30毫秒的情况不同,sao-i算法性能较差。因为延迟限制的值越高,每个边缘站点中延迟要求满足的用户越多,在用户分配之后,更多的用户可能聚集在一起。以实例为粒度进行服务器装载,由于物品的尺寸大,会导致资源浪费。本发明的方法(sao)通过学习得到了最好的性能。如表2第三行所示,在20次4000个实例的随机仿真实验中,粒度决策算法在所有实验中都收敛到用户组的粒度级别。
[0155]
4)、权重值θ的的影响
[0156]
进一步地,评估θ对性能的影响,即|a|(集合划分块的基数)相对于cv(服务器的成本)的权重。图9显示了在有2000个实例的仿真实验中,划分块基数的经验累积分布函数。如果θ的值较大,共享感知的用户分配算法倾向于选择包含更多用户的划分块。
[0157]
图10显示了在不同的θ值下本发明的方法(sao)的成本降低率。在问题规模较大的情况下,随着θ从0增加到1,性能变好,因为|a|的权重提高了站点中用户的聚合度,增加了用户之间资源共享的机会。然而,随着θ的进一步增加,性能变差。因为|a|的权重变大,导致服务器的成本被忽视,虽然用户的聚合度变高,但是用户可能被分配给一些服务器成本高的边缘站点。在一个实施例中,将θ设置为1,用以在服务器成本和用户聚合之间取得良好的平衡。
[0158]
综上所述,本发明提出了一种共享感知的在线卸载方法,用于求解单个应用的多个实例的任务卸载问题,能够使实例中的每位用户的延迟需求都得到满足,同时最小化所使用的服务器的成本。本发明利用了任务的多维资源共享的特性,通过资源共享降低资源消耗,从而降低系统的成本。提出了一种共享感知的用户分配算法,用于将用户分配到边缘站点,使每位用户的延迟满足要求,同时最大化资源共享。算法考虑使用户的延迟满足要求,同时将用户聚合起来,最小化服务器的成本并提高用户之间资源共享的机会。此外,提出了使用强化学习方法从经验中学习装载任务的最佳粒度级别。由于采用不同的粒度级别进行服务器装载产生的成本不同,利用最佳的粒度级别可以降低服务器装载产生的成本。
[0159]
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0160]
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0161]
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0162]
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 、python等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网
络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0163]
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0164]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0165]
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
再多了解一些

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

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

相关文献