CN115543587B - 一种使用寿命驱动的OpenCL应用调度方法及系统 - Google Patents
一种使用寿命驱动的OpenCL应用调度方法及系统 Download PDFInfo
- Publication number
- CN115543587B CN115543587B CN202211502820.1A CN202211502820A CN115543587B CN 115543587 B CN115543587 B CN 115543587B CN 202211502820 A CN202211502820 A CN 202211502820A CN 115543587 B CN115543587 B CN 115543587B
- Authority
- CN
- China
- Prior art keywords
- application
- resource utilization
- utilization rate
- scheduling table
- threshold value
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明提供了一种使用寿命驱动的OpenCL应用调度方法及系统,包括以下步骤:读取CPU‑GPU多处理器片上系统中的应用参数和处理器参数;对任务队列中的应用生成静态调度表;对任务队列中的应用生成动态调度表;定期调用主控制算法生成应用调度表;调度结束。使用本发明能够在满足时序、能耗、峰值温度以及使用寿命的约束下,最小化系统的平均延迟。
Description
技术领域
本发明涉及CPU-GPU多处理器片上系统中使用寿命驱动的OpenCL应用调度技术领域,具体涉及一种使用寿命驱动的OpenCL应用调度方法及系统。
背景技术
随着半导体技术的快速发展以及对应用性能要求的日益提高,多处理器已经取代单处理器,成为当代和下一代处理器的设计规范。在多处理器设计方法中,集成中央处理器(Central Processing Unit, CPU)和图形处理器(Graphics Processing Unit, GPU)的多处理器片上系统可以充分发挥GPU核心的并行计算能力和CPU核心的通用计算能力。开放计算语言(Open Computing Language,OpenCL)支持多级别的线程并行化,可以将应用高效地映射到同构或异构、单个或多个CPU或GPU核心。对于一个OpenCL应用,存在一个使该应用获得最优性能的CPU负载,当更多的CPU核心参与到应用程序的执行时,应用的性能不会进一步的提升,反而会产生额外的能量和延迟开销。同时,对于配备有限冷却技术的CPU-GPU多处理器片上系统,迫切需要使用有效的热管理技术,以实现将芯片的峰值温度保持在指定的温度范围内。因此,在峰值温度限制条件下,最大程度地提高系统的效率,最小化应用的平均延迟,已经成为一个非常重要的研究课题。
在如何优化OpenCL应用在CPU-GPU多处理器片上系统的性能上,现有的研究大多数集中在设计优化算法、静态算法、或是动态和静态混合算法,以及对系统的峰值温度、应用的能耗和延迟进行优化。但是在相关的研究中,考虑了应用能耗、应用延迟、系统温度、以及系统寿命,目前,几乎没有对OpenCL应用同时考虑到这四个因素的研究工作。因此,迫切需要对使用寿命驱动的OpenCL应用调度研究,在满足应用能耗、系统温度和寿命的约束下,最小化OpenCL应用的平均延迟。
发明内容
为解决上述问题,本发明提出了一种使用寿命驱动的OpenCL应用调度方法及系统,能够在满足时序、能耗、峰值温度以及使用寿命的约束下,最小化CPU-GPU多处理器片上系统的平均延迟。
为实现上述目的,本发明提供了一种使用寿命驱动的OpenCL应用调度方法,包括以下步骤:
S1:获取CPU-GPU多处理器片上系统中的应用参数和处理器参数;
S2:基于所述应用参数和所述处理器参数,对任务队列中的应用生成静态调度表;
S3:基于所述静态调度表,对任务队列中的应用生成动态调度表;
S4:基于所述动态调度表,定期调用主控制算法生成应用调度表;
S5:基于所述应用调度表,执行应用,调度结束。
优选的,所述S2中,对任务队列中的应用生成静态调度表的方法包括:
S21:初始化概率向量和迭代计数器,并利用样本生成函数生成若干个拉丁超立方采样样本;
S22:调用应用选择函数,从应用合集中随机选择若干个应用对若干个所述拉丁超立方采样样本进行微调操作;
S23:计算每个微调操作后的所述拉丁超立方采样样本对应的性能,按照性能递减排序所述拉丁超立方采样样本,选取若干个预设精英样本的下标集合;
S24:计算若干个所述预设精英样本的下标集合迭代的阈值;
S25:根据所述预设精英样本,更新迭代概率向量;
S26:基于满足迭代条件的所述阈值和所述概率向量,生成静态调度表。
优选的,所述S3中,对任务队列中的应用生成动态调度表的方法包括:
S31:输入一个预先设定的违背率阈值至PID控制算法中;
S32:若当前的约束条件违背等级大于所述违背率阈值,则迭代地优化所述CPU-GPU多处理器片上系统的资源利用率控制变量,并使用PID控制器对应用执行状态采样并更新约束条件违背等级;
S33:若当前的约束条件违背等级小于所述违背率阈值,则输出所述CPU-GPU多处理器片上系统的资源利用率控制变量,并将所述资源利用率控制变量、准入队列里的应用个数和等待队列中的应用个数输入至应用准入控制算法;
S34:若所述资源利用率控制变量大于0,则根据EDF算法对等待队列里的应用排序,并对等待队列中的队头应用分配,获得资源利用率的阈值;
S35:若所述资源利用率控制变量大于所述资源利用率的阈值,则更新资源当前利用率和所述资源利用率控制变量;并从等待队列中删除队头应用,使用EDF算法对等待队列里的应用重新进行排序并更新准入队列里应用的个数;
S36:若所述资源利用率控制变量小于所述资源利用率的阈值,则输出资源利用率的阈值集合,并输入至应用执行控制算法;
S37:调用函数CoreldleCheck(),若所述CPU-GPU多处理器片上系统中存在处于空闲状态的核心,则所述函数CoreldleCheck()的返回值为1,当所述返回值为1并且所述资源利用率的阈值大于0,则随机分配一个空闲核心给应用,并计算资源利用率增量;
S38:基于所述资源利用率增量,更新所述资源利用率的阈值,当所述资源利用率的阈值耗尽时,返回下一个应用的调度方案,并输出准入队列里的应用调度表,即动态调度表。
优选的,所述S4中,定期调用主控制算法生成应用调度表的方法包括:
S41:将应用集合输入至主控制算法;
S42:基于所述应用集合,调用所述PID控制算法获取资源利用率控制变量;
S43:基于所述资源利用率控制变量,调用所述应用准入控制算法获取准入队列里应用并输出资源利用率的阈值集合;
S44:若所述阈值集合不为空,调用所述应用执行控制算法生成应用调度表。
本发明还提供了一种使用寿命驱动的OpenCL应用调度系统,包括:参数获取模块、静态调度表生成模块、动态调度表生成模块、应用调度表生成模块和调度执行模块;
所述参数获取模块用于,获取CPU-GPU多处理器片上系统中的应用参数和处理器参数;
所述静态调度表生成模块用于,基于所述应用参数和所述处理器参数,对任务队列中的应用生成静态调度表;
所述动态调度表生成模块用于,基于所述静态调度表,对任务队列中的应用生成动态调度表;
所述应用调度表生成模块,基于所述动态调度表,定期调用主控制算法生成应用调度表;
所述调度执行模块用于,基于所述应用调度表,执行应用,调度结束。
优选的,所述静态调度表生成模块包括采样单元、计算单元、迭代输出单元;
所述采样单元用于初始化概率向量和迭代计数器,并利用样本生成函数生成若干个拉丁超立方采样样本;
所述计算单元用于调用应用选择函数,从应用合集中随机选择若干个应用对若干个所述拉丁超立方采样样本进行微调操作,并计算每个微调操作后的所述拉丁超立方采样样本对应的性能,按照性能递减排序所述拉丁超立方采样样本,选取若干个预设精英样本的下标集合;
所述迭代输出单元用于计算所述预设精英样本的下标集合迭代的阈值,并根据所述预设精英样本,更新迭代概率向量,当所述阈值和所述概率向量满足迭代条件时,生成所述静态调度表。
优选的,所述动态调度表生成模块包括假定单元、约束计算单元、资源利用率计算单元、调度表输出单元;
所述假定单元用于设定的违背率阈值;
所述约束计算单元用于分析当前的约束条件违背等级与所述违背率阈值的关系,当前的约束条件违背等级大于所述违背率阈值,则迭代地优化所述CPU-GPU多处理器片上系统的资源利用率控制变量,并使用PID控制器对应用执行状态采样并更新约束条件违背等级;当前的约束条件违背等级小于所述违背率阈值,则输出所述CPU-GPU多处理器片上系统的资源利用率控制变量,并将所述资源利用率控制变量、准入队列里的应用个数和等待队列中的应用个数输入至应用准入控制算法;
所述资源利用率计算单元用于对所述资源利用率控制变量进行分析,若所述资源利用率控制变量大于0,则根据EDF算法对等待队列里的应用排序,并对等待队列中的队头应用分配,获得资源利用率的阈值;若所述资源利用率控制变量大于所述资源利用率的阈值,则更新资源当前利用率和所述资源利用率控制变量;并从等待队列中删除队头应用,使用EDF算法对等待队列里的应用重新进行排序并更新准入队列里应用的个数;若所述资源利用率控制变量小于所述资源利用率的阈值,则输出资源利用率的阈值集合,并输入至应用执行控制算法;
所述调度表输出单元用于调用函数CoreldleCheck(),若所述CPU-GPU多处理器片上系统中存在处于空闲状态的核心,则所述函数CoreldleCheck()的返回值为1,当所述返回值为1并且所述资源利用率的阈值大于0,随机分配一个空闲核心给应用,并计算资源利用率增量;基于所述资源利用率增量,更新所述资源利用率的阈值,当所述资源利用率的阈值耗尽时,返回下一个应用的调度方案,并输出准入队列里的应用调度表,即动态调度表。
优选的,所述应用调度表生成模块包括资源利用率控制变量获取单元和调度表生成单元;
所述资源利用率控制变量获取单元用于将应用集合输入至主控制算法,并基于所述应用集合,调用所述PID控制算法获取资源利用率控制变量;
所述调度表生成单元用于基于所述资源利用率控制变量,调用所述应用准入控制算法获取准入队列里应用并输出资源利用率的阈值集合,若所述阈值集合不为空,调用所述应用执行控制算法生成应用调度表。
与现有技术相比,本发明具有如下优点和技术效果:
本发明公开了一种使用寿命驱动的OpenCL应用调度方法及系统,通过读取CPU-GPU多处理器片上系统中的应用参数和处理器参数;对任务队列中的应用生成静态调度表;对任务队列中的应用生成动态调度表;定期调用主控制算法生成应用调度表;调度结束。使用本发明能够在满足时序、能耗、峰值温度以及使用寿命的约束下,最小化CPU-GPU多处理器片上系统的平均延迟。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本发明一种使用寿命驱动的OpenCL应用调度方法流程示意图;
图2为基准应用运用本发明与ETRR、TPSO算法在Hardkernel Odroid-XU3 硬件平台上执行的延迟示意图;
图3为基准应用在Exynos 9810 MPSoC硬件平台上执行的延迟示意图;
图4为基准应用在Hardkernel Odroid-XU3硬件平台上执行的能耗示意图;
图5为本发明静态算法的应用能耗与两种基准算法的应用能耗比较示意图;
图6为本发明静态算法和基准算法ETRR、TPSO取得的处理器核心峰值温度比较示意图;
图7为本发明静态算法和基准算法ETRR、TPSO取得的系统生命周期比较示意图;
图8为本发明三种动态算法在Hardkernel Odroid-XU3硬件平台上执行6个基准应用KM、PB、ASE、BE、CH、BS时的应用延迟比较示意图;
图9为本发明三种动态算法在Exynos 9810 MPSoC硬件平台上执行6个基准应用KM、PB、ASE、BE、CH、BS时的应用延迟比较示意图;
图10为本发明三种动态算法在Hardkernel Odroid-XU3硬件平台上执行基准应用KM、PB、ASE、BE、CH、BS时的能耗比较示意图;
图11为本发明三种动态算法在Exynos 9810 MPSoC硬件平台上执行基准应用KM、PB、ASE、BE、CH、BS时的能耗比较示意图;
图12为本发明动态算法和基准算法LogFit、EMIN取得的处理器核心峰值温度比较示意图;
图13为本发明动态算法和基准算法LogFit、EMIN取得的系统生命周期比较示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一:
如图1所示,本发明提供了一种使用寿命驱动的OpenCL应用调度方法,包括以下步骤:
S1:获取CPU-GPU多处理器片上系统中的应用参数和处理器参数;
S2:基于应用参数和处理器参数,对任务队列中的应用生成静态调度表;
S3:基于静态调度表,对任务队列中的应用生成动态调度表;
S4:基于动态调度表,定期调用主控制算法生成应用调度表;
S5:基于应用调度表,执行应用,调度结束。
具体的,S2中,对任务队列中的应用生成静态调度表的方法包括:
S222:判断标志位的置位数,当置为1时,表示更多的CPU资源会带来应用
的性能提升,即需要增加分配给应用的CPU资源;反之,当置为-1时,表示更多的CPU
资源会降低应用的性能,即需要减少分配给应用的CPU资源;
S26:基于所述阈值和所述概率向量,判断是否满足终止迭代条件,如果是,输出性能最优的单个样本,生成静态调度表。如果否,跳转至S21。
具体的,S3中,对任务队列中的应用生成动态调度表的方法包括:
其中,上述公式中(1)为能耗约束条件,表示处理应用的延迟能耗,Q个应用
的总能耗不能超过预先设定的能量预算公式(2)为峰值温度约束条件,分别表示为系统在执行Q个应用时CPU大核集群、CPU小核集群、GPU核心的峰值温度,为给定的峰值温度阈值。公式(3)为使用寿命约束条件,分别表示CPU大核集群、CPU小核集群、GPU核心的寿命,为给
定的使用寿命阈值。公式(4)为时序约束条件,即任意一个应用的延迟不可以超过给定的截
止期限;
S321:判断当前的约束条件违背等级是否大于阈值,如果是,则
迭代地优化系统的资源利用率。其中,更新系统资源利用率控制变量的计算公式为: ,在该式中,分别代表PID控制器的比例、积分、微分系数,表示约束条件违背等
级和阈值的差值,即表示为在系统
运行时发生积分误差的调度窗口个数,DW表示系统运行时发生微分误差的调度窗口个数;
输出准入队列里的应用调度表并退出。
具体的,S4中,定期调用主控制算法生成应用调度表的方法包括:
实施例二:
本发明还提供了一种使用寿命驱动的OpenCL应用调度系统,包括:参数获取模块、静态调度表生成模块、动态调度表生成模块、应用调度表生成模块和调度执行模块;
参数获取模块用于,获取CPU-GPU多处理器片上系统中的应用参数和处理器参数;
静态调度表生成模块用于,基于应用参数和处理器参数,对任务队列中的应用生成静态调度表;
动态调度表生成模块用于,基于静态调度表,对任务队列中的应用生成动态调度表;
应用调度表生成模块,基于动态调度表,定期调用主控制算法生成应用调度表;
调度执行模块用于,基于应用调度表,执行应用,调度结束。
具体的,静态调度表生成模块包括采样单元、计算单元、迭代输出单元;
判断标志位的置位数,当置为1时,表示更多的CPU资源会带来应用的性能
提升,即需要增加分配给应用的CPU资源;反之,当置为-1时,表示更多的CPU资源会
降低应用的性能,即需要减少分配给应用的CPU资源;
基于所述阈值和所述概率向量,判断是否满足终止迭代条件,如果是,输出性能最优的单个样本,生成静态调度表。如果否,跳转至步骤1。
具体的,动态调度表生成模块包括假定单元、约束计算单元、资源利用率计算单元、调度表输出单元;
其中,上述公式中(1)为能耗约束条件,表示处理应用的延迟能耗,Q个应用
的总能耗不能超过预先设定的能量预算公式(2)为峰值温度约束条件,分别表示为系统在执行Q个应用时CPU大核集群、CPU小核集群、GPU核心的峰值温度,为给定的峰值温度阈值。公式(3)为使用寿命约束条件,分别表示CPU大核集群、CPU小核集群、GPU核心的寿命,为给
定的使用寿命阈值。公式(4)为时序约束条件,即任意一个应用的延迟不可以超过给定的截
止期限;
判断当前的约束条件违背等级是否大于阈值,如果是,则迭代
地优化系统的资源利用率。其中,更新系统资源利用率控制变量的计算公式为: ,在该式中,
分别代表PID控制器的比例、积分、微分系数,表示约束条件违背等级和阈值的差值,即表示为在系统运
行时发生积分误差的调度窗口个数,DW表示系统运行时发生微分误差的调度窗口个数;
输出准入队列里的应用调度表并退出。
具体的,应用调度表生成模块包括资源利用率控制变量获取单元和调度表生成单元;
实施例三:
实施过程中,采用两种CPU-GPU的多处理器片上系统验证所提出的算法在降低应用延迟方面的有效性。一种是HardkernelOdroid-XU3硬件平台,该平台集成了三星Exynos5422 MPSoC,包含4个ARM Cortex A15核心、4个ARM Cortex A7核心,以及1个ARM Mali-T628MP6 GPU.4个ARM Cortex A15核心构成了一个高性能的CPU大核集群,每个内核都支持步长为100MHz,从200MHz和2000MHz之间的多种离散频率。4个ARM Cortex A7核心组成了一个低功耗的CPU小核心集群,每个核心都支持步长为100MHz,从200MHz到1400MHz之间的不同离散频率。对于ARM Mali-T628 MP6 GPU,它的工作频率从{600, 543, 480, 420, 350,266, 177}MHz 选取。同时,将三星Exynos 9810MPSoC作为测试硬件平台。Exynos 9810MPSoC的CPU大核集群包含4个M3核心,每个核心支持18种离散的工作频率,包括{704,2652, 2496, 2314z, 2106, 2002, 1924, 1794, 1690, 1586, 1469,1261, 1170, 1066,962, 858, 741, 650}MHz;CPU小核集群包含4个ARM Cortex A55核心,每个核心支持10种不同的离散频率,包括{794, 1690, 1456, 1248, 1053, 949 MHz, 832, 715, 598, 455}MHz;GPU集群由ARM Mali-G72 MP18 GPU构成,支持6种离散的工作频率,包括{572, 546MHz, 455, 338, 299, 260}MHz。
为了验证算法的性能,本申请将基于交叉熵方法的静态算法与基准算法 ETRR、TPSO进行对比,将基于反馈控制的动态算法与基准算法 LogFit、EMIN进行比对。
图2首先比较FDEB、FIR、KUN、EP、BSTI、GA、C2D、SYR2K、bodytrack、ferret共10个基准应用运用本发明与ETRR、TPSO算法在Hardkernel Odroid-XU3 硬件平台上执行的延迟。本发明提出的静态算法与基准算法ETRR、TPSO取得的应用延迟分别为89.41、130.30、109.71。同时,从图1最后一列Average数据点可以看出本发明提出的静态方法能够将10个基准应用的平均延迟分别降低29.83%、23.95%相比于基准算法ETRR和TPSO。
图3比较了FDEB、FIR、KNN、EP、BSTI、GA、C2D、SYR2K、bodytrack、ferret共10个基准应用在Exynos 9810 MPSoC硬件平台上执行的延迟。与图1中的结果相似,本发明提出的静态算法在Exynos 9810 MPSoC硬件平台上仍然能够有效地降低基准应用的延迟。从图2最后一列Average数据点看出,本文提出的静态算法能够将10个基准应用的平均延迟分别降低34.58%、25.42%。
图4比较了FDEB、FIR、KNN、EP、BSTI、GA、C2D、SYR2K、bodytrack、ferret在Hardkernel Odroid-XU3硬件平台上执行的能耗。在本组实验当中,应用的能量预算设置为3000焦耳。从图3中可以看出,本发明提出的静态算法可以满足于应用总能耗的约束。
图5给出对于任意一个应用,本发明静态算法的应用能耗大于两种基准算法的应用能耗,其主要原因是因为本发明提出的静态算法充分利用了给定的能耗预算,以实现将基准应用的延迟最小化的优化目标。
图6给出了本发明提出的静态算法和基准算法ETRR、TPSO取得的处理器核心峰值温度。在实验中,将Hardkernel Odroid-XU3和Exynos 9810 MPSoC的峰值温度分别设置为70℃和90℃。由图5所示,使用本发明得到的峰值温度无论是Hardkernel Odroid-XU3还是Exynos 9810 MPSoC硬件平台都能够满足峰值温度的约束。
图7给出了本发明提出的静态算法和基准算法ETRR、TPSO取得的系统生命周期。在实验中,将Hardkernel Odroid-XU3和Exynos 9810 MPSoC最小的生命周期需求分别设置为16年和18年。从图6中数据可以看出,无论是Hardkernel Odroid-XU3还是Exynos 9810MPSoC硬件平台,使用本发明的静态算法可以满足使用寿命的约束。
图8比较了三种动态算法在Hardkernel Odroid-XU3硬件平台上执行6个基准应用KM、PB、ASE、BE、CH、BS时的应用延迟。与基准算法LogFit、EMIN相比,使用本发明提出的动态算法可以将6个基准应用平均延迟降低23.47%、24.89%。
图9比较了三种动态算法在Exynos 9810 MPSoC硬件平台上执行6个基准应用KM、PB、ASE、BE、CH、BS时的应用延迟。与图7中结果相似,本发明提出的动态算法在Exynos 9810MPSoC硬件平台上实现的性能优于基准算法LogFit和EMIN。使用本发明提出的动态算法和基准算法LogFit、EMIN实现的应用平均延迟分别为82.04、110.44、123.60。
图10给出了三种动态算法在Hardkernel Odroid-XU3硬件平台上执行基准应用
KM、PB、ASE、BE、CH、BS时的能耗。在本组实验当中,应用的能量预算设置为3000焦耳。
从图9中可以看出,本发明提出的动态算法满足给定的能耗约束。
图11给出了三种动态算法在Exynos 9810 MPSoC硬件平台上执行基准应用KM、PB、ASE、BE、CH、BS时的能耗。在本组实验当中,应用的能量预算E_bgt设置为2000焦耳。图10中可以看出,本发明提出的动态算法仍然满足给定的能耗约束。
图12给出了本发明提出的动态算法和基准算法LogFit、EMIN取得的处理器核心峰值温度。在实验中,Hardkernel Odroid-XU3和Exynos 9810 MPSoC的峰值温度阈值仍然设置为70℃和90℃。由图11所示本发明提出的动态算法执行6个基准应用KM、PB、ASE、BE、CH、BS时,均未超过两个硬件平台设定的峰值温度阈值,相反,基准算法LogFit和EMIN都超过了两个硬件平台设定的峰值温度阈值。
图13比较了本发明提出的动态算法和基准算法LogFit、EMIN取得的系统生命周期。在实验中,Hardkernel Odroid-XU3和Exynos 9810最小的使用寿命需求仍然设置为16年和18年。由图12所示,本发明提出的动态算法在执行6个基准应用KM、PB、ASE、BE、CH、BS时,始终没有违背系统生命周期约束,而基准算法LogFit和EMIN均不能满足系统的最小使用寿命需求。
通过上述的实验数据,能够很清楚的看出本发明在满足时序、能耗、峰值温度以及使用寿命的约束下,最小化系统的平均延迟。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (2)
1.一种使用寿命驱动的OpenCL应用调度方法,其特征在于,包括以下步骤:
S1:获取CPU-GPU多处理器片上系统中的应用参数和处理器参数;
S2:基于所述应用参数和所述处理器参数,对任务队列中的应用生成静态调度表;
S3:基于所述静态调度表,对任务队列中的应用生成动态调度表;
S4:基于所述动态调度表,定期调用主控制算法生成应用调度表;
S5:基于所述应用调度表,执行应用,调度结束;
所述S2中,对任务队列中的应用生成静态调度表的方法包括:
S21:初始化概率向量和迭代计数器,并利用样本生成函数生成若干个拉丁超立方采样样本;
S22:调用应用选择函数,从应用合集中随机选择若干个应用对若干个所述拉丁超立方采样样本进行微调操作;
S23:计算每个微调操作后的所述拉丁超立方采样样本对应的性能,按照性能递减排序所述拉丁超立方采样样本,选取若干个预设精英样本的下标集合;
S24:计算若干个所述预设精英样本的下标集合迭代的阈值;
S25:根据所述预设精英样本,更新迭代概率向量;
S26:基于满足迭代条件的所述阈值和所述概率向量,生成静态调度表;
所述S3中,对任务队列中的应用生成动态调度表的方法包括:
S31:输入一个预先设定的违背率阈值至PID控制算法中;
S32:若当前的约束条件违背等级大于所述违背率阈值,则迭代地优化所述CPU-GPU多处理器片上系统的资源利用率控制变量,并使用PID控制器对应用执行状态采样并更新约束条件违背等级;
S33:若当前的约束条件违背等级小于所述违背率阈值,则输出所述CPU-GPU多处理器片上系统的资源利用率控制变量,并将所述资源利用率控制变量、准入队列里的应用个数和等待队列中的应用个数输入至应用准入控制算法;
S34:若所述资源利用率控制变量大于0,则根据EDF算法对等待队列里的应用排序,并对等待队列中的队头应用分配,获得资源利用率的阈值;
S35:若所述资源利用率控制变量大于所述资源利用率的阈值,则更新资源当前利用率和所述资源利用率控制变量;并从等待队列中删除队头应用,使用EDF算法对等待队列里的应用重新进行排序并更新准入队列里应用的个数;
S36:若所述资源利用率控制变量小于所述资源利用率的阈值,则输出资源利用率的阈值集合,并输入至应用执行控制算法;
S37:调用函数CoreldleCheck(),若所述CPU-GPU多处理器片上系统中存在处于空闲状态的核心,则所述函数CoreldleCheck()的返回值为1,当所述返回值为1并且所述资源利用率的阈值大于0,则随机分配一个空闲核心给应用,并计算资源利用率增量;
S38:基于所述资源利用率增量,更新所述资源利用率的阈值,当所述资源利用率的阈值耗尽时,返回下一个应用的调度方案,并输出准入队列里的应用调度表,即动态调度表;
所述S4中,定期调用主控制算法生成应用调度表的方法包括:
S41:将应用集合输入至主控制算法;
S42:基于所述应用集合,调用所述PID控制算法获取资源利用率控制变量;
S43:基于所述资源利用率控制变量,调用所述应用准入控制算法获取准入队列里应用并输出资源利用率的阈值集合;
S44:若所述阈值集合不为空,调用所述应用执行控制算法生成应用调度表。
2.一种使用寿命驱动的OpenCL应用调度系统,其特征在于,包括:参数获取模块、静态调度表生成模块、动态调度表生成模块、应用调度表生成模块和调度执行模块;
所述参数获取模块用于,获取CPU-GPU多处理器片上系统中的应用参数和处理器参数;
所述静态调度表生成模块用于,基于所述应用参数和所述处理器参数,对任务队列中的应用生成静态调度表;
所述动态调度表生成模块用于,基于所述静态调度表,对任务队列中的应用生成动态调度表;
所述应用调度表生成模块,基于所述动态调度表,定期调用主控制算法生成应用调度表;
所述调度执行模块用于,基于所述应用调度表,执行应用,调度结束;
所述静态调度表生成模块包括采样单元、计算单元、迭代输出单元;
所述采样单元用于,初始化概率向量和迭代计数器,并利用样本生成函数生成若干个拉丁超立方采样样本;
所述计算单元用于,调用应用选择函数,从应用合集中随机选择若干个应用对若干个所述拉丁超立方采样样本进行微调操作,并计算每个微调操作后的所述拉丁超立方采样样本对应的性能,按照性能递减排序所述拉丁超立方采样样本,选取若干个预设精英样本的下标集合;
所述迭代输出单元用于,计算所述预设精英样本的下标集合迭代的阈值,并根据所述预设精英样本,更新迭代概率向量,当所述阈值和所述概率向量满足迭代条件时,生成所述静态调度表;
所述动态调度表生成模块包括假定单元、约束计算单元、资源利用率计算单元、调度表输出单元;
所述假定单元用于,设定的违背率阈值;
所述约束计算单元用于,分析当前的约束条件违背等级与所述违背率阈值的关系,当前的约束条件违背等级大于所述违背率阈值,则迭代地优化所述CPU-GPU多处理器片上系统的资源利用率控制变量,并使用PID控制器对应用执行状态采样并更新约束条件违背等级;当前的约束条件违背等级小于所述违背率阈值,则输出所述CPU-GPU多处理器片上系统的资源利用率控制变量,并将所述资源利用率控制变量、准入队列里的应用个数和等待队列中的应用个数输入至应用准入控制算法;
所述资源利用率计算单元用于,对所述资源利用率控制变量进行分析,若所述资源利用率控制变量大于0,则根据EDF算法对等待队列里的应用排序,并对等待队列中的队头应用分配,获得资源利用率的阈值;若所述资源利用率控制变量大于所述资源利用率的阈值,则更新资源当前利用率和所述资源利用率控制变量;并从等待队列中删除队头应用,使用EDF算法对等待队列里的应用重新进行排序并更新准入队列里应用的个数;若所述资源利用率控制变量小于所述资源利用率的阈值,则输出资源利用率的阈值集合,并输入至应用执行控制算法;
所述调度表输出单元用于,调用函数CoreldleCheck(),若所述CPU-GPU多处理器片上系统中存在处于空闲状态的核心,则所述函数CoreldleCheck()的返回值为1,当所述返回值为1并且所述资源利用率的阈值大于0,随机分配一个空闲核心给应用,并计算资源利用率增量;基于所述资源利用率增量,更新所述资源利用率的阈值,当所述资源利用率的阈值耗尽时,返回下一个应用的调度方案,并输出准入队列里的应用调度表,即动态调度表;
所述应用调度表生成模块包括资源利用率控制变量获取单元和调度表生成单元;
所述资源利用率控制变量获取单元用于,将应用集合输入至主控制算法,并基于所述应用集合,调用PID控制算法获取资源利用率控制变量;
所述调度表生成单元用于,基于所述资源利用率控制变量,调用所述应用准入控制算法获取准入队列里应用并输出资源利用率的阈值集合,若所述阈值集合不为空,调用所述应用执行控制算法生成应用调度表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211502820.1A CN115543587B (zh) | 2022-11-29 | 2022-11-29 | 一种使用寿命驱动的OpenCL应用调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211502820.1A CN115543587B (zh) | 2022-11-29 | 2022-11-29 | 一种使用寿命驱动的OpenCL应用调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115543587A CN115543587A (zh) | 2022-12-30 |
CN115543587B true CN115543587B (zh) | 2023-03-07 |
Family
ID=84722536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211502820.1A Active CN115543587B (zh) | 2022-11-29 | 2022-11-29 | 一种使用寿命驱动的OpenCL应用调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543587B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279645A (zh) * | 2013-04-28 | 2013-09-04 | 暨南大学 | 基于gpu并行运算的碳纳米管分子动力学仿真方法 |
CN111582496A (zh) * | 2020-04-26 | 2020-08-25 | 暨南大学 | 一种基于sgx的安全高效的深度学习模型预测系统和方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9965321B2 (en) * | 2011-12-09 | 2018-05-08 | Nvidia Corporation | Error checking in out-of-order task scheduling |
US8707314B2 (en) * | 2011-12-16 | 2014-04-22 | Advanced Micro Devices, Inc. | Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations |
US9959142B2 (en) * | 2014-06-17 | 2018-05-01 | Mediatek Inc. | Dynamic task scheduling method for dispatching sub-tasks to computing devices of heterogeneous computing system and related computer readable medium |
CN108139901B (zh) * | 2015-09-30 | 2022-04-26 | 惠普发展公司,有限责任合伙企业 | 使用外部设备的运行时间验证 |
KR20220107616A (ko) * | 2021-01-25 | 2022-08-02 | 삼성전자주식회사 | 추론 태스크들을 병렬적으로 처리하는 가속기 및 이의 동작 방법 |
-
2022
- 2022-11-29 CN CN202211502820.1A patent/CN115543587B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279645A (zh) * | 2013-04-28 | 2013-09-04 | 暨南大学 | 基于gpu并行运算的碳纳米管分子动力学仿真方法 |
CN111582496A (zh) * | 2020-04-26 | 2020-08-25 | 暨南大学 | 一种基于sgx的安全高效的深度学习模型预测系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115543587A (zh) | 2022-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8881158B2 (en) | Schedule decision device, parallel execution device, schedule decision method, and program | |
US8643656B2 (en) | Energy-aware task consolidation on graphics processing unit (GPU) | |
CN108154317B (zh) | 多云环境下基于实例自适应分配整合的工作流组调度方法 | |
CN105808334A (zh) | 一种基于资源重用的MapReduce短作业优化系统及方法 | |
CN104199739B (zh) | 一种基于负载均衡的推测式Hadoop调度方法 | |
CN111104211A (zh) | 基于任务依赖的计算卸载方法、系统、设备及介质 | |
Liu et al. | Minimizing cost of scheduling tasks on heterogeneous multicore embedded systems | |
JP2010079622A (ja) | マルチコアプロセッサシステム、および、そのタスク制御方法 | |
Allen et al. | Slate: Enabling workload-aware efficient multiprocessing for modern GPGPUs | |
CN104281495A (zh) | 多核处理器共享高速缓存任务调度方法 | |
KR101065436B1 (ko) | 불확실한 계산량을 가진 실시간 병렬 작업을 위한 멀티코어 프로세서의 확률적 스케줄링 방법 | |
Breß et al. | A framework for cost based optimization of hybrid CPU/GPU query plans in database systems | |
US10162679B2 (en) | Method and system for assigning a computational block of a software program to cores of a multi-processor system | |
CN111240461A (zh) | 一种基于任务调度的异构计算系统低功耗方法 | |
Yao et al. | A communication-aware and predictive list scheduling algorithm for network-on-chip based heterogeneous muti-processor system-on-chip | |
CN115543587B (zh) | 一种使用寿命驱动的OpenCL应用调度方法及系统 | |
Breß et al. | Self-Tuning Distribution of DB-Operations on Hybrid CPU/GPU Platforms. | |
JP2009080583A (ja) | 情報処理装置、並列処理最適化方法およびプログラム | |
Lee et al. | On resource efficiency of workflow schedules | |
Tan et al. | HP-DAEMON: High performance distributed adaptive energy-efficient matrix-multiplication | |
Fang et al. | Optimizing cnn accelerator with improved roofline model | |
Moore et al. | Performance modeling of multithreaded programs for mobile asymmetric chip multiprocessors | |
Kalra et al. | Configuration locking and schedulability estimation for reduced reconfiguration overheads of reconfigurable systems | |
CN112052087A (zh) | 动态资源调整与迁移的深度学习训练系统及方法 | |
Ben-Itzhak et al. | Performance and power aware cmp thread allocation modeling |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |