CN111506407B - Pull模式与Push模式相结合的资源管理与作业调度方法、系统 - Google Patents

Pull模式与Push模式相结合的资源管理与作业调度方法、系统 Download PDF

Info

Publication number
CN111506407B
CN111506407B CN202010290642.5A CN202010290642A CN111506407B CN 111506407 B CN111506407 B CN 111506407B CN 202010290642 A CN202010290642 A CN 202010290642A CN 111506407 B CN111506407 B CN 111506407B
Authority
CN
China
Prior art keywords
job
scheduling
computing
node
nodes
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
CN202010290642.5A
Other languages
English (en)
Other versions
CN111506407A (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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202010290642.5A priority Critical patent/CN111506407B/zh
Priority to US17/917,246 priority patent/US20230161620A1/en
Priority to PCT/CN2020/097673 priority patent/WO2021208240A1/zh
Publication of CN111506407A publication Critical patent/CN111506407A/zh
Application granted granted Critical
Publication of CN111506407B publication Critical patent/CN111506407B/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/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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/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
    • G06F9/505Allocation 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 load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种Pull模式与Push模式相结合的资源管理与作业调度方法、系统及介质,本发明包括对作业进行解析或识别确定类型并分类型进行调度,针对高性能计算作业,采用Push模式进行分发:为该高性能计算作业分配计算节点、将该高性能计算作业推送给被分配的计算节点执行;针对大数据处理作业,采用Pull模式进行分发:等待计算节点的作业请求,且在计算节点主动发出作业请求时将该大数据处理作业发送给主动发出作业请求的计算节点执行。本发明能够分散传统系统中主节点的工作负载,降低其带来的瓶颈效应,并提升系统的资源利用率,本发明具有通用性好、资源利用率高、系统吞吐率高、可扩展性好的优点。

Description

Pull模式与Push模式相结合的资源管理与作业调度方法、 系统
技术领域
本发明涉及大规模计算机系统的资源管理与作业调度领域,具体涉及一种Pull模式与Push模式相结合的资源管理与作业调度方法、系统及介质。
背景技术
资源管理与作业调度一直是大规模计算系统中的一项挑战性问题。当前,计算系统的规模越来越大,如神威·太湖之光超级计算机由4万计算节点组成,处理器核数达到千万量级;随着“CPU+加速器”模式的盛行,计算系统内部普遍表现出异构性,如当前最快的Summit超级计算机每个节点含有6个GPU;由于大规模计算已成为促进各行业技术进步的基本手段,大量特性各异的作业被提交到计算系统中,导致无序的资源竞争。在以上复杂场景下,针对异构系统的高效率高时效资源管理与作业调度面临巨大的挑战。
资源管理与作业调度是计算机系统研究领域的一个经典话题。现有的与本发明功能相似的大规模资源管理与作业调度系统主要包括早期由NASA开发的NQS和PBS系统、由IBM开发的LSF系统、以及当前在超级计算机TOP500中使用最广泛的Slurm开源调度系统等。这些大规模资源管理与作业调度系统的共性都是面向高性能计算而研发。
NQS(Network Queueing System)是由美国NASA主导开发的一个批处理队列系统。它提供对批处理请求和设备请求的支持,支持底层Unix核心所实现的资源限制功能,并将资源限制与批处理请求和批处理队列相关联。NQS主要由nqsdaemon、logdaemon、netshepherd、netdaemon、netclient、reqserver、pipeclient、rrpipeclient、lbpipeclient九大模块组成。按照功能划分,它们主要分别负责请求、日志、网络等等方面的工作。
PBS(Portable Batch System)是由美国NASA开发的作业管理系统。PBS支持多种操作平台,支持批处理、交互式作业和串行多种并行作业。PBS由server、mom、scheduler模块和命令工具集组成。Server是管理模块,负责用户任务的管理、提交、保障整个作业管理系统的稳定运行。mom是作业执行模块,也叫作业执行器,是一个守护进程,负责将用户提交的作业放入执行队列,并在作业运行后将作业的输出返回给用户,一个PBS系统可以存放在多个不同mom,以通过不同的作业调度策略满足不同的用户需求。Scheduler是作业调度模块,也叫作业调度器,负责调度执行队列中的作业应该什么时候运行、在哪个节点运行、以什么方式运行,它可以和不同的mom通信并获取执行队列状态,然后通过server验证作业有效性,最后根据调度策略进行作业调度。PBS的命令工具集主要用于作业的提交、监视、修改和删除。
LSF(Load Sharing Facility)是由加拿大的Platform公司开发的一个分布式资源管理的工具,用来调度、监视、分析联网计算机的负载。目的是通过集中监控和调度、充分共享计算机的CPU、内存、磁盘等资源。LSF采用松耦合结构,主要由LSF Base、LSF Batch、LSF Job-scheduler、LSF Multi-Cluster和LSF Analyzer五个部分组成。其中,LSF Base提供动态的负载管理和透明的资源访问,LSF Batch提供异构环境下的作业调度处理,LSFJob-scheduler提供基于计算节点的由时间驱动的作业调度,LSF Multi-Cluster支持网络联通的多台超级计算机的资源共享,LSF Analyzer负责作业的全面数据分析,并生成记账报告。
Slurm(Simple Linux Utility for Resource Management)是一种可用于大型计算节点集群的高度可伸缩和容错的集群管理器和作业调度系统。Slurm维护着一个待处理工作的队列并管理集群的整体资源利用。它以一种独占或非独占的方式管理可用的计算节点(取决于资源的需求),以供用户执行工作。Slurm会为任务队列合理地分配资源,并监视作业直至其完成。
Slurm主要由控制进程slurmctld、节点监控进程slurmd、作业管理进程slurmstepd、记账存储进程slurmdbd和命令工具集组成。控制进程slurmctld和记账存储进程slurmdbd部署在管理节点上,其中slurmctld是Slurm的大脑,负责整个超级计算机的资源分配、作业调度和管理控制,而slurmdbd使用户与控制进程访问记账数据库的中间层,起到用户认证与安全隔离作用。节点监控进程slurmd是计算节点的守护进程,负责收集节点的资源状态并向控制进程报告,同时,slurmd接收来自控制进程与用户命令的请求,进行作业步任务加载、作业取消等。作业管理进程slurmstepd由slurmd在加载作业步任务或批处理作业时派生,负责提供本节点上相应作业步的所有任务的启动、I/O转发、信号传递、记账信息收集等功能。
以上资源管理与作业调度系统在面临超大规模计算系统和复杂作业类型时表现出一定的局限性。NQS是早期被提出的一个作业管理系统,其所具备的缺陷较多也较为突出。在作业管理方面,NQS不能记录作业的运行时间、结束时间、作业何时被保持和释放等运行信息和状态改变信息,给用户查询作业的运行情况带来麻烦。系统结构方面,NQS的资源管理功能被分成了两个部分且分散在了不同的模块中,且只能管理本机上的资源,而不能管理集群中所有主机的资源。PBS中默认的资源调度策略FIFO降低了系统的资源利用率,并且对大作业的公平性不予保证。PBS调度器循环扫描作业队列,执行第一个满足当前有效系统资源需求的作业,这种机制导致大作业需要的资源不能满足而组织了其运行,从而产生饥饿现象。为了保证大作业的公平性,FIFO调度器实现了一种饥饿作业调度方法,当某一作业等待时间超过一定时间界限,即对该作业所需的资源进行预约,即这些资源中的一部分成为可用时,不在分配给其他作业,一直到预约的所有资源都得到满足时,将该作业投入运行。在此期间,调度器不会在节点上运行别的作业,预约策略虽然解决了饥饿现象,但导致了严重的节点资源空闲,牺牲了系统资源利用率,降低了系统吞吐率。同时,大作业的公平性不能被保证,也增加了系统的平均作业等待时间。
除以上所分析的缺点以外,上述现有资源管理与作业调度系统都有一个共同的特点,即它们的作业管理都属于集中式的架构。所谓的集中式,是指作业负载信息的维护、作业队列的管理、系统资源信息的维护、向空闲资源的作业调度分配,都由一个特定的中心服务器或者守护进程来承担,这种集中式的架构存在一个严重的隐患就是:中心调度器容易成为整个系统的性能瓶颈和单点故障点。尤其时当系统规模扩大,作业负载类型越来越复杂,系统资源的异构性进一步增强,若持续使用集中式的架构,仅依靠主节点来完成所有的调度任务,将会严重影响整个系统的运行效率和可扩展性。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种Pull模式与Push模式相结合的资源管理与作业调度方法、系统及介质,本发明能够分散传统系统中主节点的工作负载,降低其带来的瓶颈效应,并提升系统的资源利用率,本发明具有通用性好、资源利用率高、系统吞吐率高、可扩展性好的优点。
为了解决上述技术问题,本发明采用的技术方案为:
一种Pull模式与Push模式相结合的资源管理与作业调度方法,实施步骤包括:
1)接收作业;
2)对作业进行解析或识别,确定作业的类型为高性能计算作业或大数据处理作业;
3)分别针对不同类型的作业进行调度,针对调度得到的高性能计算作业,采用Push模式进行分发:为该高性能计算作业分配计算节点、将该高性能计算作业推送给被分配的计算节点执行;针对调度得到的大数据处理作业,采用Pull模式进行分发:等待计算节点的作业请求,且在计算节点主动发出作业请求时将该大数据处理作业发送给主动发出作业请求的计算节点执行。
可选地,步骤3)中分别针对不同类型的作业进行调度的详细步骤包括:
S1)判断是否存在指明不能容忍等待的作业,如果存在则选择一个指明不能容忍等待的作业作为调度出来的作业,跳转执行步骤S1);否则跳转执行下一步;
S2)判断是否存在指定的高性能计算应用发出的作业,如果存在则选择一个指定的高性能计算应用发出的作业作为调度出来的作业,跳转执行步骤S1);否则跳转执行下一步;
S3)通过滑动窗口统计已调度作业所占用的处理器核数,计算所有作业所占用处理器核数的平均值,判断是否存在所需占用处理器核数大于该平均值的作业,如果存在则选择一个所需占用处理器核数大于该平均值的作业作为调度出来的作业,跳转执行步骤S1);否则跳转执行下一步;
S4)判断是否存在包含多个作业的工作流作业,如果存在则选择一个包含多个作业的工作流作业作为调度出来的作业,跳转执行步骤S1);否则跳转执行下一步;
S5)判断待调度作业是否为空,如果非空则选择一个包含多个作业的工作流作业作为调度出来的作业,跳转执行步骤S1);否则直接跳转执行步骤S1)。
可选地,步骤3)中为该高性能计算作业分配计算节点、将该高性能计算作业推送给被分配的计算节点执行的详细步骤包括:
3.1A)读取计算节点分配表获取本调度节点可用状态为可用的可用计算节点;
3.2A)判断本调度节点的可用计算节点是否能够满足该高性能计算作业的要求,如果能够满足该高性能计算作业的要求,则直接将本调度节点的可用计算节点作为分配给该高性能计算作业的计算节点;否则与其他调度节点进行协商通讯获取其他调度节点的可用计算节点作为协助计算节点,并将本调度节点的可用计算节点、协助计算节点共同作为分配给该高性能计算作业的计算节点;
3.3A)将该高性能计算作业推送给被分配的计算节点执行,并将被分配的计算节点在计算节点分配表中标记为可用状态为不可用;
3.4A)等待被分配的计算节点执行该高性能计算作业的响应结果,如果收到任意一个被分配的计算节点返回该高性能计算作业的响应结果,则将该被分配的计算节点在计算节点分配表中的可用状态恢复为可用状态。
可选地,步骤3.2A)中与其他调度节点进行协商通讯获取其他调度节点的可用计算节点时,还包括其他调度节点获取本调度节点可用状态为可用的可用计算节点,并将对应的可用计算节点作为协助计算节点返回给发起协商通讯的调度节点。
可选地,所述计算节点分配表为位表,其长度为本调度节点管理的计算节点数量,且每一位通过1和0来表示对应计算节点的可用状态。
可选地,所述计算节点主动发出作业请求的详细步骤包括:获取本计算节点的资源占用情况,如果本计算节点的资源占用情况小于预设值则向对应的调度请求主动发出作业请求。
可选地,所述本计算节点的资源占用情况小于预设值包括CPU利用率、内存利用率、加速器利用率、正在运行的计算任务的数量中的一种或多种。
此外,本发明还提供一种Pull模式与Push模式相结合的资源管理与作业调度系统,包括计算机设备,该计算机设备被编程或配置以执行所述Pull模式与Push模式相结合的资源管理与作业调度方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行所述Pull模式与Push模式相结合的资源管理与作业调度方法的计算机程序。
此外,本发明还提供一种Pull模式与Push模式相结合的资源管理与作业调度系统,包括调度集群和计算集群,所述调度集群包括一个或多个调度节点,所述计算集群包括多个计算节点,且每一个调度节点管理对应的一个或多个计算节点,该调度节点被编程或配置以执行所述Pull模式与Push模式相结合的资源管理与作业调度方法的步骤,或该调度节点的存储器上存储有被编程或配置以执行所述Pull模式与Push模式相结合的资源管理与作业调度方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述Pull模式与Push模式相结合的资源管理与作业调度方法的计算机程序。
与现有技术相比,本发明具有以下技术优点:
1.通用性好:本发明综合考虑了高性能计算与大数据处理两大类作业负载的特点,系统的设计从这两类作业出发,相比于现有技术,本发明能够对这两类作业的融合负载实现更好的调度,使得系统更具通用性。
2.资源利用率高:作业节点基于自身的资源使用情况,向调度节点申请作业来执行,是基于现有资源现状所实施的更合理更优化的作业分配,这一设计在一定程度上对空闲资源实现更充分的利用,从而提升了系统的资源利用率。
3.系统吞吐率高:由于作业节点能够主动向调度节点申请作业,因此扭转了传统系统中只能被动地等待被分配作业来执行地局面,这一实现能够在一定程度上缩短被拉取(Pull)作业的响应时间,而多个作业节点同时提出作业执行申请所带来的并发度能更进一步地促进这一效应,因此整体上来说,本发明使得系统的吞吐率得到提升。
4.可扩展性好:由于调度节点不用再细粒度地维护全局资源信息,计算节点无需频繁的向控制节点报告资源状况,降低了系统的通信开销,也减轻了主节点的负载,在一定程度上减轻了传统系统中主调度节点所带来的瓶颈效应,从而促进了系统可扩展性的提升。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中的资源管理与作业调度系统的架构示意图。
具体实施方式
如图1所示,本实施例Pull模式与Push模式相结合的资源管理与作业调度方法的实施步骤包括:
1)接收作业;
2)对作业进行解析或识别,确定作业的类型为高性能计算作业或大数据处理作业;需要说明的是,不同类型的作业可以根据需要采用混合存储或者单独存储,存储的方式也可以根据需要采用所需的存储形式,例如队列、链表等;
3)分别针对不同类型的作业进行调度,针对调度得到的高性能计算作业,采用Push模式进行分发:为该高性能计算作业分配计算节点、将该高性能计算作业推送给被分配的计算节点执行;针对调度得到的大数据处理作业,采用Pull模式进行分发:等待计算节点的作业请求,且在计算节点主动发出作业请求时将该大数据处理作业发送给主动发出作业请求的计算节点执行。
本实施例中,作业管理系统除了具备传统的主节点向计算节点Push作业的模式外,还具备计算节点主动向主节点申请作业执行的Pull模式。而这两种模式的使用主要是面向不同的作业类型,对于以传统数值模拟应用为代表的高性能计算作业,它们往往需要大量连续资源,计算持续时间较长,我们让主节点划分固定的系统资源,再将该作业Push到划分出的资源片区(分配的计算节点)来执行;而对于以数据分析应用为代表的大数据处理作业,它们的资源要求一般较小,执行时间较短,很可能属于高通量型作业,让计算节点主动向主节点拉取(Pull)作业来执行。需要说明的是,确定作业的类型既可以采用解析的方式来获取,采用解析的方式来获取即为作业生成者预先在作业中指定作业的类型为高性能计算作业或大数据处理作业,从而可以使得作业人为可控;此外,考虑到在大型计算系统中的作业内容都有特定的语法格式,因此也可以根据作业内容采用识别作业内容的方式来确定作业的类型。
采用本实施例本实施例Pull模式与Push模式相结合的资源管理与作业调度方法的作业管理系统除了具备传统的主节点向计算节点Push作业的模式外,还具备计算节点主动向主节点申请作业执行的Pull模式。而这两种模式的使用主要是面向不同的作业类型,对于以传统数值模拟应用为代表的高性能计算作业,它们往往需要大量连续资源,计算持续时间较长,我们让主节点划分固定的系统资源,再将该作业Push到划分出的资源片区来执行;而对于以数据分析应用为代表的大数据处理作业,它们的资源要求一般较小,执行时间较短,很可能属于高通量型作业,让计算节点主动向主节点拉取(Pull)作业来执行。这一新颖的设计,也带来了诸多优势。首先,将一部分调度任务从传统的主节点的任务范围中剥离出来,减少了主节点的工作负载,降低了其成为系统瓶颈的可能性,从而提升了系统的扩展性;其次,在系统主节点已经Push了部分作业之后,计算节点中的资源使用情况发生了改变,而此时若使用Pull模式,则计算节点无需主动向主节点报告资源使用情况,从而降低了用为消息传递所带来的系统通信开销;此外,在系统主节点进行作业Push操作的过程中,对于某些作业,存在节点资源不满足作业要求的情况,此时,该作业不能被Push到计算节点中,会导致计算节点上的资源空闲,而采用Pull模式后,计算节点主动拉取可以在其上执行的小作业,这样便将空闲资源充分利用,从而提升系统的资源利用率。最后,本发明综合考虑大作业和小作业类型,对两者都实施合理的调度策略,尤其是计算节点主动Pull小作业来执行这一设计,将有效降低作业的平均等待时间,从而提升系统的作业吞吐率。
以上调度策略主要是针对高性能计算和大数据处理两种作业类型融合的场景而提出的。因此,本发明首先对高性能计算和大数据处理两类作业的特点和需求进行分析,说明它们在执行模式上存在较大的差异。高性能计算作业一般处理的数据量较少,作业调度时对网络通信的要求不高;属于同一作业的进程之间很可能存在同步操作,这些进程必须一起分发到计算节点;计算作业普遍对实时性要求不高,能够容忍排队等待;作业计算量较大,一旦作业启动将运行很长时间。相比之下,大数据处理作业可能面临很大的数据集,在调度作业时要考虑数据的迁移;整个作业可能由几个存在依赖关系的阶段组成,由于无法准确估计每个阶段的计算量,调度系统在分发任务时很难做出完美的决策;一些处理任务具有实时性,作业调度有优先级的需求;每个作业运行的时间长短不一,且差别很大。
根据以上作业特征分析,本发明首先制定以下简单的调度原则:①具有实时性需求的作业优先调度,具体地,资源管理与作业调度系统一般允许用户在提交作业时指明是否能够容忍等待,如果不能容忍等待,则属于具有实时性需求的作业,可以优先调度;②高性能计算应用发出的作业优先调度;③规模较大的作业优先调度,具体地,作业调度系统通过滑动窗口统计已调度作业所占用的处理器核数,计算所有作业所占用处理器核数的平均值,占用处理器核数大于该平均值的作业被当作大作业;④复杂工作流优先调度,具体地,一个工作流包含多个作业,这些作业以无环有向图的形式打包提交给作业调度系统。以上四个原则按重要程度依次排序。基于这些原则针对以高性能计算作业和大数据处理作业的调度分别展开优化。本实施例中,步骤3)中分别针对不同类型的作业进行调度的详细步骤包括:
S1)判断是否存在指明不能容忍等待的作业,如果存在则选择一个指明不能容忍等待的作业作为调度出来的作业,跳转执行步骤S1);否则跳转执行下一步;
S2)判断是否存在指定的高性能计算应用发出的作业,如果存在则选择一个指定的高性能计算应用发出的作业作为调度出来的作业,跳转执行步骤S1);否则跳转执行下一步;
S3)通过滑动窗口统计已调度作业所占用的处理器核数,计算所有作业所占用处理器核数的平均值,判断是否存在所需占用处理器核数大于该平均值的作业,如果存在则选择一个所需占用处理器核数大于该平均值的作业作为调度出来的作业,跳转执行步骤S1);否则跳转执行下一步;
S4)判断是否存在包含多个作业的工作流作业,如果存在则选择一个包含多个作业的工作流作业作为调度出来的作业,跳转执行步骤S1);否则跳转执行下一步;
S5)判断待调度作业是否为空,如果非空则选择一个包含多个作业的工作流作业作为调度出来的作业,跳转执行步骤S1);否则直接跳转执行步骤S1)。
本实施例中,步骤3)中为该高性能计算作业分配计算节点、将该高性能计算作业推送给被分配的计算节点执行的详细步骤包括:
3.1A)读取计算节点分配表获取本调度节点可用状态为可用的可用计算节点;
3.2A)判断本调度节点的可用计算节点是否能够满足该高性能计算作业的要求,如果能够满足该高性能计算作业的要求,则直接将本调度节点的可用计算节点作为分配给该高性能计算作业的计算节点;否则与其他调度节点进行协商通讯获取其他调度节点的可用计算节点作为协助计算节点,并将本调度节点的可用计算节点、协助计算节点共同作为分配给该高性能计算作业的计算节点;
3.3A)将该高性能计算作业推送给被分配的计算节点执行,并将被分配的计算节点在计算节点分配表中标记为可用状态为不可用;
3.4A)等待被分配的计算节点执行该高性能计算作业的响应结果,如果收到任意一个被分配的计算节点返回该高性能计算作业的响应结果,则将该被分配的计算节点在计算节点分配表中的可用状态恢复为可用状态。
本实施例中,步骤3.2A)中与其他调度节点进行协商通讯获取其他调度节点的可用计算节点时,还包括其他调度节点获取本调度节点可用状态为可用的可用计算节点,并将对应的可用计算节点作为协助计算节点返回给发起协商通讯的调度节点。
本实施例中,计算节点分配表为位表(BitMap),其长度为本调度节点管理的计算节点数量,且每一位通过1和0来表示对应计算节点的可用状态。采用位表(BitMap)实现的计算节点分配表来记录计算节点的可用状态,具有资源消耗小、读写速度快的优点。
本实施例中,计算节点主动发出作业请求的详细步骤包括:获取本计算节点的资源占用情况,如果本计算节点的资源占用情况小于预设值则向对应的调度请求主动发出作业请求。
本实施例中,本计算节点的资源占用情况小于预设值包括CPU利用率、内存利用率、加速器利用率、正在运行的计算任务的数量中的一种或多种。
高性能计算作业的进程之间存在频繁的小消息通信,而超级计算机的网络是具有特定拓扑结构的,如果一个作业的所有进程被分发到拓扑上不连续的区域,运行过程中的通信开销非常大。因此,调度系统要尽可能地将高性能计算作业调度到连续的区域。然而,在高性能计算作业和大数据处理作业融合执行的平台上,经过大量不规则大数据处理作业的调度执行,可用的计算资源逐步呈现碎片化的趋势,导致很难找到一篇连续的资源区域供大规模高性能计算作业调度执行。高性能计算作业一般对实时性要求不高,可以容忍一定的等待延迟。因此,调度系统可以适当地迁移一些作业,规划出一片连续的资源区域,保证高性能计算作业的高效执行。以上调度措施的可行性以下面几点为基础:①大数据处理作业的计算量一般不大,本实施例会针对大数据处理作业进一步作更细粒度的任务划分,当一个计算节点被大数据处理作业占据时,会在很短的时间内执行完计算任务并释放出来,高性能计算作业的等待时间不会太长;②本实施例将针对大数据处理作业研发基于内存缓存的数据交互系统,如果待迁移的计算节点上还存在大数据处理作业的残留数据,调度系统可以依靠超级计算机的高速定制网络,实现快速的数据迁移;③高性能计算作业的执行时间一般很长,在等待大数据处理作业迁移的过程中尽管会引入一定的等待延迟,但在后续的运行过程中通信延迟会显著降低,总的执行时间会有效缩短。
针对大数据处理作业的调度,本实施例的基本思路是:首先将作业实施细粒的任务划分,然后以高通量的方式将所得的大量细粒度任务分发到计算节点上。高通量调度的核心包括两个方面:集群式调度和计算节点间任务分发。因为面临大量的小粒度任务,传统的单控制点调度系统必然会成为瓶颈,本实施例采用集群式调度系统应对以上问题。不同于集群式元数据管理,集群式调度系统在一致性上并没有严格的要求,即使集群内各个节点维护的数据不一致,也仅仅导致部分计算节点的负载过高或闲置,不会引发严重的后果,因此,维护调度集群的开销并不大。本实施例将所有计算节点分组,每个组对应一个调度节点,所有调度节点组成调度集群。当一个调度节点上还有未分发的细粒度任务时,优先向自己管理的计算节点组分发任务,如果自己管理的组内资源紧张,可借用相邻调度节点的资源。被借用的计算节点向借用的调度节点发送任务执行状态,但向自己所属的调度节点报告资源使用情况。本实施例设计的高通量调度框架分发任务时并不是向特定的计算节点直接派发任务,而是将一组任务推送到一个计算节点集合,通过计算节点间任务分发最终完成任务调度。具体地,每个调度节点将自己管理的计算节点组进一步划分为子组,子组是接受任务的最小单位,每个子组内部的所有计算节点组成一个 MPI 通信组,在接到计算任务时通过内部协商领取任务。以上创新措施能够有效降低计算节点与调度节点之间的通信开销。作为进一步的优化,本实施例将采用乐观的策略向各个子组派发任务,即:总是认为目标子组内的资源是充裕的,不断向目标子组派发任务,直至收到该子组返回的拒绝消息。
在以上讨论中,针对高性能计算作业的调度策略都是基于Push模式的,即:由调度节点向计算节点推送任务,这也是目前大多数调度系统采用的模式。本实施例在调度系统中引入Pull模式,作为Push模式的重要补充。大数据处理系统很可能面临异构的计算节点,程序员在CPU和加速器之间分配任务时很难作出完美的划分保证两种计算部件都充分利用;一个计算节点的计算资源被充分利用,但是其内存利用率可能不高;高性能计算作业在输出中间计算结果时主要为IO操作,计算资源是闲置的。以上种种因素表明,系统中出现资源浪费是普遍的现象,根本原因在于调度节点不可能准确掌握所有计算节点上各类资源的使用情况,但是,每个计算节点上的资源守护进程能够获知这些信息。因此,允许计算节点向调度节点主动拉取任务,能够有效缓解资源闲置问题。基于以上的思路,本实施例将在计算节点的每个子组内周期性地汇聚所有的空闲资源,根据闲置情况向调度节点请求任务集合。调度节点针对收到请求的资源描述匹配出能够顺利执行的任务集合,然后通过高通量调度框架发送到目标子组。总之,本实施例是在传统的Push模式的作业分发机制的基础上,加入了Pull模式,从而使其与大数据处理作业和高性能计算作业混合场景下的调度需求更加吻合。在传统的Push模式下,作业调度器主动向计算节点推送(Push)任务,这种模式需要作业调度器对计算节点上的CPU、内存、加速器等计算资源使用情况具有相对准确的估计。而在实际系统中,对大规模平台上的异构计算节点实施全局资源监控不仅无法保证准确性,还会引入很大的内存、通信开销。因此,本实施例在传统的Push模式基础上,还引入了Pull模式,研究将Push模式和Pull模式相结合的调度策略,作业调度器仅负责任务划分,不再对计算节点实施细粒度的实时监控;对于以BSP模型为代表的大规模同步型作业,采用Push模式由作业调度器向计算节点推送任务,保证大作业能够顺利得到充足的资源;对于可分为细粒度小任务的高通量型作业,由计算节点监控自身的资源使用情况,采用Pull模式向作业调度器主动请求可以执行的任务,从而提高资源利用率。
此外,本实施例还提供一种Pull模式与Push模式相结合的资源管理与作业调度系统,包括计算机设备,该计算机设备被编程或配置以执行前述的Pull模式与Push模式相结合的资源管理与作业调度方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行前述的Pull模式与Push模式相结合的资源管理与作业调度方法的计算机程序。
此外,如图2所示,本实施例还提供一种Pull模式与Push模式相结合的资源管理与作业调度系统,包括调度集群和计算集群,所述调度集群包括一个或多个调度节点,计算集群包括多个计算节点,且每一个调度节点管理对应的一个或多个计算节点,该调度节点被编程或配置以执行前述的Pull模式与Push模式相结合的资源管理与作业调度方法的步骤,或该调度节点的存储器上存储有被编程或配置以执行前述的Pull模式与Push模式相结合的资源管理与作业调度方法的计算机程序。如图2所示资源管理与作业调度系统的资源管理与作业调度集群包括4个计算节点群组,这些计算节点群组之间可相互通信,从而实现协作调度。所有计算节点根据调度集群中节点的数目划分为4个群组,每个群组由一个调度节点管理。由于调度节点之间可通信,实际上,每个调度节点都可使用所有计算节点。图中展示了Push和Pull两种作业调度模式,其中Push模式主要由调度集群向计算集群上推送作业,这种模式主要用于高性能计算作业;Pull模式主要由计算节点向调度集群拉取作业,这种模式主要用于大数据处理作业。
每个调度节点上维护它所管理的计算节点群组的必要信息,具体包括:运行在该计算节点群组上的作业、正在排队的作业、计算节点分配表。由于调度集群无法掌握各计算节点上资源(如CPU、内存、加速器)使用的详细信息,只能记录该节点是否已被分配,因此只能维护一个标识节点是否被分配的位表。每个调度节点上运行着三个守护进程:针对Push模式的作业分发进程、针对Pull模式的作业请求监听进程、资源回收进程。
每个计算节点维护其自身的资源占用情况,具体包括:CPU利用率、内存利用率、加速器利用率、正在运行的计算任务。相应地,每个计算节点需要维护三个守护进程:资源使用监控进程、作业执行监控进程、作业Pull进程。
当调度集群上接收到用户提交的类似于高性能计算的大规模作业时,调度系统尝试用Push模式将作业分发到计算节点上。此时,如果一个调度节点无法在其管理的计算节点群组中找到足够的计算资源,则可以与其他调度节点联合从而协调出更多的计算节点。
当调度集群上接收到用户提交的较小的作业时,可以适当延缓调度,等待有空闲资源的计算节点群组主动Pull作业。一个计算节点群组内部的节点可相互通信,一旦通过协商发现大量的资源闲置,则可主动向调度集群拉取任务。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行前述的Pull模式与Push模式相结合的资源管理与作业调度方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种Pull模式与Push模式相结合的资源管理与作业调度方法,其特征在于实施步骤包括:
1)接收作业;
2)对作业进行解析或识别,确定作业的类型为高性能计算作业或大数据处理作业;
3)分别针对不同类型的作业进行调度,针对调度得到的高性能计算作业,采用Push模式进行分发:为该高性能计算作业分配计算节点、将该高性能计算作业推送给被分配的计算节点执行;针对调度得到的大数据处理作业,采用Pull模式进行分发:等待计算节点的作业请求,且在计算节点主动发出作业请求时将该大数据处理作业发送给主动发出作业请求的计算节点执行;步骤3)中分别针对不同类型的作业进行调度的详细步骤包括:
S1)判断是否存在指明不能容忍等待的作业,如果存在则选择一个指明不能容忍等待的作业作为调度出来的作业,跳转执行步骤S1);否则跳转执行下一步;
S2)判断是否存在指定的高性能计算应用发出的作业,如果存在则选择一个指定的高性能计算应用发出的作业作为调度出来的作业,跳转执行步骤S1);否则跳转执行下一步;
S3)通过滑动窗口统计已调度作业所占用的处理器核数,计算所有作业所占用处理器核数的平均值,判断是否存在所需占用处理器核数大于该平均值的作业,如果存在则选择一个所需占用处理器核数大于该平均值的作业作为调度出来的作业,跳转执行步骤S1);否则跳转执行下一步;
S4)判断是否存在包含多个作业的工作流作业,如果存在则选择一个包含多个作业的工作流作业作为调度出来的作业,跳转执行步骤S1);否则跳转执行下一步;
S5)判断待调度作业是否为空,如果非空则选择一个包含多个作业的工作流作业作为调度出来的作业,跳转执行步骤S1);否则直接跳转执行步骤S1)。
2.根据权利要求1所述的Pull模式与Push模式相结合的资源管理与作业调度方法,其特征在于,步骤3)中为该高性能计算作业分配计算节点、将该高性能计算作业推送给被分配的计算节点执行的详细步骤包括:
3.1A)读取计算节点分配表获取本调度节点可用状态为可用的可用计算节点;
3.2A)判断本调度节点的可用计算节点是否能够满足该高性能计算作业的要求,如果能够满足该高性能计算作业的要求,则直接将本调度节点的可用计算节点作为分配给该高性能计算作业的计算节点;否则与其他调度节点进行协商通讯获取其他调度节点的可用计算节点作为协助计算节点,并将本调度节点的可用计算节点、协助计算节点共同作为分配给该高性能计算作业的计算节点;
3.3A)将该高性能计算作业推送给被分配的计算节点执行,并将被分配的计算节点在计算节点分配表中标记为可用状态为不可用;
3.4A)等待被分配的计算节点执行该高性能计算作业的响应结果,如果收到任意一个被分配的计算节点返回该高性能计算作业的响应结果,则将该被分配的计算节点在计算节点分配表中的可用状态恢复为可用状态。
3.根据权利要求2所述的Pull模式与Push模式相结合的资源管理与作业调度方法,其特征在于,步骤3.2A)中与其他调度节点进行协商通讯获取其他调度节点的可用计算节点时,还包括其他调度节点获取本调度节点可用状态为可用的可用计算节点,并将对应的可用计算节点作为协助计算节点返回给发起协商通讯的调度节点。
4.根据权利要求3所述的Pull模式与Push模式相结合的资源管理与作业调度方法,其特征在于,所述计算节点分配表为位表,其长度为本调度节点管理的计算节点数量,且每一位通过1和0来表示对应计算节点的可用状态。
5.根据权利要求1所述的Pull模式与Push模式相结合的资源管理与作业调度方法,其特征在于,所述计算节点主动发出作业请求的详细步骤包括:获取本计算节点的资源占用情况,如果本计算节点的资源占用情况小于预设值则向对应的调度请求主动发出作业请求。
6.根据权利要求5所述的Pull模式与Push模式相结合的资源管理与作业调度方法,其特征在于,所述本计算节点的资源占用情况小于预设值包括CPU利用率、内存利用率、加速器利用率、正在运行的计算任务的数量中的一种或多种。
7.一种Pull模式与Push模式相结合的资源管理与作业调度系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~6中任意一项所述的Pull模式与Push模式相结合的资源管理与作业调度方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行权利要求1~6中任意一项所述的Pull模式与Push模式相结合的资源管理与作业调度方法的计算机程序。
8.一种Pull模式与Push模式相结合的资源管理与作业调度系统,包括调度集群和计算集群,所述调度集群包括一个或多个调度节点,所述计算集群包括多个计算节点,且每一个调度节点管理对应的一个或多个计算节点,其特征在于,该调度节点被编程或配置以执行权利要求1~6中任意一项所述的Pull模式与Push模式相结合的资源管理与作业调度方法的步骤,或该调度节点的存储器上存储有被编程或配置以执行权利要求1~6中任意一项所述的Pull模式与Push模式相结合的资源管理与作业调度方法的计算机程序。
9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有被编程或配置以执行权利要求1~6中任意一项所述的Pull模式与Push模式相结合的资源管理与作业调度方法的计算机程序。
CN202010290642.5A 2020-04-14 2020-04-14 Pull模式与Push模式相结合的资源管理与作业调度方法、系统 Active CN111506407B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010290642.5A CN111506407B (zh) 2020-04-14 2020-04-14 Pull模式与Push模式相结合的资源管理与作业调度方法、系统
US17/917,246 US20230161620A1 (en) 2020-04-14 2020-06-23 Pull mode and push mode combined resource management and job scheduling method and system, and medium
PCT/CN2020/097673 WO2021208240A1 (zh) 2020-04-14 2020-06-23 Pull模式与Push模式相结合的资源管理与作业调度方法、系统及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010290642.5A CN111506407B (zh) 2020-04-14 2020-04-14 Pull模式与Push模式相结合的资源管理与作业调度方法、系统

