CN111240818B - 一种多相同gpu异构系统环境下的任务调度节能方法 - Google Patents

一种多相同gpu异构系统环境下的任务调度节能方法 Download PDF

Info

Publication number
CN111240818B
CN111240818B CN202010023256.XA CN202010023256A CN111240818B CN 111240818 B CN111240818 B CN 111240818B CN 202010023256 A CN202010023256 A CN 202010023256A CN 111240818 B CN111240818 B CN 111240818B
Authority
CN
China
Prior art keywords
task
tasks
gpu
time
heterogeneous
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
CN202010023256.XA
Other languages
English (en)
Other versions
CN111240818A (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.)
Qiannan Normal University for Nationalities
Original Assignee
Qiannan Normal University for Nationalities
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 Qiannan Normal University for Nationalities filed Critical Qiannan Normal University for Nationalities
Priority to CN202010023256.XA priority Critical patent/CN111240818B/zh
Publication of CN111240818A publication Critical patent/CN111240818A/zh
Application granted granted Critical
Publication of CN111240818B publication Critical patent/CN111240818B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种多相同GPU异构系统环境下的任务调度节能方法。包括下述步骤:a.获取任务执行时间、任务数量及可用GPU数量的信息;b.利用步骤a获取的信息以均分思想和折半方法对任务按执行时间进行分配。本发明具有降低平均能耗和调度方法更有效的特点。

Description

一种多相同GPU异构系统环境下的任务调度节能方法
技术领域
本发明涉及异构环境高性能计算机技术领域,特别是一种多相同GPU异构系统环境下的任务调度节能方法。
背景技术
ICT(Information and Communication Technology)行业已成为21世纪社会发展和世界经济增长的重要动力。但其消耗的能量却已占全球耗电量的10%;其碳排放总量则达到了全球碳排放总量的2%~2.5%,在发达国家尤甚,达到10%。而随着全球对ICT行业的持续投入,其规模和能耗也将保持增长的趋势。为推动ICT产业的绿色低碳环保可持续发展,绿色计算已成为众多国内外研究者的共识。目前,以大数据技术、人工智能技术为代表的ICT产业正在不断改变我们的生活、交通、学习以及对世界的认知,使得支撑这些技术发展的GPU(Graphics Processing Unit)异构系统(Heterogeneous Computing System,HCS)成为计算机系统的主流。GPU异构系统具有高加速性、易学易懂、系统便于扩展等特点使其发展迅猛,目前被广泛应用于大数据处理、深度学习、云计算、人工智能、无人车驾驶、分子模拟计算等领域,巨大的应用市场也反过来极大地推动了GPU异构系统的发展。典型的GPU异构系统通常由CPU将计算任务分配到GPU进行计算;在由多个GPU组成的计算机系统中,对各个GPU分配的计算任务会极大地影响整个系统的功耗。虽然GPU异构系统的性能功耗比相对于传统的计算机系统有了较大的提升,但在整个计算机系统中其功耗仍占有较大的比例。为顺应ICT产业的发展,对GPU异构系统的功耗优化以达到减少HCS功耗的目的,许多学者提出了各种方法和模型。但目前的研究工作仍存在如需要手动改写目标任务代码、异构系统的能耗受任务执行的顺序影响、假设GPU在运行任务是功耗的恒定的及在任务调度前需要对任务进行预先运行以获得参数等问题。
而在任务调度研究方面,可以分为两类:基于任务特征的调度节能技术及对任务调度的节能技术,具体描述如下:
首先,是基于任务特征的调度节能技术。在GPU支持concurrent kernelexecution特征后,其节能技术得到了一种解决思路。Lieta首先通过预先运行CUDAprofiler工具获得参数Ri以判定kernel类别,并以任务类别互补特性为启发实施concurrent kernel execution节能。Qingetal通过建立concurrent kernel之间block个数的比率与能耗间的关系指导GPU节能;通过利用预测block个数比率的方法以及提出的静态估计功耗性能模型以达到节能的目的,但该方法需要转换任务代码。Lietal受到任务类别互补特性实施节能的启发,在对任务进行分类后利用建立的能耗节约量回归预测模型以及调度方法达到节能的目的。Dongetal通过比较concurrent kernel和顺序kernel的耗能,选择能耗较少的方式执行任务;对于能耗的获取,采用了能耗估计模型和性能估计模型的方法。Xieetal和Huetal都关注数据中心的节能。Xieetal提出递归及分层的互联结构用于平衡吞吐量和功耗。Huetal通过峰值负荷调度以达到和促进高能效的数据中心的QoS服务。
其次,是任务调度的节能技术。LiuandLuk通过任务预先运行的方式获得任务和处理器资源参数,利用线性规划方法达到对Linpack程序在各个处理器中的节能调度,但该方法需要手动改写目标处理器的代码。Bariketal依据Kaleemetal提出的分析方法得到任务的特征及执行时间等参数调节负载率达到减少处理器能耗的目的。此后,Maetal提出具有动态分配层以及频率调节层的两层能耗管理框架,对比了四种动态分配方案并分析了它们的优劣。Wangand Ren通过线性预测的方法得到任务在各个处理器执行的时间参数,在给定的时间约束下协调处理器之间的负载分配,最后对每个处理器进行频率调整以减少能耗。Choietal根据任务的剩余执行时间提出预测程序剩余执行时间的调度方式,并指出Greggetal的交替分配调度(Alternate-Assignment scheduling,AA)、空闲优先调度(First-Free scheduling,FF)以及性能历史调度(Performance-History scheduling,PH)方法的不足,即异构系统的功耗受任务执行的顺序的影响。Hamanoetal提出一种动态调度的节能方法,选择能耗延迟积(Energy Delay Product,EDP)最小的任务分配到对应的处理器上,但方法认为所调度的任务功耗是恒定的。Valeryetal的研究表明在移动设备中利用共享内存架构能提高处理器间的协作,进而加速对PCA(PrincipalComponents Analysis)的计算,从而有效地降低了移动设备的能耗。SilbersteinandMaruyama考虑了任务在各个处理器上的能耗,根据有向无环图构造了一个在多个相互依赖任务下的最小能耗调度方法,并在在处理器没有开销时验证了方法的可行性。Khalidetal在处理器计算能力非均衡的情况下提出OSCHED调度方法,综合考虑设备的计算能力以及任务的计算需求以实现任务在各个处理器中的负载均衡。Jangetal研究了单任务在多处理器环境下的能耗优化以及多任务自适应任务功率感知分配方案,提出单任务下最优任务分配算法以及多任务下最优电压/频率调整方案,文中虽然研究了多任务下的节约能耗方法,但更专注于电压/频率的调整。
综上所述,对于异构系统的节能研究虽然有较大进展,但依然存在着不足。
假设系统中待执行的任务序列为Taski(0≤i≤n),系统中当前可用的处理器资源为GPUi(0≤i≤n),那么系统能耗的可以用式(1)表示:
由式(1)可知,系统能耗可表示为系统中的所有的GPU,CPU和主板消耗的能耗之和,进一步可表示为各自的功率与时间的乘积。对于一组待调度的任务及数量一定的相同GPU而言,待调度任务在不改变任务结构的情况下根据调度算法的不同会产生不同的序列,但不会改变单个任务执行时的功率,即待调度任务序列的平均功耗保持不变。因此,系统能耗可进一步表示为平均功耗与时间T的乘积。为了在执行程序序列时使系统能耗最小,就必须使平均功耗与时间T尽可能小。而对于不同的调度方法,平均功耗是一定的,因此,要使系统能耗最小就要使执行时间T最小。
在解决执行时间T最小的问题中,异构系统通常采用AA,FF以及PH等调度方法来解决。AA方法采用循环的方式将任务分配到各个处理器中。FF采用将任务分配到空闲处理器中的动态调度方法。如系统中所有处理器的状态都为空闲,则分配到用户指定的第一个逻辑处理器中;如系统中所有处理器的状态都为忙碌,则任务会等待直到有空闲的处理器可用,然后再进行分配。由于FF考虑了处理器的状态,因此在绝大多数情况下能够得到比AA更好的效果。然而,由于系统当前可用的处理器以及任务执行的顺序不同,因此FF方法和AA方法一样不能保证任务执行顺序的一致性。为了让系统更快地执行任务,PH方法采用了类似更快的处理器获得更多任务的思想,让处理速度慢的处理器获得少量任务而处理速度快的处理器获得大量任务。它依据处理器间执行时间的ratio比值进行调度判断:如果ratio值比预先定义的上限小,则将其放在该处理器上执行;如果ratio值比预先定义的上限大,则用FF的方法分配任务。由于考虑了任务的执行时间,PH方法在执行效果上比AA以及FF更好。但由于PH方法只针对处理器执行速度进行调度,会导致处理器的过度利用和空闲等待。例如,如果所有待执行的任务依据上述计算得到的ratio值全部分配给第一个处理器,那么第一个处理器将会过利用而剩余的处理器将会变得欠利用。Choietal指出这种方法存在这样的问题,但是并未提出特定的解决方案。
发明内容
本发明的目的在于,提供一种多相同GPU异构系统环境下的任务调度节能方法。本发明具有降低平均能耗和调度方法更有效的特点。
本发明的技术方案:一种多相同GPU异构系统环境下的任务调度节能方法,包括下述步骤:
a.获取任务执行时间、任务数量及可用GPU数量的信息;
b.利用步骤a获取的信息以均分思想和折半方法对任务按执行时间进行分配。
前述的多相同GPU异构系统环境下的任务调度节能方法所述的步骤a中,获取信息前,先对任务进行分组得到任务组,再获取任务组内的任务执行时间、任务数量及可用GPU数量的信息。
前述的多相同GPU异构系统环境下的任务调度节能方法所述的步骤b具体按下述方法进行:
b1.根据步骤a获取的信息,建立存储任务时间、任务编号、每个处理器对应的处理任务编号及每个处理器累计的执行时间的数组;
b2.求出任务组内任务执行时间的平均值,首先分配单个任务执行时间大于平均值的任务,剩余任务转至步骤b3进行分配;
b3.求出剩余任务的平均时间,再分配单个任务执行时间大于该平均时间的任务;小于该平均时间的任务继续执行步骤b3,直至待分配的任务队列分配完毕。
前述的多相同GPU异构系统环境下的任务调度节能方法中,待步骤b3执行结束,任务被分配到对应的GPU后,将每个GPU的任务队列记录的任务编号分配给对应的GPU。
前述的多相同GPU异构系统环境下的任务调度节能方法中,所述方法接受任务数量的取值范围为:
其中,Ntask表示任务数量;
Ssystem_memeory表示系统内存总容量,表示任务平均内存消耗;
Sgpu_memeory表示系统显存总容量,表示任务平均显存消耗;
N(Twait)表示在等待任务到达时间内可接受的任务量;
N(Tprocess)表示在处理任务的时间内可处理的任务量。
有益效果
与现有技术相比,本发明为了缓解目前存在的“需要手动改写目标任务代码、异构系统的能耗受任务执行的顺序影响、假设GPU在运行任务是功耗的恒定的、在任务调度前需要对任务进行预先运行以获得参数”的技术问题,以及使HCS能更广泛地应用以适应任务的多样性,采用多相同GPU异构系统进行节能研究,提出任务组内均衡时间的任务节能调度,通过合理分配各个GPU上的任务来减少系统能耗消耗。本发明通过获取程序在各个GPU上的功耗及时间,然后将能耗优化问题转化为调度问题。具体地,首先获取任务执行时间、任务数量以及系统中可用的GPU数量;其次,利用上述信息以均分思想和折半方法对任务按执行时间进行分配。
本发明分析了多相同GPU异构系统环境下节能问题的本质,并将其转化为调度问题。为解决该调度问题引入均分的思想,提出以时间均衡的方式分配组内任务的调度方法。该方法根据任务执行的功耗及时间首先计算选定任务组内所有待执行任务时间的平均值,然后对显著高于阈值的任务优先分配;其次,将剩余的任务分配到累计时间最小的GPU队列并记录对应累计的任务编号;最后,将获得的结果分配到系统中执行。
本发明通过合理划分任务量、考虑任务的执行时间及处理器数量信息以减少系统处理任务的整体执行时间,进而达到式(1)中能耗最小化的目的;此外,本发明将任务根据执行时间平均分配给系统中的各个处理器能够有效地解决系统中的一个或一些处理器的过利用或欠利用的问题,进而使得本发明的调度方法更有效。实验结果表明,与现有方法相比,本发明平均节省8.6%的能量,证明本发明是有效的、合理的、可行的。
为了能够充分说明本发明的性能,发明人将本发明与AA,FF及PH调度方法进行了实验对比分析,在假设输入规模为n、处理器个数为定值的情况下,对AA,FF及PH调度方法的分析可知,它们的时间复杂度都为O(n);而本发明方法则类似于折半查找所消耗的时间,即本发明方法的时间复杂度为O(nlog2n),所以本发明方法耗时较多。但执行任务的总时间包含任务调度时间及任务执行时间,通常任务执行时间远远大于任务调度时间,因此在任务执行时间能够显著减少的情况下,可以忽略任务调度时间的增加。实验过程如下:
实验的硬件和软件环境如表1所示:
表1 实验的硬件和软件环境
异构系统的硬件环境采用CPU(i5-7500)和GPU(四块NVIDIA GeForce GTX 1060显卡)模式;系统内存8GB;GTX 1060的架构是Pascal,显存6GB,拥有10个StreamingMultiprocessors(SM);每个SM包含128个CUDA核,共计1280个CUDA核;单卡提供4.4TFLOPS浮点运算能力。软件实验环境为windows 10,VS2015以及CUDA9.2。
为了更好地进行验证,选取四个典型的CUDA benchmark程序进行实验,分别为Matrix Multiplication,vector Add,scalar products以及Matrix transpose,它们的具体参数如表2所示。使用HIOKI 3334 AC/DC功率计作为系统能耗测量工具,测量的能耗为异构系统的能耗。
表2 实验采用的基准程序
选择典型的调度方法进行比较,分别是AA,FF和PH。由于AA和FF调度方式的性能及待执行任务的顺序影响系统能耗,因此采用多次执行求平均值的方法获取比较数据。本文实验环境中的GPU都是相同的,任务执行的顺序会同样地影响PH方法,因此采用同样的方式获取PH方法的能耗数据。BATS的实现方法如下,首先在VS2015中进行实现;在得到BATS的输出结果后,对程序序列重新编程运行以获取功耗数据,将运行BATS的能耗记为JBATS,任务运行的能耗记为Jtasks,最终将系统能耗记为JBATS和Jtasks之和。
用式(2)确定任务数量,为了验证方法的有效性,系统等待时间内所接受的任务量不是关注重点,因此取N(Twait)为∞。而对于N(Tprocess),综合处理时间及任务量的关系以获得合适的值。为此采用实验对比的方法获得,如图1所示。由图可见,任务数0~20时调度方法消耗的时间最少;任务数20~80时消耗的时间相对稳定;任务数为100时,消耗的时间有一个明显的拐点。为了获得最佳的性能,调度任务的时间应该足够短,并且调度更多的任务。结合式(2)、表1及表2的参数,其中为62.18M,/>为62.03M,则可知,系统任务量合适的取值为80左右。
表3展示了任务在不同调度策略以及不同输入情况下的平均能耗,对比的方法是当前典型的调度策略。调度策略所使用的输入情况考虑了典型的任务数以及每个任务的典型输入情况。
表3 不同调度方法在不同输入情况下的能耗消耗情况
在表3中,CaseA的输入规模为80个任务数,其中MM,VA,SP和MT的数量分别为20个;MM的输入范围为100×5120~400×10240;VA的输入范围为20~50M;SP的输入范围为16~32M;MT的输入范围为64~144M。由CaseA的输入规模可以直观地看出,AA的能耗最高,其次是FF和PH,能耗最小的为本发明方法。AA方法能耗较高是由于仅仅考虑了以循环的方式分配任务,缺乏对处理器信息的考虑。对于PH方法,由于所依赖的ratio值在实验环境中是相同的,因此PH方法在多个相同GPU的情况下退化为FF方法,所以FF和PH方法的能耗几乎相同。由于考虑了处理器的信息,因此FF和PH方法的实验效果优于AA方法。和AA,FF和PH方法相比,本发明方法以均分执行时间的方式将任务分配给处理器且在调度的结果上是确定的,所测得的能耗是一次性测量,由于综合考虑了任务及处理器信息,因而能耗最低。在80个输入任务数及对应输入范围下,本发明方法比AA方法平均节约11.17%的能耗,比FF和PH方法平均节约5.70%的能耗。
CaseB的输入规模为80个任务数,其中MM,VA,SP和MT都为20个;MM的输入范围为100×5120~8100×32400;VA的输入范围为20~200M;SP的输入范围为16~128M;MT的输入范围为64~484M。可以看出,在不改变输入任务数量以及改变输入规模的情况下,AA方法依然能耗最高,FF和PH次之,本发明方法与其它方法相比依然能耗最低。这种现象产生的原因和CaseA相同,不再赘述。在相同任务数量以及改变输入规模的情况下,本发明方法比AA方法平均节约12.41%的能耗,比FF和PH方法平均节约5.86%的能耗。
CaseC的输入规模的任务数为72个,其中MM,VA,SP和MT都为18;MM的输入范围为100×5120~8100×68400;VA的输入范围为20~400M;SP的输入范围为16~384M;MT的输入范围为64~625M。可以看到,改变任务数量及输入范围后,各种方法所呈现的能耗趋势与CaseA和CaseB的类似,产生的原因同前,不再赘述。在改变输入任务数及对应输入范围下,本发明方法比AA方法平均节约11.05%的能耗,比FF和PH方法平均节约5.39%的能耗。
图2展示了本发明方法在CaseA输入规模情况下对单个GPU的内存变化情况,共经历四次循环分配:第一次循环分配序号1~7的任务;第二次循环分配序号8~11的任务;第三次循环分配序号12~16的任务;第四次循环分配序号17~18的任务。总体上看,随着分配任务越多,内存占用量就越大。在序号1~7的任务分配中,内存分配量有突然增加的趋势,而后面的内存分配量的增加相对平缓,原因在于本发明方法的分配以时间为主而非以内存占用量为主。
图3至图5展示了四个任务在不同的调度策略以及不同输入情况下各个处理器平均执行时间的比率。图3展示了对应于表3中CaseA输入规模在任务数量为80个情况下各个处理器执行时间的比率。可以看出,AA方法的处理器有34.50%执行时间的差距,最大的执行时间比率为46.38%,最小的执行时间比率为11.88%。FF和PH方法中存在17.47%的时间差距,最大的执行时间比率为35.92%,最小的执行时间比率为18.45%。本发明方法中有0.02%的时间差距,最大的执行时间比率为25.01%,最小的执行时间比率为24.99%。由执行时间的差别可以看出,本发明方法给四个GPU分配的任务是较均匀的,使得执行整体任务所消耗的时间较少,从侧面验证了表3中本发明方法在CaseA输入规模下功耗较小的原因。
图4展示了对应于表3中CaseB输入规模的各个处理器执行时间的比率。可以看出,AA方法中的最大的执行时间和最小的执行时间相差31.68%,FF和PH方法中的最大的执行时间和最小的执行时间相差17.53%,而本发明方法中的最大比率和最小比率两者只相差0.12%。由执行时间的差别可以看出,本发明方法给四个GPU分配的任务是比较均匀的,使得执行整体任务所消耗的时间较少,从侧面验证了表3中本发明方法在CaseB输入规模下功耗较小的原因。
图5展示了对应于表3中CaseC输入规模下的各个处理器执行时间的比率。可以看出,AA方法中的最大的执行时间比率为46.04%,最小的执行时间比率为13.24%,两者相差32.80%。FF和PH方法中最大的执行时间比率为35.20%,最小的执行时间比率为19.41%,两者相差15.79%。而本发明方法中最大的执行时间比率与最小的执行时间比率相同。从相差时间的比率上来看,BATS较AA,FF和PH方法对任务的分配更加均匀合理,因此从侧面验证了表3中本发明方法在CaseC输入规模下功耗较小的原因。
综上所述,在改变输入规模以及输入范围的情况下,本发明方法较AA,FF和PH能够均匀分配任务且较AA方法平均节能11.55%,较FF和PH方法平均节能5.656%,总体平均节能8.6%。证明本发明方法是有效的、合理的,也是可行的。
附图说明
图1是任务量与执行时间的关系;
图2是本发明方法使用内存变化情况;
图3是表3中CaseA输入规模的各个处理器执行时间的比率;
图4是表3中CaseB输入规模的各个处理器执行时间的比率;
图5是表3中CaseC输入规模的各个处理器执行时间的比率。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。
实施例。一种多相同GPU异构系统环境下的任务调度节能方法,包括下述步骤:
a.获取任务执行时间、任务数量及可用GPU数量的信息;
b.利用步骤a获取的信息以均分思想和折半方法对任务按执行时间进行分配。
前述的步骤a中,获取信息前,先对任务进行分组得到任务组,再获取任务组内的任务执行时间、任务数量及可用GPU数量的信息。
前述的步骤b具体按下述方法进行:
b1.根据步骤a获取的信息,建立存储任务时间、任务编号、每个处理器对应的处理任务编号及每个处理器累计的执行时间的数组;
b2.求出任务组内任务执行时间的平均值,首先分配单个任务执行时间大于平均值(该处的平均值,也可以是根据经验设定的阈值,本发明实验中,就使用了经验设定)的任务,剩余任务转至步骤b3进行分配;
b3.求出剩余任务的平均时间,再分配单个任务执行时间大于该平均时间的任务;小于该平均时间的任务继续执行步骤b3,直至待分配的任务队列分配完毕。
待步骤b3执行结束,任务被分配到对应的GPU后,将每个GPU的任务队列记录的任务编号分配给对应的GPU。
所述方法接受任务数量的取值范围为:
其中,Ntask表示任务数量;
Ssystem_memeory表示系统内存总容量,表示任务平均内存消耗;
Sgpu_memeory表示系统显存总容量,表示任务平均显存消耗;
N(Twait)表示在等待任务到达时间内可接受的任务量;
N(Tprocess)表示在处理任务的时间内可处理的任务量。
任务数量的多少影响BATS方法的性能。对于任务数量,BATS的最小接受量为1,最大接受量受系统内存容量大小、单个GPU显存的容量大小、等待任务到达时间以及处理任务的时间等因素的影响。系统内存容量过小将限制系统接受任务的能力,可以用系统内存总容量除以任务平均内存消耗来表示,即:同样,单个GPU显存容量过小将限制单个GPU接受任务的能力,可以用/>表示。而等待任务到达时间的长短也会影响方法的性能以及处理任务的及时性,在此用N(Twait)表示在等待的时间内可接受的任务量。处理任务的时间取决于任务的数量,在系统内存和显存容量足够的情况下,过多的任务数量将导致处理时间的增加,用N(Tprocess)表示在Tprocess时间内可处理的任务量。而取上述所有情况下的最小值即为调度方法接受任务量的上限。因此,任务数量的取值范围如式(2)所示。
由于本发明采用了均分思想及折半查找的方法,依据任务时间大小分配任务,因此对系统能耗的影响也就最小。具体地,任务调度节能方法伪代码描述如表4所示:
表4
表4中,调度方法的输入为任务列表和GPU的数量,输出为各个GPU的处理任务量。第1~3行为完成本发明方法所定义的一些变量,其中K表示当前迭代中的总任务量;KN表示GPU序号;CUIndex表示算法迭代中的GPU序号;getTaskTime(P[i])为获取任务的执行时间;存储任务序列时间的采用二维数组TGPU[i][1]进行存储;任务编号采用TGPU[i][0]进行存储。GPU任务累计时间AccmPCU[NumPU]用于判断任务应放到那个GPU中去执行。存储每个GPU应处理的任务编号用PGPU[NumPU][K]表示。第4行和第5行分别为获取任务的执行时间、任务编号及计算平均时间。第6~14行筛选单个任务执行时间大于阈值的任务以防止某个GPU出现过利用的情况。第16~29行依照待执行程序时间的平均值以及折半调度的思想对任务进行循环分配;其中第18-26行分配大于平均时间的任务,存储小于平均时间的任务为下次的循环分配作准备。
对于第8行以及第21行中分配任务的函数AssignTasks(),其伪代码描述如表5所示。其输入为GPU编号、任务编号以及任务的执行时间;输出为当前任务所在的处理器序列PGPU[][]以及各个处理器要执行的任务的累计时间AccmPCU[]。第1~8行寻找对应的GPU编号为存储GPU的编号作准备。第9行为对应的GPU存储对应任务编号。第10行将任务时间累加到对应GPU的时间累加器中。
表5
/>

