CN106293947B - 虚拟化云环境下gpu-cpu混合资源分配系统和方法 - Google Patents

虚拟化云环境下gpu-cpu混合资源分配系统和方法 Download PDF

Info

Publication number
CN106293947B
CN106293947B CN201610681905.9A CN201610681905A CN106293947B CN 106293947 B CN106293947 B CN 106293947B CN 201610681905 A CN201610681905 A CN 201610681905A CN 106293947 B CN106293947 B CN 106293947B
Authority
CN
China
Prior art keywords
resource allocation
resource
constraint condition
current point
cpu
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.)
Active
Application number
CN201610681905.9A
Other languages
English (en)
Other versions
CN106293947A (zh
Inventor
卢秋旻
靳丹
杨波
张磊
杨鹏
杨明杰
郑毅
李晨曦
王刚
姚建国
管海兵
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.)
Shanghai Jiaotong University
Information and Telecommunication Branch of State Grid Gansu Electric Power Co Ltd
Original Assignee
Shanghai Jiaotong University
Information and Telecommunication Branch of State Grid Gansu Electric Power Co Ltd
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 Shanghai Jiaotong University, Information and Telecommunication Branch of State Grid Gansu Electric Power Co Ltd filed Critical Shanghai Jiaotong University
Priority to CN201610681905.9A priority Critical patent/CN106293947B/zh
Publication of CN106293947A publication Critical patent/CN106293947A/zh
Application granted granted Critical
Publication of CN106293947B publication Critical patent/CN106293947B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种虚拟化云环境下GPU‑CPU混合资源分配系统和方法包括注入模块、分配器;注入模块负责设置钩子,并通过睡眠方式限制进程占用资源;分配器负责调用资源分配算法得到资源分配目标值,并将资源分配目标值发送给注入模块。本发明提供了FEA算法与资源分配框架,用以高效地进行多重异构混合资源的动态资源分配。通过这个资源分配的操作,提升资源分配的公平性,同时保证其效率。本发明能够显著提升多个CPU‑GPU多重混合资源需求任务运行时资源分配的公平性与效率。任务在使用分配算法时的公平性,最高有45%的提升。本发明在提升公平性的同时,也通过FEA算法的约束条件,以保证任务运行的效率质量。

Description

虚拟化云环境下GPU-CPU混合资源分配系统和方法
技术领域
本发明涉及GPU-CPU混合资源分配,具体地,涉及虚拟化云环境下GPU-CPU混合资源分配系统和方法。
背景技术
当前,随着用于高性能并行处理的云计算技术不断成熟,这种技术极大地提高了资源的利用率并且降低了客户端的成本。这是一个简易有效的提升用户体验与任务效率的方法。对于用户而言,这个趋势能够通过使用智能手机等轻量级客户端来在较少支出的前提下得到同等服务。对于服务提供商而言,用于高性能并行处理的云计算技术同样能够使他们使用同等设备支出提供更好服务。
考虑所有或许会在虚拟化云环境下得到更好的运行性能的应用与服务,其中大多数都具有异构资源的混合需求。而对于CPU与GPU运算资源的混合需求就是在这其中的一个典型例子。这种情况导致了在资源分配与调度上的许多困难。这些困难包括如何在有多种异构资源需求的情况下定义每一个任务对于资源的使用量,如何在这种情况下度量某一种资源分配方案的公平性以及效率,还有如何设计真正实际可用的资源分配算法等。
论及对于单种类型资源的分配与调度早已存在许多成熟的研究。其中关键性的一点,即对于分配方案公平性的度量,也存在许多各种各样的测度方式。但相比之下,对于多重类型的混合资源分配所进行的研究就要少得多。实际上,最重要的就是如何在具有多重资源需求的情况下准确评判其公平性。在这种情况下,每一个计算任务对于计算资源的需求将不再是一个单独的标量,而是一个向量,同时,对于每一个计算任务的资源分配也是如此。因为计算任务对于资源需求的异构性,这些计算任务中的每一个所需求的不同计算资源之间并非是成比例的。这也就意味着不能简单地以其中一种资源的需求作为计算任务总体资源需求的代表来计算资源分配,而是需要特殊的方法将需求向量标量化以计算其公平度。存在一种使用“主导资源份额(Dominant Resource Share)”来进行的资源分配公平性定义:主导资源公平性(Dominant Resource Fairness)。在此基础上,建立了名为“主导份额公平”(Fairness on Dominant Shares)的FDS公平性评价函数:
Figure BDA0001081786950000021
其中,
Figure BDA0001081786950000022
表示FDS公平性评价函数;β表示公平性参量;n表示工作任务总种数;μj表示第j种工作任务的主导份额(Dominant Share);xj表示第j种工作任务的任务数量;μk表示第k种工作任务的主导份额;xk表示第k种工作任务的任务数量;λ表示效率权重参量;sgn是符号函数;
另,使用Ci表示第i种资源的容量,Ri表示第i种资源的需求。
然而,虽然可以通过上述FDS公平性评价函数建立对于资源最优化分配的数学理论模型与问题描述,以此可以比较简单的列出几种方案来计算最优资源分配方案,但我们仍然需要将数学上的理论建模转化为实际可运行的算法。事实上,此处的资源分配问题,形成了一个典型的非线性规划问题。周期性的解算这样高复杂度的问题以求得资源分配值是极不可行的,因此我们亦需要建立一个有效算法以降低对于计算资源的额外消耗。
对于云端游戏,当前的解决方案仍然尚欠完善。所谓云端游戏,指的是将游戏的主体程序在云端托管,将其运行时所需要进行的大量图形场景渲染计算以及后台变化交互运算等需要占用大量硬件资源的工作任务交由云端进行执行,然后在得到每一帧的渲染图像之后,将这一系列图像作为视频,以流媒体的方式进行压缩与传送,通过网络由客户端接收并还原。在这种情况下,客户端部分的硬件负载仅仅需要承担网络流媒体视频解压播放的任务,极大地减小了客户端的运算资源消耗,使得客户端的硬件性能限制几乎不会再对客户体验产生影响。
这正是一个CPU与GPU运算资源混合需求的典型应用场景。对于大多数游戏而言,均具有大量的场景绘制渲染,以及后台的活动、变化的计算任务。这也就意味着其基本上都会涉及到大量的CPU以及GPU资源的占用与消耗。同时对于不同的游戏而言,它们对于CPU与GPU这两种资源分别的消耗一般来说都是各不相同的,这涉及对于异构混合资源分配的需求。另外,游戏在运行过程中,对于两种计算资源的需求一般来说并不是稳定的,而是不断变化的。这意味着云端游戏的完善需要满足其特殊需求的资源分配算法及其相应的工作平台系统。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种虚拟化云环境下GPU-CPU混合资源分配系统和方法。
根据本发明提供的一种虚拟化云环境下GPU-CPU混合资源分配系统,其特征在于,包括注入模块、分配器;
注入模块负责设置钩子,收集进程运行时数据并传出数据,接收来自分配器的资源分配目标值,并通过睡眠方式限制进程占用资源;
分配器负责监视进程,执行动态链接库注入,创建进程间通信通道,接收并管理来自注入模块的进程运行时数据,调用资源分配算法得到资源分配目标值,并将资源分配目标值发送给注入模块。
优选地,注入模块收集进程运行时数据,然后通过双向管道,传输至分配器;分配器负责接收并汇总进程运行时数据,并以一定时间间隔运行资源分配算法迭代调度资源分配目标值,并通过双向管道将资源分配目标值回传至注入模块;注入模块根据资源分配目标值,通过对FPS高于阈值的进程强制睡眠,以控制运行状态,并收集进程运行时数据作下一周期资源分配。
优选地,所述资源分配算法,包括:
步骤1:首先计算中间变量S1、S2为:
Figure BDA0001081786950000031
Figure BDA0001081786950000032
其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;
步骤2:计算公平性评价函数
Figure BDA0001081786950000033
Figure BDA0001081786950000034
其中,λ表示效率权重参量;sgn是符号函数;
步骤3:计算公平性评价函数梯度向量:
Figure BDA0001081786950000035
其中,
Figure BDA0001081786950000036
代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额。
根据本发明提供的一种虚拟化云环境下GPU-CPU混合资源分配方法,包括:
步骤1:首先计算中间变量S1、S2为:
Figure BDA0001081786950000041
Figure BDA0001081786950000042
其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;
步骤2:计算公平性评价函数
Figure BDA0001081786950000043
Figure BDA0001081786950000044
其中,λ表示效率权重参量;sgn是符号函数;
步骤3:计算公平性评价函数梯度向量:
Figure BDA0001081786950000045
其中,
Figure BDA0001081786950000046
代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额。
根据本发明提供的一种虚拟化云环境下GPU-CPU混合资源分配系统,包括:
第一计算装置:首先计算中间变量S1、S2为:
Figure BDA0001081786950000047
Figure BDA0001081786950000048
其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;
第二计算装置:计算公平性评价函数
Figure BDA0001081786950000049
Figure BDA00010817869500000410
其中,λ表示效率权重参量;sgn是符号函数;
第三计算装置:计算公平性评价函数梯度向量:
Figure BDA00010817869500000411
其中,
Figure BDA0001081786950000051
代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额。
与现有技术相比,本发明具有如下的有益效果:
本发明提供了FEA算法与资源分配框架,用以高效地进行多重异构混合资源的动态资源分配。通过这个资源分配的操作,提升资源分配的公平性,同时保证其效率。本发明能够显著提升多个CPU-GPU多重混合资源需求任务运行时资源分配的公平性与效率。任务在使用分配算法时的公平性,最高有45%的提升。本发明在提升公平性的同时,也通过FEA算法的约束条件,以保证任务运行的效率质量。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为虚拟化云环境下GPU-CPU混合资源分配系统的结构图示意图。
图2为整体公平性评价值在不同情况下随时间变化图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种虚拟化云环境下GPU-CPU混合资源分配系统,其特征在于,包括注入模块、分配器;
注入模块负责设置钩子,收集进程运行时数据并传出数据,接收来自分配器的资源分配目标值,并通过睡眠方式限制进程占用资源;
分配器负责监视进程,执行动态链接库注入,创建进程间通信通道,接收并管理来自注入模块的进程运行时数据,调用资源分配算法得到资源分配目标值,并将资源分配目标值发送给注入模块。
优选地,注入模块收集进程运行时数据,然后通过双向管道,传输至分配器;分配器负责接收并汇总进程运行时数据,并以一定时间间隔运行资源分配算法迭代调度资源分配目标值,并通过双向管道将资源分配目标值回传至注入模块;注入模块根据资源分配目标值,通过对FPS高于阈值的进程强制睡眠,以控制运行状态,并收集进程运行时数据作下一周期资源分配。
优选地,所述资源分配算法,包括:
步骤1:首先计算中间变量S1、S2为:
Figure BDA0001081786950000061
Figure BDA0001081786950000062
其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;
步骤2:计算公平性评价函数
Figure BDA0001081786950000063
Figure BDA0001081786950000064
其中,λ表示效率权重参量;sgn是符号函数;
步骤3:计算公平性评价函数梯度向量:
Figure BDA0001081786950000065
其中,
Figure BDA0001081786950000066
代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额。
根据本发明提供的一种虚拟化云环境下GPU-CPU混合资源分配方法,包括:
步骤1:首先计算中间变量S1、S2为:
Figure BDA0001081786950000067
Figure BDA0001081786950000068
其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;
步骤2:计算公平性评价函数
Figure BDA0001081786950000069
Figure BDA00010817869500000610
其中,λ表示效率权重参量;sgn是符号函数;
步骤3:计算公平性评价函数梯度向量:
Figure BDA0001081786950000071
其中,
Figure BDA0001081786950000072
代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额。
根据本发明提供的一种虚拟化云环境下GPU-CPU混合资源分配系统,包括:
第一计算装置:首先计算中间变量S1、S2为:
Figure BDA0001081786950000073
Figure BDA0001081786950000074
其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;
第二计算装置:计算公平性评价函数
Figure BDA0001081786950000075
Figure BDA0001081786950000076
其中,λ表示效率权重参量;sgn是符号函数;
第三计算装置:计算公平性评价函数梯度向量:
Figure BDA0001081786950000077
其中,
Figure BDA0001081786950000078
代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额。
下面对本发明进行更为具体的说明。
为了能够保证分配算法在实际应用之中的有效性,算法的性质必须兼顾精确度与时间复杂度,并需要在二者之间进行权衡。因此,在设计迭代最优化求解算法之时,完全将数学公式转换成为等价的数值计算程序是不可行的。为了保证高效性,我们认为算法应该具有以下特性:
首先,算法每进行一次迭代,均可以得到一个近似的可行解,这也就保证了每次算法运行所获得的结果值均可以被用作进行资源调度分配,而不必检测近似解是否可行,同时也不必在某一次调用算法时多次执行算法。
其次,算法在分配参数保持稳定不变的情况下经过多次迭代能够精确收敛至最优值。这点同样非常重要,因为这保证了算法的正确性,同时不会产生因为算法设计上的不足而使得分配结果不断震荡,无法稳定在正确的精确值之上。
再其次,算法可以接受在两次迭代之间分配参数及当前迭代出发点发生修改,并基于之前迭代所确定的搜索步长等迭代结果直接执行,而不需要每一次修改问题参数之后,均需要从原始点重新开始迭代求解问题。这可以说是对于分配器而言,非常重要的一个算法性质。因为在分配器运行的过程中,其所监视的相关进程对于资源与性能的需求并非稳恒不变的,相反,这些参数往往时时刻刻波动着。同时当下一次检测到每一个相关进程的执行时完成工作任务的速率,也一般不可能与分配值精确相等。如果算法无法满足这个性质,那么每一次算法获得新的运行时数据之时,就意味着迭代需要重新开始,花费多次迭代最终稳定,这是非常低效的。
最后,算法可以牺牲一定的收敛速度,但每一次求出近似解的迭代计算应该尽量简单,减少计算量,保证每一次迭代都能够尽可能快地完成。这样的话,就能够比较轻松的通过每次调用的迭代次数,控制算法收敛的速度,使得算法的配置更为灵活,同时,使得一定时间间隔内因为分配迭代而导致的计算代价尽量减小。
除此以外,因为实际应用之中的算法所求解的最优化问题,实际上的约束条件是线性的,同时数量也有限定:因为当前系统仅仅考虑CPU与GPU二种计算资源的分配,约束条件亦即为二种计算资源总量的约束,即约束条件仅为两个,这亦使得算法能够得到极大简化。
下文将会简单列出算法的基本流程(目标函数最小值求解,一次迭代):
步骤(1):计算当前点是否违反CPU资源约束条件。
步骤(2):若违反CPU资源约束条件,则计算当前点在CPU资源约束方程超平面上的正交投影,进入步骤(3);否则,则跳转至步骤(4)。
步骤(3):将当前点设置为此正交投影。
步骤(4):计算当前点是否违反GPU资源约束条件。
步骤(5):若违反GPU资源约束条件,则计算当前点在CPU资源约束方程超平面上的正交投影,进入步骤(6);否则,则跳转至步骤(7)。
步骤(6):将当前点设置为此正交投影。
步骤(7):计算目标函数(公平性函数取负,以便将最大化问题化为最小化问题)在当前点位置的梯度值,并将梯度值标准化(保证向量模为一)。
步骤(8):如果当前点不在约束条件边界上,或虽然在约束条件边界上,但梯度方向指向边界外侧,则设置搜索方向为梯度反方向,跳转至步骤(11),其中,约束条件边界是指CPU资源约束条件边界或GPU资源约束条件边界;否则,则进入步骤(9)。
步骤(9):如果当前点在CPU资源约束条件边界或GPU资源约束条件边界上,且梯度方向指向边界内侧,计算梯度向量在约束条件方程超平面上的正交投影向量。
步骤(10):设置搜索方向为此正交投影向量反方向,并稍稍减小搜索步长。
步骤(11):计算当前点,当前点沿搜索方向延长长度为步长到达的点,当前点沿搜索方向延长长度为步长的0.618倍到达的点分别的目标函数值a,b,c。
步骤(12):若a≥b≥c,则返回c作为目标函数值,对应点为近似可行解。且当a>b>c连续数次,则增加搜索步长(加快收敛速度,应对迭代间隙参数变化)。
步骤(13):若b>a,则返回a作为目标函数值,对应点为近似可行解。较多减小搜索步长。
步骤(14):其余情况,则返回b作为目标函数值,对应点为近似可行解。较少减小搜索步长。
通过上述过程在一定时间间隔下的多次迭代,我们能够使用近似值逼近原资源分配问题的非线性规划,得到近似的资源分配最优化。在使用少量计算资源的前提下完成资源分配的优化,提升其公平性与效率。
虽然上文的算法设计已经使得原先的每一次求近似解时的多重循环迭代修改成了除进行向量运算遍历向量分量之外不存在循环,然而此时算法的复杂度仍然受到对于目标函数进行计算的计算复杂度影响。
首先,上文之中的公式作为目标函数,此处列出的公式形式考虑的是其实际意义,乘积的每一项具有不同的数学含义,但为了运算的简便,可以做出如下变形:
Figure BDA0001081786950000091
其中,
Figure BDA0001081786950000092
表示FDS公平性衡量函数;β表示参量;n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;λ表示参量;sgn是符号函数;
同时,由此可以相应计算出梯度向量的每一个分量:
Figure BDA0001081786950000093
Figure BDA0001081786950000101
其中,
Figure BDA0001081786950000102
代表梯度向量的第i个分量,即函数梯度;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额;
这样相比原先的公式,在进行计算之时复杂度就大大降低了。原先需要进行二重循环遍历来计算函数值,现在则仅需要一次循环遍历即可计算得出结果。
然而,我们可以发现,现在所给出的公式之中,仍有一些部分被不必要的重复计算了,即
Figure BDA0001081786950000103
项以及
Figure BDA0001081786950000104
项,因此,假设中间变量S1、S2为:
Figure BDA0001081786950000105
Figure BDA0001081786950000106
则公式分别化为:
Figure BDA0001081786950000107
以及
Figure BDA0001081786950000108
对于梯度而言,通过事先计算S1、S2这两项和值,相比原先每次计算一个分量便必须要进行一次计算的求和项仅仅只需要进行一次计算,省去了重复计算的时间耗费。
资源分配系统框架的设计与实现,在对于多重资源混合分配的方法分析与比较的工作之中,位于重要的基础位置。它需要完成一系列包括收集数据、消息通信、进程管理、运行并评估资源分配算法的作业。同时,还需要在一定程度上保证框架整体的灵活度,使得系统框架具有一定的可配置性与可重用性。
总体来说,整个资源分配系统分为三部分。分别是注入模块、资源分配器以及输出显示器。输出显示器可参照现有技术实现,不再赘述。注入模块负责设置钩子,收集相关进程运行时数据,传出数据,接收资源分配目标值并通过睡眠方式限制进程占用资源。而资源分配器负责监视相关进程,执行动态链接库注入,创建进程间通信通道,接收并管理相关进程运行时数据,调用资源分配算法,发送计算结果目标值并接受用户输入。
资源分配器在开始对于相关进程进行资源分配之后,其功能执行的流程循环:首先由注入模块收集运行时数据,然后通过双向管道,传输至资源分配器,由资源分配器负责接受并汇总数据,并以一定时间间隔运行资源分配算法迭代调度目标值,并通过双向管道回传至注入模块,注入模块根据资源分配目标值,通过对FPS过高的进程强制睡眠,控制其运行状态,同时收集数据作下一周期资源分配。而图1主要表现的是在整个资源分配平台系统之中,各进程之间的关系。可以看出,资源分配器是作为中心存在的。状态显示程序负责显示所有资源分配器所产生的状态变化输出,而与资源分配相关的虚拟机进程则由资源分配器负责注入插入模块,负责一些必须在进程内部运行的工作。而无论是状态显示程序还是虚拟机进程,均通过特别配置的双向管道,与资源分配器进程进行通信。
本发明主要涉及两个主要的发明点:动态资源分配框架,基于FDS的多重混合资源分配算法,记为FEA算法。其中动态资源分配框架主要用以完成一系列包括收集数据,消息通信,进程管理,运行并评估调度算法的任务,是一种新型的动态云端游戏任务运行平台,用以支持我们设计的基于FDS的多重混合资源分配算法。本发明提供的虚拟化云环境下GPU-CPU混合资源分配方法,包括基于FDS的多重混合资源分配算法,主要用以在低计算资源耗费的前提下,近似的,迭代化的动态适应任务资源需求并进行公平性与效率的最优化分配。
通过这两个发明点的共同作用,我们能够得到的效果为:显著提升多个CPU-GPU多重混合资源需求任务运行时资源分配的公平性与效率。任务在使用分配算法时的公平性,最高有45%的提升。同时,我们在提升公平性的同时,也通过FEA算法的约束条件,以保证任务运行的效率质量。
我们将通过一个具体实施例来做进一步说明。
在本实施例中,运行平台的配置确定如下。在硬件上,系统硬件的型号是:
(1)CPU:Intel Core i7-2600k 3.4GHz
(2)内存RAM:16GB
(3)显卡:AMD HD6750
(4)显存:2GB
物理机的操作系统限制为Windows 7 64位版本,因为涉及到调度系统平台模块中用以实现动态链接库注入以及钩子功能的开源模块EasyHook的兼容性问题,操作系统限制为原生未更新状态。虚拟机运行的系统使用的是VMWare Player v4.0。另外每一个虚拟机都配置为有两个CPU核,2GB内存。另外调度参数取λ=-0.5,β=2。在下文实验之中,调度算法均每秒执行一次,每次运行十次迭代。
在此处,我们使用三个虚拟机,分别运行游戏DiRT 3在1920*1080分辨率下,运行游戏NBA2k在1920*1080分辨率下,以及Farcry 2benchmark在1024*768分辨率下。
对照组为其余资源分配计算及虚拟机与调度器通信均同上,但不设置调度目标,使虚拟机运行于未调度情况下,以及VGASA策略(限制所有任务每秒最多渲染30帧),以虚线分别列出,并以实线表示三十次间隔动态平均值。可以从图上看出的是,在经过调度之后,公平性的震荡相比之下降低同样明显,同时资源分配的公平性有了整体的改善。定量的来说,分别有标准差是0.252,0.150,平均值-3.436,-3.042,相比未调度情况,有11.5%提升。同时,相比VGASA策略,有45%提升。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (2)

1.一种虚拟化云环境下GPU-CPU混合资源分配系统,其特征在于,包括注入模块、分配器;
注入模块负责设置钩子,收集进程运行时数据并传出数据,接收来自分配器的资源分配目标值,并通过睡眠方式限制进程占用资源;
分配器负责监视进程,执行动态链接库注入,创建进程间通信通道,接收并管理来自注入模块的进程运行时数据,调用资源分配算法得到资源分配目标值,并将资源分配目标值发送给注入模块;
所述资源分配算法,包括:
步骤1:首先计算中间变量S1、S2为:
Figure FDA0002625747480000011
Figure FDA0002625747480000012
其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;
步骤2:计算公平性评价函数
Figure FDA0002625747480000013
Figure FDA0002625747480000014
其中,λ表示效率权重参量;sgn是符号函数;
步骤3:计算公平性评价函数梯度向量:
Figure FDA0002625747480000015
其中,
Figure FDA0002625747480000016
代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额;
其中,所述资源分配算法包括用于计算目标函数在当前点位置的梯度值以逼近资源分配目标值;
所述资源分配算法的一次迭代的过程:
步骤(1):计算当前点是否违反CPU资源约束条件;
步骤(2):若违反CPU资源约束条件,则计算当前点在CPU资源约束方程超平面上的正交投影,进入步骤(3);否则,则跳转至步骤(4);
步骤(3):将当前点设置为此正交投影;
步骤(4):计算当前点是否违反GPU资源约束条件;
步骤(5):若违反GPU资源约束条件,则计算当前点在CPU资源约束方程超平面上的正交投影,进入步骤(6);否则,则跳转至步骤(7);
步骤(6):将当前点设置为此正交投影;
步骤(7):计算目标函数;
步骤(8):如果当前点不在约束条件边界上,或虽然在约束条件边界上,但梯度方向指向边界外侧,则设置搜索方向为梯度反方向,跳转至步骤(11),其中,约束条件边界是指CPU资源约束条件边界或GPU资源约束条件边界;否则,则进入步骤(9);
步骤(9):如果当前点在CPU资源约束条件边界或GPU资源约束条件边界上,且梯度方向指向边界内侧,计算梯度向量在约束条件方程超平面上的正交投影向量;
步骤(10):设置搜索方向为此正交投影向量反方向,并减小搜索步长;
步骤(11):计算当前点,当前点沿搜索方向延长长度为步长到达的点,当前点沿搜索方向延长长度为步长的0.618倍到达的点分别的目标函数值a,b,c;
步骤(12):若a≥b≥c,则返回c作为目标函数值,对应点为近似可行解;且当a>b>c连续数次,则增加搜索步长;
步骤(13):若b>a,则返回a作为目标函数值,对应点为近似可行解;减小搜索步长;
步骤(14):其余情况,则返回b作为目标函数值,对应点为近似可行解;减小搜索步长;
通过上述的过程在一定时间间隔下的多次迭代,使用近似值逼近原资源分配问题的非线性规划,得到近似的资源分配最优化;
注入模块收集进程运行时数据,然后通过双向管道,传输至分配器;分配器负责接收并汇总进程运行时数据,并以一定时间间隔运行资源分配算法迭代调度资源分配目标值,并通过双向管道将资源分配目标值回传至注入模块;注入模块根据资源分配目标值,通过对FPS高于阈值的进程强制睡眠,以控制运行状态,并收集进程运行时数据作下一周期资源分配。
2.一种虚拟化云环境下GPU-CPU混合资源分配方法,其特征在于,包括:
通过注入模块设置钩子,收集进程运行时数据并传出数据,接收来自分配器的资源分配目标值,并通过睡眠方式限制进程占用资源;
通过分配器监视进程,执行动态链接库注入,创建进程间通信通道,接收并管理来自注入模块的进程运行时数据,调用资源分配算法得到资源分配目标值,并将资源分配目标值发送给注入模块;
所述资源分配算法,包括:
步骤1:首先计算中间变量S1、S2为:
Figure FDA0002625747480000031
Figure FDA0002625747480000032
其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;
步骤2:计算公平性评价函数
Figure FDA0002625747480000033
Figure FDA0002625747480000034
其中,λ表示效率权重参量;sgn是符号函数;
步骤3:计算公平性评价函数梯度向量:
Figure FDA0002625747480000035
其中,
Figure FDA0002625747480000036
代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额;
其中,所述资源分配算法包括用于计算目标函数在当前点位置的梯度值以得到资源分配目标值;
所述资源分配算法的一次迭代过程:
步骤(1):计算当前点是否违反CPU资源约束条件;
步骤(2):若违反CPU资源约束条件,则计算当前点在CPU资源约束方程超平面上的正交投影,进入步骤(3);否则,则跳转至步骤(4);
步骤(3):将当前点设置为此正交投影;
步骤(4):计算当前点是否违反GPU资源约束条件;
步骤(5):若违反GPU资源约束条件,则计算当前点在CPU资源约束方程超平面上的正交投影,进入步骤(6);否则,则跳转至步骤(7);
步骤(6):将当前点设置为此正交投影;
步骤(7):计算目标函数;
步骤(8):如果当前点不在约束条件边界上,或虽然在约束条件边界上,但梯度方向指向边界外侧,则设置搜索方向为梯度反方向,跳转至步骤(11),其中,约束条件边界是指CPU资源约束条件边界或GPU资源约束条件边界;否则,则进入步骤(9);
步骤(9):如果当前点在CPU资源约束条件边界或GPU资源约束条件边界上,且梯度方向指向边界内侧,计算梯度向量在约束条件方程超平面上的正交投影向量;
步骤(10):设置搜索方向为此正交投影向量反方向,并减小搜索步长;
步骤(11):计算当前点,当前点沿搜索方向延长长度为步长到达的点,当前点沿搜索方向延长长度为步长的0.618倍到达的点分别的目标函数值a,b,c;
步骤(12):若a≥b≥c,则返回c作为目标函数值,对应点为近似可行解;且当a>b>c连续数次,则增加搜索步长;
步骤(13):若b>a,则返回a作为目标函数值,对应点为近似可行解;减小搜索步长;
步骤(14):其余情况,则返回b作为目标函数值,对应点为近似可行解;减小搜索步长;
通过上述的过程在一定时间间隔下的多次迭代,使用近似值逼近原资源分配问题的非线性规划,得到近似的资源分配最优化;
注入模块收集进程运行时数据,然后通过双向管道,传输至分配器;分配器负责接收并汇总进程运行时数据,并以一定时间间隔运行资源分配算法迭代调度资源分配目标值,并通过双向管道将资源分配目标值回传至注入模块;注入模块根据资源分配目标值,通过对FPS高于阈值的进程强制睡眠,以控制运行状态,并收集进程运行时数据作下一周期资源分配。
CN201610681905.9A 2016-08-17 2016-08-17 虚拟化云环境下gpu-cpu混合资源分配系统和方法 Active CN106293947B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610681905.9A CN106293947B (zh) 2016-08-17 2016-08-17 虚拟化云环境下gpu-cpu混合资源分配系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610681905.9A CN106293947B (zh) 2016-08-17 2016-08-17 虚拟化云环境下gpu-cpu混合资源分配系统和方法

