CN113076191A - 一种集群gpu资源调度系统 - Google Patents

一种集群gpu资源调度系统 Download PDF

Info

Publication number
CN113076191A
CN113076191A CN202110233043.4A CN202110233043A CN113076191A CN 113076191 A CN113076191 A CN 113076191A CN 202110233043 A CN202110233043 A CN 202110233043A CN 113076191 A CN113076191 A CN 113076191A
Authority
CN
China
Prior art keywords
gpu
module
available
child nodes
master node
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.)
Pending
Application number
CN202110233043.4A
Other languages
English (en)
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.)
Beijing Blue Yun Polytron Technologies Inc
Original Assignee
Beijing Blue Yun Polytron Technologies Inc
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 Beijing Blue Yun Polytron Technologies Inc filed Critical Beijing Blue Yun Polytron Technologies Inc
Priority to CN202110233043.4A priority Critical patent/CN113076191A/zh
Publication of CN113076191A publication Critical patent/CN113076191A/zh
Pending legal-status Critical Current

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/5038Allocation 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
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种集群GPU资源调度系统,包括GPU主节点以及若干个GPU子节点,GPU主节点包括:任务接收模块,用于接收用户输入的任务;任务划分模块,用于将任务接收模块接收到的任务划分为若干个子任务;资源监视模块,用于实时监视所有GPU子节点的空闲率,将空闲率满足要求的GPU子节点作为可用GPU子节点,并测量可用GPU子节点与GPU主节点之间的路径长度和通信速率,使路径长度以及通信速率满足要求的所有可用GPU子节点形成GPU调度子集合;以及资源调度模块,用于将若干个子任务分配到GPU调度子集合中的若干个可用GPU子节点上,以供可用GPU子节点执行子任务。充分利用了GPU资源的并行计算能力,能够完成大型的复杂任务的快速并行处理。

Description

一种集群GPU资源调度系统
技术领域
本发明涉及云计算的技术领域,具体来说,涉及一种集群GPU资源调度系统。
背景技术
近年来,图形处理器(GPU)在硬件架构上已取得持续的高速发展,已经演变为拥有强大的计算能力的高度并行、多线程及多处理核心的处理器,它采用不同于中央处理器的单指令多线程体系结构,增加了编程的灵活性。GPU专用于解决可表示为数据并行计算的问题,即绝大部分数据元素具有相同的数据路径,而具有极高的计算密度,这样可隐藏存储器访问延迟。凭借其强大的计算能力,GPU并行技术对传统的CPU应用发起了强有力的冲击,其已被广泛运用于视频转码、物理模拟、地球表层测绘以及网络安全等热门研究领域。
如何充分利用GPU的并行计算能力来解决复杂运算的问题,已经成为当今GPU技术的研究热点之一。然而在实际应用中,单个GPU往往无法承载复杂的计算任务,因此需要将多个GPU组成一个GPU集群,以完成复杂的计算任务,现有技术中通常采用基于单主机多GPU卡的调度方式对资源进行调度以完成复杂的计算任务,但是该方式存在计算能力有限且扩展性差等缺点。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的上述技术问题,本发明提出一种集群GPU资源调度系统,可解决上述现有技术中的不足。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种集群GPU资源调度系统,包括GPU主节点以及若干个GPU子节点,所述GPU主节点包括:
任务接收模块,用于接收用户输入的任务;
任务划分模块,用于将任务接收模块接收到的所述任务划分为若干个子任务;
资源监视模块,用于实时监视所有GPU子节点的空闲率,将所述空闲率满足要求的所述GPU子节点作为可用GPU子节点,并测量所述可用GPU子节点与所述GPU主节点之间的路径长度和通信速率,使所述路径长度以及所述通信速率满足要求的所有所述可用GPU子节点形成GPU调度子集合;以及
资源调度模块,用于将若干个子任务分配到所述GPU调度子集合中的若干个所述可用GPU子节点上,以供所述可用GPU子节点执行所述子任务。
进一步地,所述GPU主节点还包括集群初始化模块,用于对所述GPU主节点以及所述GPU子节点进行初始化。
进一步地,所述资源调度模块还用于评估各所述子任务的优先级以及所述GPU调度子集合中各所述可用GPU子节点的计算能力,并根据所述优先级为各所述子任务指定对应计算能力的所述可用GPU子节点。
进一步地,所述GPU子节点包括:
子任务接收模块,用于接收所述资源调度模块分配的所述子任务;
子任务执行模块,用于对所述子任务接收模块接收的所述子任务进一步细分,为所述GPU子节点的每个流处理器分配子任务细块,并行执行各所述子任务细块;
结果返回模块,用于将所述GPU子节点的子任务计算结果返回给所述GPU主节点;
信息发送模块,用于向所述资源调度模块发送所述GPU子节点的ID号和计算能力。
进一步地,所述GPU主节点还包括:
结果处理模块,用于接收处理各所述GPU子节点返回的所述子任务计算结果;
资源回收模块,用于根据所述结果处理模块返回的任务执行结果,回收已完成所述子任务的GPU子节点。
进一步地,所述资源监视模块包括:
空闲率监视模块,用于实时监视所有所述GPU子节点的空闲率;
路径测量模块,用于测量所述可用GPU子节点与所述GPU主节点之间的路径长度;
速率测量模块,用于测量所述可用GPU子节点与所述GPU主节点之间的通信速率。
本发明的有益效果:由GPU主节点统一调度多个GPU子节点的,各级GPU子节点对任务进行层层划分,充分利用了GPU资源的并行计算能力,能够完成大型的复杂任务的快速并行处理;
通过对可用GPU子节点进行计算和测量,使路径较短的传输速率较快的可用GPU子节点形成GPU调度子集合,提高了任务的处理效率,减少了系统的通信负担。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例所述的集群GPU资源调度系统的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,根据本发明实施例所述的一种集群GPU资源调度系统,包括GPU主节点以及若干个GPU子节点,所述GPU主节点包括:
任务接收模块,用于接收用户输入的任务;
任务划分模块,用于将任务接收模块接收到的所述任务划分为若干个子任务;
资源监视模块,用于实时监视所有GPU子节点的空闲率,将所述空闲率满足要求的所述GPU子节点作为可用GPU子节点,并测量所述可用GPU子节点与所述GPU主节点之间的路径长度和通信速率,使所述路径长度以及所述通信速率满足要求的所有所述可用GPU子节点形成GPU调度子集合;以及
资源调度模块,用于将若干个子任务分配到所述GPU调度子集合中的若干个所述可用GPU子节点上,以供所述可用GPU子节点执行所述子任务。
在本发明的一个具体实施例中,所述GPU主节点还包括集群初始化模块,用于对所述GPU主节点以及所述GPU子节点进行初始化。
在本发明的一个具体实施例中,所述资源调度模块还用于评估各所述子任务的优先级以及所述GPU调度子集合中各所述可用GPU子节点的计算能力,并根据所述优先级为各所述子任务指定对应计算能力的所述可用GPU子节点。
在本发明的一个具体实施例中,所述GPU子节点包括:
子任务接收模块,用于接收所述资源调度模块分配的所述子任务;
子任务执行模块,用于对所述子任务接收模块接收的所述子任务进一步细分,为所述GPU子节点的每个流处理器分配子任务细块,并行执行各所述子任务细块;
结果返回模块,用于将所述GPU子节点的子任务计算结果返回给所述GPU主节点;
信息发送模块,用于向所述资源调度模块发送所述GPU子节点的ID号和计算能力。
在本发明的一个具体实施例中,所述GPU主节点还包括:
结果处理模块,用于接收处理各所述GPU子节点返回的所述子任务计算结果;
资源回收模块,用于根据所述结果处理模块返回的任务执行结果,回收已完成所述子任务的GPU子节点。
在本发明的一个具体实施例中,所述资源监视模块包括:
空闲率监视模块,用于实时监视所有所述GPU子节点的空闲率;
路径测量模块,用于测量所述可用GPU子节点与所述GPU主节点之间的路径长度;
速率测量模块,用于测量所述可用GPU子节点与所述GPU主节点之间的通信速率。
为了方便理解本发明的上述技术方案,以下通过具体使用方式对本发明的上述技术方案进行详细说明。
本发明所示的集群GPU资源调度系统,包括:集群初始化模块、GPU主节点以及若干个GPU子节点。
GPU主节点包括:任务接收模块、任务划分模块、资源监视模块、资源调度模块、结果处理模块和资源回收模块。其中,任务接收模块用于接收用户输入的任务。任务划分模块用于将任务接收模块接收到的任务划分为一系列的子任务,确保各个GPU子节点接收的子任务负载均衡,并将划分好的子任务提供给资源调度模块。资源监视模块用于实时监视所有GPU子节点的空闲率,然后将空闲率满足要求的GPU子节点作为可用GPU子节点,然后测量各个可用GPU子节点与GPU主节点之间的路径长度和通信速率,然后将路径长度以及通信速率满足要求的所有可用GPU子节点归集形成GPU调度子集合,最近将GPU调度子集合提供给资源调度模块。资源调度模块用于根据GPU调度子集合中各可用GPU子节点的计算能力和各子任务的优先级,为各子任务指定对应计算能力的可用GPU子节点,并以公平调度的方式调度为各子任务所选取的可用GPU子节点,完成子任务在可用GPU子节点上的分发。结果处理模块用于接收处理各GPU子节点返回的任务计算结果。资源回收模块用于根据结果处理模块返回的任务执行结果,回收已完成子任务的GPU子节点,提高GPU子节点的空闲率。
每个GPU子节点(即GPU)的空闲率F的计算公式如下:
Figure BSA0000235092140000051
其中,freq为GPU的核心频率,SM为GPU的流处理器数量,Core为根据CUDA(ComputeUnified Device Architecture)的计算能力而获得的核心数,GPUPerc为每个GPU的核心空闲率,举例来说,可以根据每个GPU对应的进程数量、进程的GPU资源使用量等信息确定每个GPU的核心使用率,每个GPU的核心空闲率可以是每个GPU的核心未被使用的计算资源占总资源的比率。memFreq为GPU对应的显存的核心频率,busWidth为GPU对应的显存总线的位宽,memPerc为GPU对应的显存的空闲率,warpSize为线程束的数量,线程束是GPU线程调度的单位,一般32个线程为一个线程束。
GPU子节点包括:子任务接收模块、子任务执行模块、结果返回模块和信息发送模块。其中,子任务接收模块用于接收GPU主节点的资源调度模块分配给本GPU子节点的子任务。子任务执行模块用于对子任务接收模块接收的子任务进一步细分,为本GPU子节点的每个流处理器分配子任务细块,并行执行各子任务细块。结果返回模块用于将本GPU子节点的子任务计算结果返回给GPU主节点中的结果处理模块。信息发送模块用于向GPU主节点的的ID号、计算能力等信息。
具体使用时,由一个指定的GPU主节点统一调度若干个GPU子节点,对于输入的任务,GPU主节点先对其进行基本划分,以分配到各个空闲的GPU子节点上,而GPU子节点上执行的子任务会被进一步划分成细块,以匹配GPU的并行计算模式,这种集群GPU资源调度系统能够进行高复杂度的高性能计算。
综上所述,借助于本发明的上述技术方案,由GPU主节点统一调度多个GPU子节点的,各级GPU子节点对任务进行层层划分,充分利用了GPU资源的并行计算能力,能够完成大型的复杂任务的快速并行处理;通过对可用GPU子节点进行计算和测量,使路径较短的传输速率较快的可用GPU子节点形成GPU调度子集合,提高了任务的处理效率,减少了系统的通信负担。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种集群GPU资源调度系统,包括GPU主节点以及若干个GPU子节点,其特征在于,所述GPU主节点包括;
任务接收模块,用于接收用户输入的任务;
任务划分模块,用于将任务接收模块接收到的所述任务划分为若干个子任务;
资源监视模块,用于实时监视所有GPU子节点的空闲率,将所述空闲率满足要求的所述GPU子节点作为可用GPU子节点,并测量所述可用GPU子节点与所述GPU主节点之间的路径长度和通信速率,使所述路径长度以及所述通信速率满足要求的所有所述可用GPU子节点形成GPU调度子集合;以及
资源调度模块,用于将若干个子任务分配到所述GPU调度子集合中的若干个所述可用GPU子节点上,以供所述可用GPU子节点执行所述子任务。
2.根据权利要求1所述的集群GPU资源调度系统,其特征在于,所述GPU主节点还包括集群初始化模块,用于对所述GPU主节点以及所述GPU子节点进行初始化。
3.根据权利要求1所述的集群GPU资源调度系统,其特征在于,所述资源调度模块还用于评估各所述子任务的优先级以及所述GPU调度子集合中各所述可用GPU子节点的计算能力,并根据所述优先级为各所述子任务指定对应计算能力的所述可用GPU子节点。
4.根据权利要求3所述的集群GPU资源调度系统,其特征在于,所述GPU子节点包括:
子任务接收模块,用于接收所述资源调度模块分配的所述子任务;
子任务执行模块,用于对所述子任务接收模块接收的所述子任务进一步细分,为所述GPU子节点的每个流处理器分配子任务细块,并行执行各所述子任务细块;
结果返回模块,用于将所述GPU子节点的子任务计算结果返回给所述GPU主节点;
信息发送模块,用于向所述资源调度模块发送所述GPU子节点的ID号和计算能力。
5.根据权利要求4所述的集群GPU资源调度系统,其特征在于,所述GPU主节点还包括:
结果处理模块,用于接收处理各所述GPU子节点返回的所述子任务计算结果;
资源回收模块,用于根据所述结果处理模块返回的任务执行结果,回收已完成所述子任务的GPU子节点。
6.根据权利要求1所述的集群GPU资源调度系统,其特征在于,所述资源监视模块包括:
空闲率监视模块,用于实时监视所有所述GPU子节点的空闲率;
路径测量模块,用于测量所述可用GPU子节点与所述GPU主节点之间的路径长度;
速率测量模块,用于测量所述可用GPU子节点与所述GPU主节点之间的通信速率。
CN202110233043.4A 2021-02-23 2021-02-23 一种集群gpu资源调度系统 Pending CN113076191A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110233043.4A CN113076191A (zh) 2021-02-23 2021-02-23 一种集群gpu资源调度系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110233043.4A CN113076191A (zh) 2021-02-23 2021-02-23 一种集群gpu资源调度系统

Publications (1)

Publication Number Publication Date
CN113076191A true CN113076191A (zh) 2021-07-06

Family

ID=76609749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110233043.4A Pending CN113076191A (zh) 2021-02-23 2021-02-23 一种集群gpu资源调度系统

Country Status (1)

Country Link
CN (1) CN113076191A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741207A (zh) * 2022-06-10 2022-07-12 之江实验室 一种基于多维度组合并行的gpu资源调度方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541640A (zh) * 2011-12-28 2012-07-04 厦门市美亚柏科信息股份有限公司 一种集群gpu资源调度系统和方法
CN107544845A (zh) * 2017-06-26 2018-01-05 新华三大数据技术有限公司 Gpu资源调度方法及装置
CN109933433A (zh) * 2019-03-19 2019-06-25 合肥中科类脑智能技术有限公司 一种gpu资源调度系统及其调度方法
US20210026696A1 (en) * 2018-05-18 2021-01-28 Microsoft Technology Licensing, Llc Scheduling of a plurality of graphic processing units

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541640A (zh) * 2011-12-28 2012-07-04 厦门市美亚柏科信息股份有限公司 一种集群gpu资源调度系统和方法
CN107544845A (zh) * 2017-06-26 2018-01-05 新华三大数据技术有限公司 Gpu资源调度方法及装置
US20210026696A1 (en) * 2018-05-18 2021-01-28 Microsoft Technology Licensing, Llc Scheduling of a plurality of graphic processing units
CN109933433A (zh) * 2019-03-19 2019-06-25 合肥中科类脑智能技术有限公司 一种gpu资源调度系统及其调度方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741207A (zh) * 2022-06-10 2022-07-12 之江实验室 一种基于多维度组合并行的gpu资源调度方法和系统

Similar Documents

Publication Publication Date Title
US10768989B2 (en) Virtual vector processing
Barak et al. A package for OpenCL based heterogeneous computing on clusters with many GPU devices
Peterka et al. Scalable parallel building blocks for custom data analysis
US7647590B2 (en) Parallel computing system using coordinator and master nodes for load balancing and distributing work
CN102902512B (zh) 一种基于多线程编程及消息队列的多线程并行处理方法
Hölzle Brawny cores still beat wimpy cores, most of the time
Sun et al. Optimizing fine-grained communication in a biomolecular simulation application on Cray XK6
Barrett et al. Toward an evolutionary task parallel integrated MPI+ X programming model
CN110135569A (zh) 一种异构平台神经元定位三级流水并行方法、系统及介质
CN107329822B (zh) 面向多源多核系统的基于超任务网的多核调度方法
US20170371713A1 (en) Intelligent resource management system
Wu et al. Using hybrid MPI and OpenMP programming to optimize communications in parallel loop self-scheduling schemes for multicore PC clusters
Didelot et al. Improving MPI communication overlap with collaborative polling
CN116774968A (zh) 具有一组线程束的高效矩阵乘法和加法
Sun et al. Cognn: efficient scheduling for concurrent gnn training on gpus
Thomas et al. Dynamic optimizations in gpu using roofline model
CN113076191A (zh) 一种集群gpu资源调度系统
Chandrashekar et al. Performance model of HPC application On CPU-GPU platform
CN116166396A (zh) 调度模型的训练方法、装置、电子设备及可读存储介质
Liu et al. BSPCloud: A hybrid distributed-memory and shared-memory programming model
Siddiqui et al. Design space exploration of embedded applications on heterogeneous cpu-gpu platforms
Qingshuang et al. All-pairs shortest path algorithm based on MPI+ CUDA distributed parallel programming model
Huang et al. Performance optimization of High-Performance LINPACK based on GPU-centric model on heterogeneous systems
Hwang et al. Hardware Interrupt and CPU Contention aware CPU/GPU Co-Scheduling on Multi-Cluster System
Hung et al. Architectures for cloud-based hpc in data centers

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