CN113504966A - Gpu集群调度策略模拟方法及gpu集群模拟器 - Google Patents
Gpu集群调度策略模拟方法及gpu集群模拟器 Download PDFInfo
- Publication number
- CN113504966A CN113504966A CN202110690973.2A CN202110690973A CN113504966A CN 113504966 A CN113504966 A CN 113504966A CN 202110690973 A CN202110690973 A CN 202110690973A CN 113504966 A CN113504966 A CN 113504966A
- Authority
- CN
- China
- Prior art keywords
- gpu
- fault
- cluster
- simulation
- time
- 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.)
- Granted
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 9
- 235000019580 granularity Nutrition 0.000 claims description 8
- 230000000903 blocking effect Effects 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 4
- 238000012549 training Methods 0.000 description 9
- 230000008447 perception Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000011160 research Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- 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)
- 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集群调度策略模拟方法,包括:获取模拟GPU集群的集群参数、拟执行的工作负载及对应的调度策略;基于该调度策略,获取该工作负载完成无故障运行的预测时间;根据该集群参数和该预测时间,设定该模拟GPU集群的模拟故障参数;以该调度策略及该模拟故障参数进行该工作负载的故障工作模拟,获取该工作负载在故障工作状态时的运行数据。本发明还提出一种GPU集群模拟器,及一种实现GPU集群调度策略模拟数据处理装置。
Description
技术领域
本发明涉及并行计算技术领域,特别是涉及一种GPU集群调度策略模拟方法及GPU集群模拟器。
背景技术
近年来,以深度学习为代表的AI技术取得了突破性的进展,在计算机视觉、机器学习、自然语言处理、机器人技术方面取得了巨大的进步,深刻改变了我们的生活。从1956年达特茅斯会议提出AI开始,其研究热度经历了多次的浮沉,才到现如今的大力发展,这主要得益于硬件设备的进步。AI中最重要的是深度学习技术,该技术通常分为训练和推理两个阶段。训练阶段是利用大量数据作为学习样本,送入神经网络供其学习;推理阶段是指训练完成之后的使用阶段。不论是在训练阶段还是推理阶段都是在特定设备上进行的。通常训练阶段会耗费大量的时间和硬件资源,因此在分布式GPU集群中完成训练是目前工业界最常用的方式,其中GPU是用于计算加速的专用设备。而推理阶段虽然单次运行时间短且对硬件资源的要求没有训练过程高,但推理阶段往往是具有长时效应的持续性工作,目前最常见的推理是运行在云服务商提供的云计算服上,而云计算服务通常也是由GPU服务器集群构成的。可见,AI技术的运用离不开GPU集群。
GPU集群作为一个应AI而生的新型集群,许多技术都是从CPU集群中迁移或借鉴而来的。其中,当前主流的GPU集群调度策略也是基于或直接沿用CPU集群的调度策略,如负载均衡策略。但是GPU集群的作业调度和CPU集群的作业调度策略根据优化指标的不同还是有一定差别的。CPU调度中最主要的是把作业分成两类,一类是需要快速响应的交互式作业,另一类是耗时较长的计算作业。因此在对CPU调度时着重考虑的是优化交互式作业的响应时间和计算作业的最大完成时间。而GPU作业的分类方式有所不同:在训练阶段,作业耗时长因而所有作业的响应时间都不会被作为最主要的优化指标;在推理阶段,作业的响应时间通常是最重要的指标,甚至实时应用中还会有最大响应时间的限制。因此直接沿用CPU集群的调度算法对GPU集群中作业的响应时间、完成时间、集群的资源利用率等方面都不一定能用户需求,专门针对GPU集群的调度策略的研究开展是非常必要的。
对GPU集群调度技术的研究往往是非常耗时的,特别是在针对训练阶段的调度策略研究。为了解决原型***运行作业耗时过长这个问题,GPU集群模拟器应运而生。目前对GPU集群调度策略进行模拟的模拟器主要是模拟两种情景:1)绝对理想情景模拟:只模拟理想环境下GPU集群中作业的运行情况,既不考虑集群中内存大小、磁盘I/O大小、网络带宽等硬件瓶颈,也不考虑作业自身随时间的变化、作业和作业之间的相互影响;2)作业互斥性模拟:在绝对理想情景之上,增加对作业和作业之间相互影响的模拟,能够一定程度上反应硬件瓶颈的问题,与绝对理想情景相比更接近真实情况。
现实GPU集群中的作业执行情况除了与上述所讲的作业互斥性有关外,还和其他与GPU相关的属性有关,例如GPU稳定性。GPU作为一个新兴事物,其稳定性不能与CPU相提并论。在GPU集群中,平均每个作业都会有一次出错重启,作业的失败(根据重启策略重启后仍然不能正常执行)率高达37%。图1是集群故障导致作业完成时间延长示意图。图1所示,作业Job原本完成时刻为T,但集群每次故障都需要一定时间恢复,图1中黑色方块即为资源浪费部分,最终使作业完成时间T1远超T。因此,GPU稳定性即故障情况的模拟也是GPU集群调度策略模拟器必须要具备的功能,而现有相关模拟器却都不具备这样的模拟能力。
例如,现有技术提出一种共享状态(Shared state)调度算法,并实现了一套用于调度算法验证的模拟器,分为轻量模拟器(Lightweight simulator)和高精度模拟器(high-fidelity simulator)。其中轻量模拟器使用以经验为主的人工配置负载,而高精度模拟器使用Google生产集群的历史工作负载,具有更强的真实性。轻量级模拟器也不包含任何专有的谷歌代码,高精度模拟器复用了大量Google生产集群代码。但两个模拟器都只具有负载生成模块、调度策略模块、指标生成模块,无法模拟集群故障。现有技术还提出一种大规模分布式集群的调度策略模拟器,可以模拟单片式调度(monolithic)、二级调度(Two-level scheduler)和共享状态调度(Shared-state scheduler),能够模拟能源用量,支持能源感知调度算法的模拟,但也不具有故障模拟,以及错误感知调度模拟的能力。现有技术还提出一种包含能源感知的基于斯塔克尔伯格博弈的调度策略模拟器。但是该文所设计的模拟器同样不具备错误感知调度模拟的能力。
现有大规模分布式集群调度模拟器主要集中于模拟特定的调度策略,如单片式调度(monolithic)、二级调度(Two-level scheduler)和共享状态调度(Shared-statescheduler)。部分模拟器具有特定的感知能力,如能量感知,可以对能量相关的调度策略进行模拟。随着GPU集群规模的不断扩大,集群故障影响越来越大,针对集群故障的研究也在展开,但故障感知的模拟器目前还没有出现。如果不适用模拟器,研究受到时间成本和经济成本限制将进步缓慢,着重需要解决大规模分布式GPU集群故障感知调度的模拟问题。
发明内容
针对现有技术中存在的问题,本发明提出一种GPU集群调度策略模拟方法,包括:获取模拟GPU集群的集群参数、拟执行的工作负载及对应的调度策略;基于该调度策略,获取该工作负载完成无故障运行的预测时间;根据该集群参数和该预测时间,设定该模拟GPU集群的模拟故障参数;以该调度策略及该模拟故障参数进行该工作负载的故障工作模拟,获取该工作负载在故障工作状态时的运行数据。
本发明所述的GPU集群调度策略模拟方法,其中设定该模拟故障参数的步骤包括:从该模拟GPU集群模拟器的M个GPU资源中,选出D个模拟故障资源;对于该模拟故障资源中的任一GPU资源d,设定d在(0,Tpre]范围出现N次故障,第i次故障的开始时间为Esi,持续时间为Eli,并满足∑iEli=Pd*Tpre,El1,El2,...,ElN为正整数序列;以故障次数N及所有故障的开始时间、持续时间,作为d的模拟故障参数;遍历所有该模拟故障资源,以所有该模拟故障资源的模拟故障参数,作为该模拟GPU集群的模拟故障参数;其中,Tpre为该预测时间,Pd为d在1个时间粒度内发生故障的概率,D、M、N、i为正整数,0<D≤M,i∈[1,N];
本发明所述的GPU集群调度策略模拟方法,其中设定GPU集群的模拟故障参数的步骤包括:从该GPU集群模拟器的M个GPU资源中,选出D个模拟故障资源;对于该模拟故障资源中的任一GPU资源d,于(0,Tpre]范围选取K个随机判定时刻t,在每个t时刻对d以指数随机分布参数λ进行GPU故障随机判定,获取所有判定出现GPU故障的时刻,得到d于(0,Tpre]范围内出现的故障次数N,以及每次故障的发生时间,作为d的模拟故障参数;遍历所有该模拟故障资源,以所有该模拟故障资源的模拟故障参数,作为该模拟GPU集群的模拟故障参数;其中,Tpre为该预测时间,s为故障常数,表示每s个时间粒度内d的故障发生概率为Pd,随机判定时刻tk=t1+(k-1)*recover_time,且满足第K个随机判定时刻tK处于(0,Tpre]范围内,t1为第1个随机判定时刻,recover_time为后移时间参数,D、M、N、K、k为正整数,0<D≤M,k∈[1,K]。
本发明所述的GPU集群调度策略模拟方法,还包括:以该运行数据生成对应该工作负载的调度策略指标;其中,该运行数据包括:该工作负载中每个作业的开始执行时间、中断或结束时间、使用的GPU资源以及停止原因。
本发明所述的GPU集群调度策略模拟方法,其中该调度策略包括:第一必须策略,用于决定该GPU集群模拟器的等待队列中该工作负载的作业的执行顺序;第二必须策略,用于对正在调度的作业分配运行资源;第一非必须策略,用于决定执行作业中断后是否立即重启;第二非必须策略,用于决定执行任一作业过程中被其他作业抢占而中断后,是否转而执行另一个抢占作业;第三非必须策略,用于在运行资源不足导致当前执行的作业阻塞等待时,决定是否调度执行其他作业。
本发明所述的GPU集群调度策略模拟方法,其中进行故障工作模拟的步骤包括:根据该第一必须策略更新该工作负载所有作业的优先级;获取该工作负载当前将要执行的被调度作业,并根据该第二必须策略和该模拟GPU集群的模拟故障参数执行该被调度作业;根据该被调度作业的执行情况获取该被调度作业的运行数据;执行该工作负载中的所有作业,以获取该工作负载的运行数据。
本发明还提出一种GPU集群模拟器,采用如前所述的GPU集群调度策略模拟方法进行GPU集群调度策略模拟,该GPU集群模拟器包括:模拟GPU集群,用于模拟运行工作负载并获取运行数据;自定义工作负载模块,用于编辑该工作负载的基本参数;自定义集群参数模块,用于设定该模拟GPU集群的集群参数;自定义调度策略模块,用于设定运行该工作负载的调度策略;预测器,用于以该调度策略对该工作负载进行无故障工作预测,并获取预测时间;错误生成器,用于根据该集群参数和该预测时间,设定该模拟GPU集群的模拟故障参数;指标生成器,用于根据该运行数据生成对应该工作负载的调度策略指标。
本发明还提出一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,当该计算机可执行指令被处理器执行时,实现如前所述的GPU集群模拟器。
本发明还提出一种数据处理装置,包括如前所述的计算机可读存储介质,当该数据处理装置的处理器调取并执行该计算机可读存储介质中的计算机可执行指令时,实现GPU集群调度策略模拟。
附图说明
图1是集群故障导致作业完成时间延长示意图。
图2是本发明的调度策略模拟器数据流结构示意图。
图3是本发明的GPU集群调度策略模拟方法流程图。
图4是本发明的GPU集群模拟器原始数据生成过程流程图。
图5是本发明的数据处理装置示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进一步详细说明。应当理解,此处所描述的具体实施方法仅仅用以解释本发明,并不用于限定本发明。
发明人在进行大规模分布式GPU集群的故障感知调度算法研究时,发现现有大规模分布式GPU集群调度模拟器的设计都未能面向集群故障而进行模拟,导致集群故障带来的影响无法用模拟器进行研究。
为解决上述现有调度策略模拟器不能模拟集群故障的问题,本发明提出了一种具有故障感知的GPU集群调度策略模拟方法以及调度策略模拟器。发明人经过对GPU集群故障的研究发现,解决该项缺陷可以通过给模拟器添加具有故障感知功能的错误生成器,同时配合故障模拟的方法来实现。错误生成器根据给定的GPU出错概率,以特定的规则生成集群中的故障情况。故障模拟部分添加到模拟作业运行的流程中,基于错误生成器生成的故障情况,对集群中作业的运行进行模拟。本发明的模拟器能够模拟集群故障情况、优先级策略、放置策略、抢占策略、重启策略、回填策略对不同负载的影响。
调度策略模拟器共包括6个必备模块:自定义工作负载模块、自定义集群参数模块、自定义调度策略模块、错误生成器、预测器、原始数据生成器(模拟GPU集群);1个可选模块:指标生成器。
自定义工作负载模块可由用户自由编辑集群中即将运行的负载信息,包括负载作业ID、提交时间、理论运行时间、所需GPU资源量、当前重启状态、当前抢占状态、当前故障中断状态、当前优先级、作业类型。其中负载作业的ID不能重复,第一个作业的提交时间必须为0。
自定义集群参数模块是用户需要指定的集群信息,包括集群中节点数量、GPU资源数量、GPU资源的故障概率等信息。
自定义调度策略模块中包含5个部分,分别为优先级策略、放置策略、抢占策略、重启策略和回填策略。用户可以根据需要来选择使用或不使用相应策略。模拟器会根据自定义的调度策略对负载进行调度,模拟负载作业在真实GPU集群中的运行情况。
错误生成器的核心是根据自定义集群参数模块中用户所给的集群信息来生成具体的故障情况。错误生成器生成的故障信息将会被用于模拟负载运行过程中,并直接影响负载的运行过程。因集群故障而中止的负载将会被打上“err”标签。
预测器的主要功能是预估自定义负载在自定义集群参数下的理想(集群无故障)运行时间。该理想运行时间会被用于错误生成器,错误生成器生成的故障时间都会在改理想运行时间内。
原始数据生成器是用于生成模拟结果的模块。原始数据生成器会生成一个字典(finish_dict),其中记录了负载中所有作业的实际开始时间、中断/结束时间、GPU使用信息、停止信息。当停止信息为“err”代表因集群故障而中断,为“preempt”代表因其他作业的抢占而中断,为“None”代表该作业执行结束。
指标生成器模块为可选模块。如果用户需要的模拟结果是一些特定的调度指标如平均等待时间、最大完成时间,可以自定构建指标生成器利用原始数据生成自己所需的指标即可。
本发明的技术核心包括:1)为调度策略模拟器设置错误生成器,错误生成器可以根据自定义集群参数模块中用户所给的集群信息来生成具体的故障情况;2)故障感知功能,使调度策略模拟器模拟作业运行时,会模拟作业因集群故障而中断的情况;3)多种单片调度策略的解耦模拟功能,以模拟回滚策略(backfill)、优先级策略、放置策略、抢占策略、重启策略,并且模拟各个策略的时候能实现逐一解耦模拟。
图2是本发明的调度策略模拟器数据流结构示意图。如图2所示,本发明的GPU集群调度策略模拟器包含6个必备子模块:自定义工作负载模块、自定义集群参数模块、自定义调度策略模块、错误生成器、预测器、原始数据生成器;1个可选子模块:指标生成器。
本发明的具有故障感知的GPU集群调度策略模拟器,采用先模拟集群故障情况再模拟负载的真实运行情况的工作方式,图3是本发明的GPU集群调度策略模拟方法流程图。如图3所示,本发明的GPU集群模拟器详细工作步骤如下:
步骤S1:获取自定义工作负载,自定义工作负载中包含一个或多个作业,每个作业需要定义作业编号、提交时间、理论运行时间、所需GPU资源量、当前重启状态、当前抢占状态、当前故障中断状态、当前优先级、作业类型等作业参数。其中,负载作业的编号不能重复,可以是数字也可以是字符串;第一个作业的提交时间必须为0。
步骤S2:获取自定义集群参数,包括GPU集群中节点数量、各节点GPU资源数量、各GPU资源的故障概率系数、故障生成模式信息。
步骤S3:确定调度策略。具体包括:
S31:定义优先级策略,该策略是必须存在的策略,用于决定等待队列中作业执行的先后顺序。作业优先级用得分表示,得分高则优先级高,优先执行。经典的优先级策略有先来先服务策略、短作业优先算法等。
S32:定义放置策略,该策略是必须存在的策略,GPU集群模拟器会根据该策略对正在调度的任务分配运行资源,经典的GPU资源放置策略有随机放置策略、负载均衡策略等。
S33:定义重启策略,该策略为非必须策略,其作用是决定作业执行中断后是否立即重启。如果没有重启策略则表示所有负载作业运行中,遇到中断情况后永远不会立即重启,而是等待下次重新调度。
S34:定义抢占策略,该策略为非必须策略,其作用是决定作业执行过程中是否会被其他作业抢占而中断,转而执行另一个抢占作业。如果没有抢占策略表示所有作业在执行过程中都不会被抢占。
S35:回填(backfill)策略配置。其作用是当作业调度资源不足时,使当前作业阻塞等待,决定调度运行或不调度运行其他作业。
步骤S4:由预测器基于自定义集群参数对工作负载的作业流工作执行时间进行预测,得到预测时间Tpre。其中,预测过程即时间范围(0,Tpre]内集群故障率为0,即以无故障工作状态对工作负载进行模拟。
步骤S5:由错误生成器在时间范围(0,Tpre]内生成集群故障参数;本发明的实施例提供两种方案以生成集群故障参数,具体包括:
方案一:
从拟出现故障的GPU资源中,选定一个GPU资源,将其ID记为Gd;具体来说,从具有M个GPU资源的GPU集群中,选出D个拟出现故障的GPU资源;
对于D个拟出现故障的GPU资源(模拟故障资源)中的任一GPU资源d,设定GPU资源d在(0,Tpre]范围出现故障的次数为N,则在(0,Tpre]范围内随机生成N个随机数Es1,Es2,...,Esn,分别作为N次故障的开始时间,生成一个长度为N的正整数序列El1,El2,...,ElN,分别作为N次故障的持续时间,并满足∑iEli=Pd*Tpre;这里Pd为GPU资源d在一个时间粒度内发生故障的概率,于本发明的实施例,一个时间粒度为1秒(1s);
如此一来,便获得GPU资源d在(0,Tpre]范围发生故障次数N,以及每次故障的开始时间、持续时间,作为GPU资源d的模拟故障参数;
遍历所有D个模拟故障资源,以获取所有模拟故障资源的模拟故障参数,作为GPU集群的模拟故障参数;其中0<D≤M,D、M、N为正整数;
方案二:
从拟出现故障的GPU资源中,选定一个GPU资源,将其ID记为Gd;具体来说,从具有M个GPU资源的GPU集群中,选出D个拟出现故障的GPU资源;
对于D个拟出现故障的GPU资源中的任一GPU资源d,设定GPU资源d在(0,Tpre]范围进行K次GPU故障随机判定,每次故障判定均根据指数随机分布参数λ进行,其中,指数随机分布参数s为可变常数,表示每s个时间粒度内GPU资源d的出错概率为Pd,于本发明的实施例,一个时间粒度为1秒(1s),即每s秒内GPU资源d的出错概率为Pd;随机判定时刻tk=t1+(k-1)*recover_time,且满足所有的随机判定时刻t处于(0,Tpre]范围内,t1为第1个随机判定时刻;
如此一来,便获得GPU资源d在(0,Tpre]范围发生的故障次数N(N≤K),以及根据随机判定时刻t获得的每次故障的发生时间,作为GPU资源d的模拟故障参数;
遍历所有D个拟出现故障的GPU资源,以设定所有拟出现故障的GPU资源的模拟故障参数,作为GPU集群的模拟故障参数,其中,k∈[1,K],0<D≤M,D、M、N、K、k、s为正整数。
步骤S6:基于步骤S5生成的GPU集群的模拟故障参数模拟负载的运行情况,图4是本发明的GPU集群模拟器原始数据生成过程流程图。如图4所示,具体包括:
S61:找到下一个被调度的作业。
S611:用步骤S31中自定义的优先级策略更新所有作业的优先级。
S612:查看上一次作业停止是否是被抢占中止的,如果是,则下一个调度作业为抢占作业,否则继续下一步骤。
S613:查看等待队列中是否有作业且该作业所需资源充足,如果有则该等待作业就是下一个被调度的作业,否则下一个调度作业是负载中最早提交的作业。
S62:计算被调度作业的执行情况。
S621:判断被调度作业所需资源是否充足,如果充足则计算该作业的中断或完成时间并将相应信息写入finish_dict,否则继续下一步骤。
S622:如果启用回填策略则将当前调度作业送入等待队列即可,否则该作业持续阻塞,并继续下一步。
S623:判断作业阻塞期间是否有其他作业比当前作业有更高的优先级,如果有则回到步骤S62执行更高优先级的作业,否则持续阻塞至当前作业完成并将执行情况写入finish_dict中。
S63:再次执行S61步骤,直到负载中所有作业全部执行完毕。
步骤S7:汇总负载实际工作的原始数据,即负载中每个作业的开始执行时间、中断或结束时间、使用的GPU资源、停止原因。
步骤S8:利用步骤S7中的原始数据生成所需调度指标。
通过上述技术方案可以模拟负载运行指标在非稳定集群中受到调度策略的影响。
本发明还提出一种计算机可读存储介质,以及一种数据处理装置,如图5所示。本发明的计算机可读存储介质存储有计算机可执行指令,计算机可执行指令被数据处理装置的处理器执行时,实现上述GPU集群模拟器,并进行具有故障感知的GPU集群调度策略模拟。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器、FPGA、ASIC等)完成,所述程序可以存储于可读存储介质中,如只读存储器、磁盘或光盘等。上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明实施例不限制于任何特定形式的硬件和软件的结合。
本发明提出一种具有故障感知的GPU集群模拟器,其核心出发点在于模拟了GPU集群会出现故障的不稳定性,基于这种不稳定性再模拟GPU集群中的作业运行受到调度策略的影响。具体而言,本专利在理想情景模拟器的基础上,先模拟了GPU集群的不稳定性。不稳定性受多方面影响,本发明将其统一成GPU无法正常工作,导致集群中的作业执行出错并终止执行,最终影响集群中作业运行的相关指标。
本发明的GPU集群调度策略模拟器具有以下技术效果:1)具有错误生成器。能够根据自定义集群参数模块中用户所给的集群信息来生成具体的故障情况。2)模拟过程具有故障感知能力。模拟作业运行时,会考虑作业因集群故障而中断的情况。3)具有调度策略解耦优势。能够模拟的5种调度策略,且互相之间可以有依赖关系,也可以完全独立。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变形,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (10)
1.一种GPU集群调度策略模拟方法,其特征在于,包括:
获取模拟GPU集群的集群参数、拟执行的工作负载及对应的调度策略;
基于该调度策略,获取该工作负载完成无故障运行的预测时间;
根据该集群参数和该预测时间,设定该模拟GPU集群的模拟故障参数;
以该调度策略及该模拟故障参数进行该工作负载的故障工作模拟,获取该工作负载在故障工作状态时的运行数据。
2.如权利要求1所述的GPU集群调度策略模拟方法,其特征在于,设定该模拟故障参数的步骤包括:
从该模拟GPU集群模拟器的M个GPU资源中,选出D个模拟故障资源;
对于该模拟故障资源中的任一GPU资源d,设定d在(0,Tpre]范围出现N次故障,第i次故障的开始时间为Esi,持续时间为Eli,并满足∑iEli=Pd*Tpre,El1,El2,...,ElN为正整数序列;以故障次数N及所有故障的开始时间、持续时间,作为d的模拟故障参数;
遍历所有该模拟故障资源,以所有该模拟故障资源的模拟故障参数,作为该模拟GPU集群的模拟故障参数;
其中,Tpre为该预测时间,Pd为d在1个时间粒度内发生故障的概率,D、M、N、i为正整数,0<D≤M,i∈[1,N]。
3.如权利要求1所述的GPU集群调度策略模拟方法,其特征在于,设定GPU集群的模拟故障参数的步骤包括:
从该GPU集群模拟器的M个GPU资源中,选出D个模拟故障资源;
对于该模拟故障资源中的任一GPU资源d,于(0,Tpre]范围选取K个随机判定时刻t,在每个t时刻对d以指数随机分布参数λ进行GPU故障随机判定,获取所有判定出现GPU故障的时刻,得到d于(0,Tpre]范围内出现的故障次数N,以及每次故障的发生时间,作为d的模拟故障参数;
遍历所有该模拟故障资源,以所有该模拟故障资源的模拟故障参数,作为该模拟GPU集群的模拟故障参数;
4.如权利要求1所述的GPU集群调度策略模拟方法,其特征在于,还包括:以该运行数据生成对应该工作负载的调度策略指标;
其中,该运行数据包括:该工作负载中每个作业的开始执行时间、中断或结束时间、使用的GPU资源以及停止原因。
5.如权利要求1所述的GPU集群调度策略模拟方法,其特征在于,该调度策略包括:
第一必须策略,用于决定该GPU集群模拟器的等待队列中该工作负载的作业的执行顺序;
第二必须策略,用于对正在调度的作业分配运行资源;
第一非必须策略,用于决定执行作业中断后是否立即重启;
第二非必须策略,用于决定执行任一作业过程中被其他作业抢占而中断后,是否转而执行另一个抢占作业;
第三非必须策略,用于在运行资源不足导致当前执行的作业阻塞等待时,决定是否调度执行其他作业。
6.如权利要求5所述的GPU集群调度策略模拟方法,其特征在于,进行故障工作模拟的步骤包括:
根据该第一必须策略更新该工作负载所有作业的优先级;
获取该工作负载当前将要执行的被调度作业,并根据该第二必须策略和该模拟GPU集群的模拟故障参数执行该被调度作业;根据该被调度作业的执行情况获取该被调度作业的运行数据;
执行该工作负载中的所有作业,以获取该工作负载的运行数据。
7.一种GPU集群模拟器,采用如权利要求1-6任一项所述的GPU集群调度策略模拟方法进行GPU集群调度策略模拟,其特征在于,该GPU集群模拟器包括:
模拟GPU集群,用于模拟运行工作负载并获取运行数据;
自定义工作负载模块,用于编辑该工作负载的基本参数;
自定义集群参数模块,用于设定该模拟GPU集群的集群参数;
自定义调度策略模块,用于设定运行该工作负载的调度策略;
预测器,用于以该调度策略对该工作负载进行无故障工作预测,并获取预测时间;
错误生成器,用于根据该集群参数和该预测时间,设定该模拟GPU集群的模拟故障参数。
8.如权利要求7所述的GPU集群模拟器,其特征在于,还包括:
指标生成器,用于根据该运行数据生成对应该工作负载的调度策略指标。
9.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,当该计算机可执行指令被处理器执行时,实现如权利要求7或8所述的GPU集群模拟器。
10.一种数据处理装置,包括如权利要求9所述的计算机可读存储介质,当该数据处理装置的处理器调取并执行该计算机可读存储介质中的计算机可执行指令时,实现GPU集群调度策略模拟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110690973.2A CN113504966B (zh) | 2021-06-22 | 2021-06-22 | Gpu集群调度策略模拟方法及gpu集群模拟器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110690973.2A CN113504966B (zh) | 2021-06-22 | 2021-06-22 | Gpu集群调度策略模拟方法及gpu集群模拟器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113504966A true CN113504966A (zh) | 2021-10-15 |
CN113504966B CN113504966B (zh) | 2023-10-31 |
Family
ID=78010671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110690973.2A Active CN113504966B (zh) | 2021-06-22 | 2021-06-22 | Gpu集群调度策略模拟方法及gpu集群模拟器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113504966B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971502A (zh) * | 2024-03-29 | 2024-05-03 | 南京认知物联网研究院有限公司 | 一种针对ai推理集群进行在线优化调度的方法与装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160308783A1 (en) * | 2015-04-20 | 2016-10-20 | Peter G. Bookman | Systems and Methods for Allocating Online Resources |
CN110874256A (zh) * | 2018-08-31 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 一种计算集群更新***、方法及装置 |
CN111274021A (zh) * | 2020-02-27 | 2020-06-12 | 苏宁云计算有限公司 | 一种gpu集群任务调度分配方法 |
CN112000473A (zh) * | 2020-08-12 | 2020-11-27 | ***股份有限公司 | 深度学习模型的分布式训练方法以及装置 |
CN112000468A (zh) * | 2020-08-03 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种基于侦测调节模块的gpu管理装置、方法及gpu服务器 |
CN112433819A (zh) * | 2020-11-30 | 2021-03-02 | 中国科学院深圳先进技术研究院 | 异构集群调度的模拟方法、装置、计算机设备及存储介质 |
-
2021
- 2021-06-22 CN CN202110690973.2A patent/CN113504966B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160308783A1 (en) * | 2015-04-20 | 2016-10-20 | Peter G. Bookman | Systems and Methods for Allocating Online Resources |
CN110874256A (zh) * | 2018-08-31 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 一种计算集群更新***、方法及装置 |
CN111274021A (zh) * | 2020-02-27 | 2020-06-12 | 苏宁云计算有限公司 | 一种gpu集群任务调度分配方法 |
CN112000468A (zh) * | 2020-08-03 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种基于侦测调节模块的gpu管理装置、方法及gpu服务器 |
CN112000473A (zh) * | 2020-08-12 | 2020-11-27 | ***股份有限公司 | 深度学习模型的分布式训练方法以及装置 |
CN112433819A (zh) * | 2020-11-30 | 2021-03-02 | 中国科学院深圳先进技术研究院 | 异构集群调度的模拟方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
黄锦增;陈虎;赖路双;: "异构GPU集群的任务调度方法研究及实现", 计算机技术与发展, no. 05 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971502A (zh) * | 2024-03-29 | 2024-05-03 | 南京认知物联网研究院有限公司 | 一种针对ai推理集群进行在线优化调度的方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113504966B (zh) | 2023-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110067030A1 (en) | Flow based scheduling | |
Hu et al. | Scheduling real-time parallel applications in cloud to minimize energy consumption | |
US20130339973A1 (en) | Finding resource bottlenecks with low-frequency sampled data | |
CN111079921A (zh) | 一种基于异构分布式***的高效神经网络训练调度方法 | |
Xu et al. | Enhancing kubernetes automated scheduling with deep learning and reinforcement techniques for large-scale cloud computing optimization | |
Wu et al. | Real-time load balancing scheduling algorithm for periodic simulation models | |
CN112685153A (zh) | 微服务调度方法、装置以及电子设备 | |
CN106168912B (zh) | 一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法 | |
Sun et al. | QoS-aware task placement with fault-tolerance in the edge-cloud | |
CN113157421B (zh) | 一种基于用户作业流程的分布式集群资源调度方法 | |
CN106383746A (zh) | 大数据处理***的配置参数确定方法和装置 | |
CN115373835A (zh) | Flink集群的任务资源调整方法、装置及电子设备 | |
Razavi et al. | FA2: Fast, accurate autoscaling for serving deep learning inference with SLA guarantees | |
CN117271101B (zh) | 一种算子融合方法、装置、电子设备及存储介质 | |
Mousavi Khaneghah et al. | A mathematical multi-dimensional mechanism to improve process migration efficiency in peer-to-peer computing environments | |
CN115543626A (zh) | 采用异构计算资源负载均衡调度的电力缺陷图像仿真方法 | |
Nasonov et al. | Hybrid scheduling algorithm in early warning systems | |
CN112231081A (zh) | 云环境下基于pso-ahp的单调速率资源调度方法及*** | |
Chen et al. | Hare: Exploiting inter-job and intra-job parallelism of distributed machine learning on heterogeneous gpus | |
CN113504966B (zh) | Gpu集群调度策略模拟方法及gpu集群模拟器 | |
Hu et al. | Cloud model-based security-aware and fault-tolerant job scheduling for computing grid | |
Tuli et al. | Optimizing the performance of fog computing environments using ai and co-simulation | |
Saroja et al. | Multi-criteria decision-making for heterogeneous multiprocessor scheduling | |
Xie et al. | Scheduling Parallel Applications on Heterogeneous Distributed Systems | |
Yang et al. | Deep reinforcement agent for failure-aware job scheduling in high-performance computing |
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 |