Publications (2)

Publication Number Publication Date
CN106293947A CN106293947A (zh) 2017-01-04
CN106293947B true CN106293947B (zh) 2020-11-06

Family

ID=57678768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610681905.9A Active CN106293947B (zh) 2016-08-17 2016-08-17 虚拟化云环境下gpu-cpu混合资源分配系统和方法

Country Status (1)

Country Link
CN (1) CN106293947B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106888079B (zh) * 2017-02-09 2021-03-09 北京小米移动软件有限公司 资源分配方法及装置
CN108170519B (zh) * 2018-01-25 2020-12-25 上海交通大学 优化可扩展gpu虚拟化的系统、装置和方法
CN111626472B (zh) * 2020-04-17 2023-10-27 国网甘肃省电力公司信息通信公司 一种基于深度混合云模型的场景趋势判断指标计算系统及方法
CN113608861B (zh) * 2021-06-25 2023-11-10 西安空间无线电技术研究所 一种软件化载荷计算资源虚拟化分配方法及装置
CN113568758B (zh) * 2021-09-23 2022-02-15 深圳市信润富联数字科技有限公司 Gpu资源池化方法、系统、设备及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530185B (zh) * 2012-07-02 2018-12-04 南京中兴新软件有限责任公司 资源优化方法及装置

Also Published As

Publication number Publication date
CN106293947A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
CN106293947B (zh) 虚拟化云环境下gpu-cpu混合资源分配系统和方法
Yang et al. A framework for partitioning and execution of data stream applications in mobile cloud computing
US10831633B2 (en) Methods, apparatuses, and systems for workflow run-time prediction in a distributed computing system
CN107003887A (zh) Cpu超载设置和云计算工作负荷调度机构
Menon et al. Automated load balancing invocation based on application characteristics
CN104991830A (zh) 基于服务等级协议的yarn资源分配和节能调度方法及系统
CN108270805B (zh) 用于数据处理的资源分配方法及装置
CN111738446A (zh) 深度学习推理引擎的调度方法、装置、设备和介质
CN109784663B (zh) 一种工作流调度方法与装置
US9471387B2 (en) Scheduling in job execution
CN109684078A (zh) 用于spark streaming的资源动态分配方法和系统
CN111198754B (zh) 一种任务调度方法及装置
CN111209077A (zh) 深度学习框架设计方法
Li et al. Fast and energy-aware resource provisioning and task scheduling for cloud systems
CN114610474A (zh) 一种异构超算环境下多策略的作业调度方法及系统
Liu et al. Elasecutor: Elastic executor scheduling in data analytics systems
Huang et al. Novel heuristic speculative execution strategies in heterogeneous distributed environments
CN111309472A (zh) 一种基于虚拟机预部署的在线虚拟资源分配方法
CN103116526B (zh) 高性能异构并行计算机的最大功耗控制方法
Liu et al. Task offloading with execution cost minimization in heterogeneous mobile cloud computing
CN109885384A (zh) 任务并行度优化方法、装置、计算机设备及存储介质
KR20220150126A (ko) 사물인터넷 환경에서 분산 머신 러닝 학습을 위한 코딩 및 인센티브 기반 메커니즘
Jahn et al. Optimizations for configuring and mapping software pipelines in many core systems
CN115373826B (zh) 一种基于云计算的任务调度方法及装置
Wang et al. A user mode CPU–GPU scheduling framework for hybrid workloads

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant