龙空技术网

超级计算机计算资源调度优化关键技术研究

九鹏举 65

前言:

如今咱们对“最低松弛度优先调度算法”都比较注意,同学们都需要剖析一些“最低松弛度优先调度算法”的相关内容。那么小编在网摘上收集了一些关于“最低松弛度优先调度算法””的相关知识,希望我们能喜欢,我们一起来学习一下吧!

文|九鹏举

编辑|九鹏举

当前世界各国均把超级计算机视为国家科技创新发展的重大驱动平台,纷纷制定计划研制各自的超级计算机系统,将超级计算机的计算性能不断推向新高。

2010年11月,我国研发的“天河一号”超级计算机首次夺得世界超级计算TOP500排名的桂冠,标志着世界超级计算机从Tflops时代进入Pflops时代。

2013年6月,同样来自中国的“天河二号”超级计算机,以54.9Pflops的性能再次夺得世界第一。

2016年6月,“太湖之光”研制成功,接棒“天河二号”成为新的世界第一,峰值性能达到了125Pflops,标志着全球超级计算机的性能进入百Pflops时代。

虽然2018年6月,美国能源部下属的橡树岭国家实验室(OakRidgeNationalLaboratory)发布了新一代超级计算机“顶点”(Summit)。

其浮点运算速度峰值达到了每秒20亿亿次(200PFlops),帮助美国问鼎阔别近5年之久的全球超级计算机500强榜单,但性能还处在百Pflpops规模。

而E级(百亿亿次)超级计算是当前世界超级计算机领域公认的“下一顶皇冠”,将有望在解决全球环境污染、能源危机以及气候变化等重大难题上发挥巨大作用。

随着美国、中国、欧盟、日本相继发布E级超级计算机的研制计划,超级计算机将从Pflops时代逐渐迈进Eflpos时代。

超级计算机用户行为和负载特征分析

当前影响力最大的超级计算机开放日志集为希伯来大学的实验系统实验室开放的并行任务负载资料库PWA,目前包含了来自全球39台超级计算机的相关日志,已经支持数百篇相关研究工作。

学者Feitelson等人详细介绍了该资料库中十几台超级计算机作业的相关特征,并针对如何利用该日志集开展研究工作给出了一系列实用的研究建议,供其他研究人员参考。

PWA定义了作业负载记录的标准格式SWF,包括作业的提交时间、开始时间、运行时间、作业占用的核数,用户信息以及其他相关因素。

网格环境的公开日志集为GWA,主要包括一些网格环境下超级计算机的相关运行日志。

GWA提供了基于SWF的扩展作业格式GWF,该格式大部分字段和SWF格式相同,只是补充了部分网格环境下适用的字段。

这两种超级计算机的数据集暂时还未包含目前10Plops以上的超级计算机,其中规模较大的超级计算机为来自法国的居里(Curie)超级计算机,峰值计算能力2PFlops。

更大规模的超级计算机的用户行为和负载特征等情况需要从其他相关研究中获得。

国内的研究人员在PWA的基础上,针对国内高性能计算机的特点,梳理了上海超算中心、国家超级计算无锡中心、上海交通大学、中国科技大学等单位的超级计算机的历史作业数据,放入了中国超算任务负载资料库,公开开放给相关研究人员使用。

目前该资料库中,包括了上海超算中心的曙光5000A近3年的日志,国家超级计算无锡中心的一台超级计算机4个月的日志(具体名称未知),和来自上海交通大学和中国科技大学两所高校的两台超级计算机各自2年的相关日志。

但从数据质量上看,可能还需要进一步整理,比如国家超级计算无锡中心的超级计算机日志中无效的数值(-1)较多,对分析效果影响较大。

超级计算机的资源调度和分配由资源管理系统负责,目前应用比较广泛的资源管理系统包括Slurm,Torque,PBSpro,LSF等。

其中Slurm是一种在超级计算机上广泛应用的开源资源管理系统,包括“天河一号”,“天河二号”等超级计算机均采用了Slurm资源管理系统。

Slurm资源管理系统主要由控制进程、结点监控进程、作业管理进程、记账存储进程、命令工具等多个组成。

其中控制进程slurmctld,负责资源分配、作业调度、作业管理控制等核心任务。

结点监控进程slurmd运行在每个计算结点上,负责收集结点的资源状态并向控制进程报告。

同时slurmd接收来自控制进程与用户命令的请求,加载任务步或取消作业等。

作业管理进程slurmstepd由slurmd在加载作业步任务或批处理作业时派生,该进程管理结点上一个作业步的所有任务,负责进行任务的启动、I/O转发、信号传递、记账信息收集等功能。

Slurm的sacct命令可以查看系统记账日志或记账数据库中的作业与作业步的记账数据,以进行分析。

超级计算机资源调度和优化技术

通常资源管理系统负责超级计算机资源的调度和分配工作,资源管理系统基于选定的调度策略来调度和分配资源,典型调度策略包括FCFS,FirstFit,Backfilling等。

其中FCFS调度策略选择作业队列中的第一个作业进行调度,从作业提交的顺序角度来看,该方法比较公平,但是这样的调度通常会表现出较低的资源利用率。

为了解决这个问题,学者们提出了多种基于回填机制的调度方法,包括保守的回填策略(ConservativeBackfilling)和简单回填策略(EASYBackfilling)。

保守回填策略,通常选择作业队列中不会延迟它前面所有作业执行的作业进行资源分配,而简单回填策略,则选择作业队列中不会延迟第一个作业执行的作业进行资源分配。

还有其他研究寻找更多的回填策略来优化调度,包括松弛回填(SlackBackfilling)算法,该算法给每个作业设置一个允许延迟的阈值,针对紧急、重要的任务设置较短的阈值,在调度中只要作业被延迟调度的时间不超过该阈值即可。

选择性回填算法(SelectiveBackfilling)是针对等待时间足够长的作业设定一个资源预约来提升调度效率。

为了能够进行回填调度,用户需要提前给出作业运行时间的评估值,该值在资源调度中和实际作业运行时间的准确性非常关键。

如果低于作业的运行时间,系统会将该作业在正常结束前提前中断,因此用户习惯于给出较高的作业运行评估时间,而这又反过来影响了系统的实际的调度策略。

公平性也是在高性能计算和网格环境中的研究热点,但公平性的概念可以从不同的角度来理解。

当前关于公平性的研究主要分为两个维度:公平性调度(Fair-shedule)和公平性分配(Fair-share)。

公平性调度主要关注作业调度顺序的公平性,晚提交的作业不能比早提交的作业先开始运行。

一个作业j的公平开始时间,通过去除作业j后面的所有作业,也就是把作业j作为队列中的最后一个作业来进行模拟调度,此时作业j的开始时间就是它的公平开始时间。

Ngubiri等人对比了不同的公平性度量,包括分布,开始时间,排队时间等,考虑了多个工作流的共性调度,给出了工作流的减速比的定义,表示一个工作流在与其他工作流一起调度时从提交到完成所需的时间。

与仅有它一个工作流从提交到完成所需的时间的比值,通过该值来评估调度策略的公平性。

还有一些其他研究关注资源分配排队的公平性,重点考虑作业的运行、排队等整体服务时间。

减速比排队公平性基于用户作业的等待时间要和它的服务时间成一定比例的要求,如果比例过高说明该作业的调度不够公平。

实际上,在配额约束超级计算机上,由于用户能够清晰的知道他们的资源配额,并且知道他们超过配额的作业需要等待。

因此他们并不十分关心单个作业的等待时间,而是关心自己作业的等待时间和其他用户作业的等待时间的不同,关注自己的作业是否被区别对待。

通过不同用户的平均作业等待时间的均方差来表征这个方面的公平性,这里提出了基于保守回填方法的扩展版本,来提升性能和公平性。

公平性分配主要关注资源分配的公平性,用户需要公平的共享系统资源。

最基本的公平性为,在一个有N个用户的系统中,每个用户占用1/N的资源。

如果用户的权重不同,资源会按照权重进行分配,每个用户获得对应权重比例的资源,最大最小值公平,是一个在系统中广泛应用的分配策略。

该方法的主要思想为,将资源按照每个用户想要的可以满足的最小需求进行公平分配,然后将剩余的空闲资源均匀的分配给需要大资源的用户。

它按照资源需求递增的顺序进行分配,所有用户得到的资源均不超过自己的需求,同时未得到满足的用户等价的分享资源。

例如在一个有4个用户的集群中,每个用户的资源需求(按照从大到小排列)分别为2,2.5,4,5,而系统的总资源为10。

则最大最小值公平分配的第一轮将资源分成4个2.5的份数,因为2.5大于2,则第一个用户分配得2,剩下的8个资源分成三等份2.66。

由于2.66大于2.5,则第二个用户分配得2.5,剩下的5.5分成2份2.75,均小于用户3和4的需求,则用户3和4分别获得2.75的资源。

当用户具有不同的权重比值的时候,资源分配按照权重的比例进行。

由于最大最小值公平分配策略只能分配一种资源,而在系统中通常包含多种资源需求,比如CPU、内存、I/O带宽等。

然后通过将任务的多种资源需求中主要需求为分配关键点,扩展了最大最小值公平策略,并成为了众多研究的热点。

之后,有大量的研究基于DRF开展,衍生出了多种DRF的扩展或普适化版本。

学者Wang等人]提出了一种任务共享公平策略来解决任务有特定分配要求的情况下的资源分配问题。

比如某些任务只能分配给大内存的结点,就可以增加了一个调节参数(knob),允许用户通过它调节来寻求公平性和性能的平衡,同时提出了弹性多资源公平性分配方法来权衡CPU-GPU融合的架构中的公平性和效率。

但这些研究都把资源看作和时间无关的参数,实际上这在超级计算机上的资源调度中是不切实际的。

两个用户同样占用100个计算结点,一个用户的作业运行时间1小时,另外一个10小时,二者的资源消耗明显不同,在按需付费的超级计算机上,更是如此。

用户根据资源消耗来付费,资源消耗指的是作业运行时间和占用的结点数的乘积,这是和时间紧密相关的。

标签: #最低松弛度优先调度算法