Claims (4)

1.一种多相同GPU异构系统环境下的任务调度节能方法,其特征在于:包括下述步骤:
a.获取任务执行时间、任务数量及可用GPU数量的信息;
b.利用步骤a获取的信息以均分思想和折半方法对任务按执行时间进行分配;
所述的步骤b具体按下述方法进行:
b1.根据步骤a获取的信息,建立存储任务时间、任务编号、每个处理器对应的处理任务编号及每个处理器累计的执行时间的数组;
b2.求出任务组内任务执行时间的平均值,首先分配单个任务执行时间大于平均值的任务,剩余任务转至步骤b3进行分配;
b3.求出剩余任务的平均时间,再分配单个任务执行时间大于该平均时间的任务;小于该平均时间的任务继续执行步骤b3,直至待分配的任务队列分配完毕。
2.根据权利要求1所述的多相同GPU异构系统环境下的任务调度节能方法,其特征在于:步骤a中,获取信息前,先对任务进行分组得到任务组,再获取任务组内的任务执行时间、任务数量及可用GPU数量的信息。
3.根据权利要求1所述的多相同GPU异构系统环境下的任务调度节能方法,其特征在于:待步骤b3执行结束,任务被分配到对应的GPU后,将每个GPU的任务队列记录的任务编号分配给对应的GPU。
4.根据权利要求3所述的多相同GPU异构系统环境下的任务调度节能方法,其特征在于:所述方法接受任务数量的取值范围为:
其中,Ntask表示任务数量;
Ssystem_memeory表示系统内存总容量,表示任务平均内存消耗;
Sgpu_memeory表示系统显存总容量,表示任务平均显存消耗;
N(Twait)表示在等待任务到达时间内可接受的任务量;
N(Tprocess)表示在处理任务的时间内可处理的任务量。
CN202010023256.XA 2020-01-09 2020-01-09 一种多相同gpu异构系统环境下的任务调度节能方法 Active CN111240818B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010023256.XA CN111240818B (zh) 2020-01-09 2020-01-09 一种多相同gpu异构系统环境下的任务调度节能方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010023256.XA CN111240818B (zh) 2020-01-09 2020-01-09 一种多相同gpu异构系统环境下的任务调度节能方法

Publications (2)

Publication Number Publication Date
CN111240818A CN111240818A (zh) 2020-06-05
CN111240818B true CN111240818B (zh) 2023-08-08

Family

ID=70865626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010023256.XA Active CN111240818B (zh) 2020-01-09 2020-01-09 一种多相同gpu异构系统环境下的任务调度节能方法

Country Status (1)

Country Link
CN (1) CN111240818B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360246A (zh) * 2011-10-14 2012-02-22 武汉理工大学 一种异构分布式系统中基于自适应阈值的节能调度方法
CN103475469A (zh) * 2013-09-10 2013-12-25 中国科学院数据与通信保护研究教育中心 一种结合cpu和gpu实现sm2算法的方法及装置
CN109960576A (zh) * 2019-03-29 2019-07-02 北京工业大学 一种面向cpu-gpu异构的低能耗任务调度策略

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360246A (zh) * 2011-10-14 2012-02-22 武汉理工大学 一种异构分布式系统中基于自适应阈值的节能调度方法
CN103475469A (zh) * 2013-09-10 2013-12-25 中国科学院数据与通信保护研究教育中心 一种结合cpu和gpu实现sm2算法的方法及装置
CN109960576A (zh) * 2019-03-29 2019-07-02 北京工业大学 一种面向cpu-gpu异构的低能耗任务调度策略

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Junke Li ; Mingjiang Li ; Guanyu Wang ; Jincheng Zhou ; Deguang Li ; .Task Scheduling Approach to Save Energy of Heterogeneous Computing Systems.《2019 International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData)》.2019,全文. *

Also Published As

Publication number Publication date
CN111240818A (zh) 2020-06-05

Similar Documents

Publication Publication Date Title
CN109992385B (zh) 一种基于任务均衡调度的gpu内部能耗优化方法
Bhadauria et al. An approach to resource-aware co-scheduling for CMPs
CN106598731B (zh) 基于异构多核架构的运行时系统及其控制方法
Barbosa et al. Dynamic scheduling of a batch of parallel task jobs on heterogeneous clusters
CN110351348B (zh) 一种基于dqn的云计算资源调度优化方法
CN111104211A (zh) 基于任务依赖的计算卸载方法、系统、设备及介质
Heirman et al. Undersubscribed threading on clustered cache architectures
CN111240461B (zh) 一种基于任务调度的异构计算系统低功耗方法
Zhang et al. An energy and SLA-aware resource management strategy in cloud data centers
CN111045800A (zh) 一种基于短作业优先的优化gpu性能的方法及系统
Liu et al. An energy-saving task scheduling model via greedy strategy under cloud environment
CN111240818B (zh) 一种多相同gpu异构系统环境下的任务调度节能方法
Lin et al. An energy-efficient task scheduler for multi-core platforms with per-core dvfs based on task characteristics
CN111221640B (zh) 一种gpu-cpu协同节能方法
Thomas et al. Dynamic optimizations in gpu using roofline model
Piao et al. Computing resource prediction for mapreduce applications using decision tree
Huang et al. GPU Energy optimization based on task balance scheduling
CN113407313B (zh) 资源需求感知的多队列调度方法、系统及服务器
CN110415162B (zh) 大数据中面向异构融合处理器的自适应图划分方法
Xiao et al. Dynamic Fine-Grained Workload Partitioning for Irregular Applications on Discrete CPU-GPU Systems
Thomas et al. Application aware scalable architecture for GPGPU
Dagli et al. Multi-accelerator neural network inference in diversely heterogeneous embedded systems
CN110532091A (zh) 基于图形处理器的图计算边向量负载平衡方法及装置
CN114860417B (zh) 多核神经网络处理器及用于该处理器多任务分配调度方法
Escobar et al. Speedup and energy analysis of eeg classification for bci tasks on cpu-gpu clusters

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