Publications (2)

Publication Number Publication Date
CN111506407A CN111506407A (zh) 2020-08-07
CN111506407B true CN111506407B (zh) 2022-04-26

Family

ID=71877480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010290642.5A Active CN111506407B (zh) 2020-04-14 2020-04-14 Pull模式与Push模式相结合的资源管理与作业调度方法、系统

Country Status (3)

Country Link
US (1) US20230161620A1 (zh)
CN (1) CN111506407B (zh)
WO (1) WO2021208240A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115640121B (zh) * 2022-09-28 2024-08-23 量子科技长三角产业创新中心 混合算力操控方法、装置、设备和存储介质
CN115794355B (zh) * 2023-01-29 2023-06-09 中国空气动力研究与发展中心计算空气动力研究所 任务处理方法、装置、终端设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273196A (zh) * 2017-05-31 2017-10-20 中国科学院北京基因组研究所 生物信息学高性能计算作业调度及系统管理套件

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090210876A1 (en) * 2008-02-20 2009-08-20 Jinmei Shen Pull-model Workload Management with Synchronous-Asynchronous-Synchronous Bridge
US20150058441A1 (en) * 2013-08-20 2015-02-26 Samsung Electronics Co., Ltd. Efficient content caching management method for wireless networks
CN103605576B (zh) * 2013-11-25 2017-02-08 华中科技大学 一种基于多线程的MapReduce执行系统
CN104853384B (zh) * 2015-05-14 2018-08-24 南京邮电大学 第五代移动通信系统中一种基于流行度的内容缓存方法
US10264084B2 (en) * 2015-09-30 2019-04-16 Apple Inc. Updating playlists using push and pull
CN106502792B (zh) * 2016-10-20 2019-11-15 华南理工大学 一种面向不同类型负载的多租户资源优化调度方法
CN108710543A (zh) * 2018-05-21 2018-10-26 苏州本乔信息技术有限公司 一种渲染任务的处理方法及设备
CN109656911B (zh) * 2018-12-11 2023-08-01 江苏瑞中数据股份有限公司 分布式并行处理数据库系统及其数据处理方法
CN109933306B (zh) * 2019-02-11 2020-07-14 山东大学 一种基于作业类型识别的自适应混合云计算框架生成方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273196A (zh) * 2017-05-31 2017-10-20 中国科学院北京基因组研究所 生物信息学高性能计算作业调度及系统管理套件

Also Published As

Publication number Publication date
US20230161620A1 (en) 2023-05-25
CN111506407A (zh) 2020-08-07
WO2021208240A1 (zh) 2021-10-21

Similar Documents

Publication Publication Date Title
CN114138486B (zh) 面向云边异构环境的容器化微服务编排方法、系统及介质
CN107038069B (zh) Hadoop平台下动态标签匹配DLMS调度方法
CN109034396B (zh) 用于处理分布式集群中的深度学习作业的方法和装置
CN105978960B (zh) 一种基于海量视频结构化处理的云调度系统及方法
CN104298550B (zh) 一种面向Hadoop的动态调度方法
WO2016078008A1 (zh) 调度数据流任务的方法和装置
Cheng et al. Cross-platform resource scheduling for spark and mapreduce on yarn
CN105389206B (zh) 一种云计算数据中心虚拟机资源快速配置方法
CN108268319A (zh) 任务调度方法、装置及系统
CN113454614A (zh) 用于分布式计算中的资源划分的系统和方法
CN103927225A (zh) 一种多核心架构的互联网信息处理优化方法
CN113986534A (zh) 任务调度方法、装置、计算机设备和计算机可读存储介质
CN104123182A (zh) 基于主从架构的MapReduce任务跨数据中心调度系统及方法
CN111506407B (zh) Pull模式与Push模式相结合的资源管理与作业调度方法、系统
CN113132456B (zh) 一种基于截止时间感知的边云协同任务调度方法及系统
CN105740059B (zh) 一种面向可分割任务的粒子群调度方法
CN115063282A (zh) 一种gpu资源调度方法、装置、设备及存储介质
CN105550025A (zh) 分布式基础设施即服务(IaaS)调度方法及系统
CN116974994A (zh) 一种基于集群的高效能文件协作系统
CN110928659A (zh) 一种具有自适应功能的数值水池系统远程多平台接入方法
CN117093335A (zh) 分布式存储系统的任务调度方法及装置
Han et al. A Review of Hadoop Resource Scheduling Research
Zhang et al. COBRA: Toward provably efficient semi-clairvoyant scheduling in data analytics systems
CN108009074B (zh) 一种基于模型和动态分析的多核系统实时性评估方法
Wen et al. Fast DRL-based scheduler configuration tuning for reducing tail latency in edge-cloud jobs

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
CB03 Change of inventor or designer information

Inventor after: Chen Zhiguang

Inventor after: Lu Yutong

Inventor before: Chen Zhiguang

Inventor before: Lu Yutong

Inventor before: Xiao Nong

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant