面向大规模多媒体任务的云计算平台设计研究①

2020-10-26 02:54石小兵
关键词:全局实例组件

石小兵

(安徽工业经济职业技术学院 财经学院,安徽 合肥 230001)

0 引 言

为了提高云计算服务的灵活性和可扩展性,云服务平台(如Amazon Elastic Compute Cloud、Google Compute Engine)允许用户按需使用计算单元,即按需使用处理器、内存、存储和操作系统资源,并按年、天、小时甚至分钟计费[1-2]。用户能够在云服务提供商的分布式计算环境上开发和执行任务。为了降低在云计算平台中进行大规模多媒体处理的成本,设计了一个云计算平台——MMC(Multi-Media Cloud)。MMC通过合理地调整多媒体任务所需的资源,在确保任务按时完成的情况下,降低云基础设施的成本。

1 MMC平台总体设计

MMC的体系结构如图1所示,MMC由五个部分组成:前端、云存储和实例类型、监控组件以及本地和全局控制器实例。

用户通过前端提交工作负载,并为此工作负载设置特定的完成时间,或者由MMC分配合适的完成时间。工作负荷可以包括多种类型的多媒体文件以及用于处理输入的脚本和可执行文件。用户通常希望在输入图像或视频上执行诸如面部识别、视频转码的特定任务。当全局控制器实例检测到新的工作负载时,会将工作负载的一小部分输入分配给本地控制器实例。本地控制器实例的计算实例会在这一小部分的输入上执行相应的代码,并向监控组件和相应的全局控制器实例提供执行时间。全局控制器实例根据这些测量值和执行状态的日志来确认工作负载处理过程中所提交的代码是否存在错误,并得出完成该工作负载所需CSP(Compute unit and Seconds Product)的估计值。其中,CSP是指所分配的计算单元数量与其使用时间的乘积,CSP是一个用来量化资源分配的指标。此估计值用于确认MMC是否可以在所请求的特定完成时间内完成工作负载,或相应地调整已分配的完成时间。全局控制器实例对每个工作负载的CSP进行估计,以便为不同的工作负载设置相应的服务费,并按需调整计算单元的数量,以便满足所有已确认的完成时间。最后,所有计算单元产生的结果都上载到前端,以供用户查询。

(1)前端

MMC的前端提供工作负载上传、启动、执行监视、文本文件和图像查看和编辑功能,以及下载正在执行的各个任务的结果。如果用户对任务执行的结果满意或执行不正确,则用户可以利用前端来取消待处理的工作负载。

(2)云存储和示例类型

云存储和示例类型的部署采用云服务提供商提供的存储和实例服务。实例服务需要提供了多种可用配置以及基于每小时预订的灵活计费。MMC使用Linux和Window实例,这些实例支持批处理脚本、Python和Java等高级语言,Javascript、Matlab以及OpenCV和ImageMagick库。根据用户提交的脚本和可执行文件的类型,MMC将这些实例中的任何一个派生到I种实例类型中任意数量的类型i实例。用pi(1≤i≤I)表示每种实例类型的计算单元数量。此外,在第t个时刻,MMC中包含类型i的实例数量为ni[t]。对于ni[t]个实例中的第j个实例,用ai,j[t]表示直到下一个计费周期为止的剩余时间。

图1 MMC平台系统结构

(3)监控组件

为了观察计算单元的利用率,MMC平台设置了一个监控组件,该监控组件通过系统命令监测每个实例中处理器的利用率。在第t个监视时刻,MMC中所有当前正在执行的工作负载的集合共含有M[t]种不同的多媒体类型(如图像类型、音频类型、视频类型)。

在每个监视时刻t,对于每个工作负载w(1≤w≤W[t]),监控组件需要监测被处理的剩余多媒体项目mw,k[t]以及处理工作负载w中类型k的多媒体所需的CSPsbw,k[t]。监控组件持续检测完成每个工作负载w所需的CSPrw[t],rw[t]计算方式如(1)所示:

(1)

MMC还需要监测处于激活状态的计算单元的总数量(如式(2)所示)以及已付费CSP的数量(如式(3)所示)。

(2)

(3)

(4)本地和全局控制器实例

(4)

其中,vw,k[t]是测量的误差。在时刻t,对于每个工作负载w中媒体类型k所需CSPs的估计值如(5)所示:

bw,k[t]=bw,k[t-1]+zw,k[t]

(5)

其中,zw,k[t]是误差。采用卡尔曼滤波对bw,k[t]进行更准确的估计,如(6)、(7)所示:

bw,k[t-1])

(6)

(7)

服务速率sw[t]是指在监视时刻t和t+1之间的时间间隔内分配给工作负载w的计算单元数量。若sw[t]值是一个小数(例如sw[t]=0.7),那么这就意味着为工作负载w分配了一个计算单元,其使用的时间间隔为0.7。给定工作负载完成时间dw[t]和相应的CSP估计,如果出现了sw[t]>Nw,max的情况(其中Nw,max是计算单元数量),那么就需要增加dw[t]以使sw[t]=Nw,max。由此操作便可以得到每一个工作负载w的完成时间。

2 计算单元的调整

全局控制器实例通过基于比例公平性的分配机制来确保每个工作负载都能在其完成时间之前被执行。在每个监视实例t,对于每个工作负载w,全局控制器实例最大化关于服务率的目标函数,从而确保满足所有工作负载的CSP需求rw[t]。目标函数的表达式如下所示:

f(sw[t])=rw[t]ln(sw[t])-dw[t]sw[t]

(8)

(9)

目标函数达到最大值意味着有足够的计算单元来适应需求,因此,能够在每个监视时刻t根据每个工作负载所需的CSP和完成时间进行服务速率分配。然后,可以计算所需的计算单元总数为式(10)。

(10)

(11)

(12)

Ntot[t+1]=

(13)

3 实验评估

为了对所设计的平台进行评估,第三方的云服务所提供的实例来部署MMC。其中,每个实例都有一个对应的本地控制器实例,当全局控制器实例检测到该本地控制器实例处于空闲,就会为其分配新任务。另外,采用一个单独的实例作为全局控制器实例。实验使用的参数设置为:α=5,β=0.9,Nmin=10,N=100,Nw,max=10。监控组件使用SQL数据库来记录每个工作负载中完成的任务。最后,产生的结果以及中间进度的摘要通过前端的Web界面传达给用户。

将MMC与亚马逊的Autoscale服务(AAS)进行对比[3]。 AAS不对CSP进行估计,只根据CPU利用率和带宽限制来控制实例数量。AAS每隔5min检查一次所有使用的计算单元的平均CPU使用率。如果检测到平均CPU利用率超过20%,则将启动新实例。否则,AAS会关闭部分活动的实例。在AAS中执行了所有工作负载,并测量了完成工作负载的最长时间。

图2 累计成本对比

图3 深度学习工作负载下累积成本对比

图2展示了在两种方法的累积成本。显然,AAS的成本明显高于MMC的成本。这主要是因为AAS仅基于CPU利用率进行决策,因此即使在工作负载处理即将完成时,它也会继续扩大实例的数量。而且只有在工作负载完成后,CPU利用率降低的情况下,AAS才减小实例数量。总体而言,图2的结果表明,MMC所采用的基于AIMD的计算单元管理是一种简单有效的方法,可降低云计算基础架构所产生的成本,同时满足每个工作负载的完成时间约束。

考察Dithn平台在深度学习工作负载下的性能。该深度学习任务是一个基于深层卷积神经网络[4]的图像分类任务,并采用ImageNet[5]作为输入数据集。实验结果如图3所示。由实验结果可知,AAS的成本要高于MMC的成本(约30%)。

4 结 语

MMC是一个面向大规模多媒体的云计算平台,该平台支持上载和执行多媒体处理工作负载。MMC中的实例负责执行工作负载中的任务,并使用AIMD算法来调整计算单元的数量,以提高计算单元的利用率。MMC使用卡尔曼滤波估计器来计算每种任务与每种工作负载所需的计算单位秒。实验结果表明,MMC能够降低云计算的成本,并确保在规定的时间内完成工作负载任务。

猜你喜欢
全局实例组件
Cahn-Hilliard-Brinkman系统的全局吸引子
无人机智能巡检在光伏电站组件诊断中的应用
量子Navier-Stokes方程弱解的全局存在性
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
落子山东,意在全局
风起新一代光伏组件膜层:SSG纳米自清洁膜层
新思路:牵一发动全局
完形填空Ⅱ
完形填空Ⅰ