CN110795249A - 基于mesos容器化平台的gpu资源调度方法及装置 - Google Patents
基于mesos容器化平台的gpu资源调度方法及装置 Download PDFInfo
- Publication number
- CN110795249A CN110795249A CN201911044273.5A CN201911044273A CN110795249A CN 110795249 A CN110795249 A CN 110795249A CN 201911044273 A CN201911044273 A CN 201911044273A CN 110795249 A CN110795249 A CN 110795249A
- Authority
- CN
- China
- Prior art keywords
- gpu
- host
- target service
- target
- resource
- 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
Links
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了一种基于MESOS容器化平台的GPU资源调度方法及装置,在图像化界面上创建目标服务时,通过设置GPU显存使用率,便于容器化平台基于目标服务的GPU显存使用率为服务分配对应的目标主机,并通过运行应用容器引擎,调用目标主机的CUDA驱动程序和GPU驱动程序,利用目标主机的GPU资源实现目标服务在容器中运行,由于目标服务不占用目标主机全部GPU显存,一个GPU可以分配给多个服务,实现了GPU资源细粒度调度,提高了GPU资源利用率。
Description
技术领域
本发明涉及GPU调度技术领域,更具体的,涉及一种基于MESOS容器化平台的GPU资源调度方法及装置。
背景技术
Mesos是Apache下的开源分布式资源管理框架,被广泛应用于大规模集群中,MESOS通过MESOS容器来使用GPU资源。
目前,对GPU资源的分配策略是在同一时间内一块GPU只能分配给一个任务,不能将一块GPU分配给多个任务,无法实现GPU资源细粒度调度。
发明内容
有鉴于此,本发明提供了一种基于MESOS容器化平台的GPU资源调度方法及装置,实现GPU资源细粒度调度。
为了实现上述发明目的,本发明提供的具体技术方案如下:
一种基于MESOS容器化平台的GPU资源调度方法,应用于容器化平台,包括:
在图形化界面上创建目标服务,并为所述目标服务设置GPU显存使用率;
根据所述目标服务的GPU显存使用率以及集群内GPU资源使用情况,确定所述目标服务运行的目标主机;
运行应用容器引擎,调用所述目标主机的CUDA驱动程序和GPU驱动程序。
可选的,所述根据所述目标服务的GPU显存使用率以及集群内GPU资源使用情况,确定所述目标服务运行的目标主机,包括:
根据所述目标服务的GPU显存使用率以及集群内GPU资源使用情况,设置所述目标服务运行的主机范围;
依据每个MESOS节点上报的每个主机的可用资源,在所述目标服务运行的主机范围内确定所述目标服务运行的目标主机。
可选的,CUDA驱动程序和GPU驱动程序安装在所述目标主机上,所述目标服务运行在Docker容器中。
可选的,所述方法还包括:
在主机部署成功后,从MESOS接口获取相应主机的GPU资源,并将相应主机的GPU资源保存在数据库中的资源表中。
可选的,所述方法还包括:
每启动一个容器,在所述资源表中减去相应主机已使用的GPU资源;
每关闭一个容器,在所述资源表中加上相应主机已使用的GPU资源。
一种基于MESOS容器化平台的GPU资源调度装置,应用于容器化平台,包括:
服务创建单元,用于在图形化界面上创建目标服务,并为所述目标服务设置GPU显存使用率;
主机确定单元,用于根据所述目标服务的GPU显存使用率以及集群内GPU资源使用情况,确定所述目标服务运行的目标主机;
主机调用单元,用于运行应用容器引擎,调用所述目标主机的CUDA驱动程序和GPU驱动程序。
可选的,所述主机确定单元,具体用于:
根据所述目标服务的GPU显存使用率以及集群内GPU资源使用情况,设置所述目标服务运行的主机范围;
依据每个MESOS节点上报的每个主机的可用资源,在所述目标服务运行的主机范围内确定所述目标服务运行的目标主机。
可选的,CUDA驱动程序和GPU驱动程序安装在所述目标主机上,所述目标服务运行在Docker容器中。
可选的,所述装置还包括:
GPU资源管理单元,用于在主机部署成功后,从MESOS接口获取相应主机的GPU资源,并将相应主机的GPU资源保存在数据库中的资源表中。
可选的,所述GPU资源管理单元,还用于每启动一个容器,在所述资源表中减去相应主机已使用的GPU资源;每关闭一个容器,在所述资源表中加上相应主机已使用的GPU资源。
相对于现有技术,本发明的有益效果如下:
本发明公开的一种基于MESOS容器化平台的GPU资源调度方法,在图像化界面上创建目标服务时,通过设置GPU显存使用率,便于容器化平台基于目标服务的GPU显存使用率为服务分配对应的目标主机,并通过运行应用容器引擎,调用目标主机的CUDA驱动程序和GPU驱动程序,利用目标主机的GPU资源实现目标服务在容器中运行,由于目标服务不占用目标主机全部GPU显存,一个GPU可以分配给多个服务,实现了GPU资源细粒度调度,提高了GPU资源利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种基于MESOS容器化平台的GPU资源调度方法的流程示意图;
图2为本发明实施例公开的一种基于MESOS容器化平台的GPU资源调度装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例公开了一种基于MESOS容器化平台的GPU资源调度方法,应用于容器化平台,请参阅图1,该GPU资源调度方法具体包括以下步骤:
S101:在图形化界面上创建目标服务,并为所述目标服务设置GPU显存使用率;
其中,目标服务为使用GPU进行图像处理的微服务等需要使用GPU资源完成的服务。
用户在GUI(Graphical User Interface,图形化界面)上创建目标服务,与现有创建服务不同的部分在于:本实施例在目标服务的代码中设置GPU显存使用率。
GPU显存使用率表示目标服务可以使用的最大GPU显存百分比,以TensorFlow使用GPU为例,可以在创建tensorflow session的时候设置GPU显存使用率。
#限制一个进程使用60%的显存
gpu_options=tf.GPUOptions(per_process_gpu_memory_fraction=0.6)
config=tf.ConfigProto(gpu_options=gpu_options)
session=tf.Session(config=config,...)
如果GPU的显存是8000M的话,这个服务最多只能使用4800M。
其中,在为目标服务设置GPU显存使用率时依据目标服务的实际业务需求进行设置,在目标服务启动时,GPU显存使用率以环境变量的形式传给容器内应用。
S102:根据所述目标服务的GPU显存使用率以及集群内GPU资源使用情况,确定所述目标服务运行的目标主机;
容器化平台启动目标服务之前,则先根据集群内GPU资源条件增加约束条件,即设置目标服务运行的主机范围,再向marathon提交目标服务。比如目标服务需要0.3个GPU,当前集群内所有GPU主机剩余的GPU资源都大于0.3,则增加约束让目标服务启动在所有GPU主机上,即目标服务运行的主机范围为所有GPU主机;比如目标服务需要0.3个GPU,当前有两个主机剩余的GPU资源大于0.3,则增加约束条件让目标服务启动在GPU资源大于0.3的两个主机上,即目标服务运行的主机范围这两个主机(10.19.12.14和10.19.12.15),其对应的约束条件为hostname like 10.19.12.(14|15)。
在此基础上,依据每个MESOS节点(slave)上报的每个主机的可用资源,在所述目标服务运行的主机范围内确定所述目标服务运行的目标主机。
S103:运行应用容器引擎,调用所述目标主机的CUDA驱动程序和GPU驱动程序。
由于MESOS容器不支持细粒度使用GPU资源,本实施例通过应用容器引擎nvidia-docker来细粒度使用GPU资源。
nvidia-docker是一个可以使用GPU的docker的引擎,nvidia-docker是在docker上做了一层封装,通过调用nvidia-docker-plugin,然后再调用docker,最终实现的还是在docker的启动命令上携带一些必要的参数。如下是一个容器启动命令示例:
docker run
--volume-driver=nvidia-docker
--volume=nvidia_driver_352.39:/usr/local/nvidia:ro
--device=/dev/nvidiactl
--device=/dev/nvidia-uvm
--device=/dev/nvidia0
--rmnvidia/cuda:7.5nvidia-smi
nvidia-docker可以帮助容器内部的程序调用外面目标主机上的CUDA驱动程序CUDA driver。CUDA Driver及GPU Driver安装在外部主机上;CUDA Toolkit、其它深度学习组件及用户应用程序、目标服务运行在Docker容器中。这样既能快速配置环境,又保证了主机不受用户应用程序污染。
需要说明的是,本实施例公开的一种基于MESOS容器化平台的GPU资源调度方法,还可以实现对GPU资源的细粒度管理,即容器化平台同一管理集群中的GPU资源,利用MESOS将GPU资源汇聚成资源池来实现资源共享,当创建服务后,从GPU资源池中选取合适的主机GPU资源。
在主机部署成功后,从MESOS接口获取相应主机的GPU资源,并将相应主机的GPU资源保存在数据库中的资源表中。
每启动一个容器,在所述资源表中减去相应主机已使用的GPU资源。
每关闭一个容器,在所述资源表中加上相应主机已使用的GPU资源。
可见,本实施例公开的基于MESOS容器化平台的GPU资源调度方法,不仅可以实现GPU资源的细粒度调度,还可以实现GPU资源的细粒度管理,进一步提高了GPU资源利用率。
基于上述实施例公开的一种基于MESOS容器化平台的GPU资源调度方法,本实施例对应公开了一种基于MESOS容器化平台的GPU资源调度装置,应用于容器化平台,请参阅图2,该装置包括:
服务创建单元201,用于在图形化界面上创建目标服务,并为所述目标服务设置GPU显存使用率;
主机确定单元202,用于根据所述目标服务的GPU显存使用率以及集群内GPU资源使用情况,确定所述目标服务运行的目标主机;
主机调用单元203,用于运行应用容器引擎,调用所述目标主机的CUDA驱动程序和GPU驱动程序。
可选的,所述主机确定单元202,具体用于:
根据所述目标服务的GPU显存使用率以及集群内GPU资源使用情况,设置所述目标服务运行的主机范围;
依据每个MESOS节点上报的每个主机的可用资源,在所述目标服务运行的主机范围内确定所述目标服务运行的目标主机。
可选的,CUDA驱动程序和GPU驱动程序安装在所述目标主机上,所述目标服务运行在Docker容器中。
可选的,所述装置还包括:
GPU资源管理单元,用于在主机部署成功后,从MESOS接口获取相应主机的GPU资源,并将相应主机的GPU资源保存在数据库中的资源表中。
可选的,所述GPU资源管理单元,还用于每启动一个容器,在所述资源表中减去相应主机已使用的GPU资源;每关闭一个容器,在所述资源表中加上相应主机已使用的GPU资源。
本实施例公开的一种基于MESOS容器化平台的GPU资源调度装置,在图像化界面上创建目标服务时,通过设置GPU显存使用率,便于容器化平台基于目标服务的GPU显存使用率为服务分配对应的目标主机,并通过运行应用容器引擎,调用目标主机的CUDA驱动程序和GPU驱动程序,利用目标主机的GPU资源实现目标服务在容器中运行,由于目标服务不占用目标主机全部GPU显存,一个GPU可以分配给多个服务,实现了GPU资源细粒度调度,提高了GPU资源利用率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于MESOS容器化平台的GPU资源调度方法,其特征在于,应用于容器化平台,包括:
在图形化界面上创建目标服务,并为所述目标服务设置GPU显存使用率;
根据所述目标服务的GPU显存使用率以及集群内GPU资源使用情况,确定所述目标服务运行的目标主机;
运行应用容器引擎,调用所述目标主机的CUDA驱动程序和GPU驱动程序。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标服务的GPU显存使用率以及集群内GPU资源使用情况,确定所述目标服务运行的目标主机,包括:
根据所述目标服务的GPU显存使用率以及集群内GPU资源使用情况,设置所述目标服务运行的主机范围;
依据每个MESOS节点上报的每个主机的可用资源,在所述目标服务运行的主机范围内确定所述目标服务运行的目标主机。
3.根据权利要求1所述的方法,其特征在于,CUDA驱动程序和GPU驱动程序安装在所述目标主机上,所述目标服务运行在Docker容器中。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在主机部署成功后,从MESOS接口获取相应主机的GPU资源,并将相应主机的GPU资源保存在数据库中的资源表中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
每启动一个容器,在所述资源表中减去相应主机已使用的GPU资源;
每关闭一个容器,在所述资源表中加上相应主机已使用的GPU资源。
6.一种基于MESOS容器化平台的GPU资源调度装置,其特征在于,应用于容器化平台,包括:
服务创建单元,用于在图形化界面上创建目标服务,并为所述目标服务设置GPU显存使用率;
主机确定单元,用于根据所述目标服务的GPU显存使用率以及集群内GPU资源使用情况,确定所述目标服务运行的目标主机;
主机调用单元,用于运行应用容器引擎,调用所述目标主机的CUDA驱动程序和GPU驱动程序。
7.根据权利要求6所述的装置,其特征在于,所述主机确定单元,具体用于:
根据所述目标服务的GPU显存使用率以及集群内GPU资源使用情况,设置所述目标服务运行的主机范围;
依据每个MESOS节点上报的每个主机的可用资源,在所述目标服务运行的主机范围内确定所述目标服务运行的目标主机。
8.根据权利要求6所述的装置,其特征在于,CUDA驱动程序和GPU驱动程序安装在所述目标主机上,所述目标服务运行在Docker容器中。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
GPU资源管理单元,用于在主机部署成功后,从MESOS接口获取相应主机的GPU资源,并将相应主机的GPU资源保存在数据库中的资源表中。
10.根据权利要求9所述的装置,其特征在于,所述GPU资源管理单元,还用于每启动一个容器,在所述资源表中减去相应主机已使用的GPU资源;每关闭一个容器,在所述资源表中加上相应主机已使用的GPU资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911044273.5A CN110795249A (zh) | 2019-10-30 | 2019-10-30 | 基于mesos容器化平台的gpu资源调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911044273.5A CN110795249A (zh) | 2019-10-30 | 2019-10-30 | 基于mesos容器化平台的gpu资源调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110795249A true CN110795249A (zh) | 2020-02-14 |
Family
ID=69442168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911044273.5A Pending CN110795249A (zh) | 2019-10-30 | 2019-10-30 | 基于mesos容器化平台的gpu资源调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795249A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115562878A (zh) * | 2022-12-06 | 2023-01-03 | 苏州浪潮智能科技有限公司 | Gpu计算资源的管理方法、装置、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155811A (zh) * | 2015-04-28 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 图形处理装置、资源服务装置、资源调度方法和装置 |
KR20170116439A (ko) * | 2016-04-11 | 2017-10-19 | 한국전자통신연구원 | 태스크 스케줄링 방법 및 장치 |
CN109936604A (zh) * | 2017-12-18 | 2019-06-25 | 北京图森未来科技有限公司 | 一种资源调度方法、装置和系统 |
-
2019
- 2019-10-30 CN CN201911044273.5A patent/CN110795249A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155811A (zh) * | 2015-04-28 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 图形处理装置、资源服务装置、资源调度方法和装置 |
KR20170116439A (ko) * | 2016-04-11 | 2017-10-19 | 한국전자통신연구원 | 태스크 스케줄링 방법 및 장치 |
CN109936604A (zh) * | 2017-12-18 | 2019-06-25 | 北京图森未来科技有限公司 | 一种资源调度方法、装置和系统 |
Non-Patent Citations (4)
Title |
---|
XIAOHUI ZHAO等: ""Efficient Sharing and Fine-Grained Scheduling of Virtualized GPU Resources"", 《2018 IEEE 38TH INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS (ICDCS)》 * |
肖熠: ""一种针对GPU资源的深度学习容器云研究"", 《中国传媒大学学报自然科学版》 * |
裔隽,张怿檬,张目清等著: ""26.6.5 在docker中使用CUDA"", 《PYTHON机器学习实战》 * |
马俊峰: ""基于OpenCL的多GPU并行计算的研究与应用"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115562878A (zh) * | 2022-12-06 | 2023-01-03 | 苏州浪潮智能科技有限公司 | Gpu计算资源的管理方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109471727B (zh) | 一种任务处理方法、装置及系统 | |
US10701139B2 (en) | Life cycle management method and apparatus | |
CN108536519B (zh) | 自动搭建Kubernetes主节点的方法及终端设备 | |
EP3073374A1 (en) | Thread creation method, service request processing method and related device | |
CN105335229B (zh) | 一种业务资源的调度方法和装置 | |
EP3667489B1 (en) | Method and device for managing application program | |
CN111373372B (zh) | 在分布式计算环境中对应用分配优先级以进行对角缩放 | |
CN110995826A (zh) | 通信处理方法、装置、计算机可读介质及电子设备 | |
CN113645262A (zh) | 云计算服务系统和方法 | |
CN103257898A (zh) | 嵌入式系统中资源分配方法和系统 | |
TW202121274A (zh) | 雲端資源管理方法、裝置、電子設備及電腦可讀儲存媒體 | |
CN104301257A (zh) | 一种资源分配方法、装置及设备 | |
US20160321597A1 (en) | Device, System, and Method for Team Formation | |
CN108520329B (zh) | 基于经纪人画像的二手房客户精准自动分配方法及装置 | |
US12001866B2 (en) | Harvest virtual machine for utilizing cloud-computing resources | |
WO2016072895A1 (en) | Wireless communications network, user equipment and methods for handling a cloud | |
CN110795249A (zh) | 基于mesos容器化平台的gpu资源调度方法及装置 | |
CN110750330A (zh) | 一种虚拟机创建方法、系统、电子设备及存储介质 | |
CN111124593B (zh) | 信息处理方法及装置、网元及存储介质 | |
CN113760549A (zh) | 一种pod部署方法及装置 | |
US20120311155A1 (en) | Method and apparatus for assigning and releasing licenses | |
JP2005309868A (ja) | 処理割当管理装置、処理割当管理装置の制御方法、及びプログラム | |
CN108647090A (zh) | 一种资源分配方法及装置、服务器集群 | |
CN116204302A (zh) | 一种基于k8s安卓云手机的设备调度方法 | |
Al-Ou'n et al. | Using agent-based VM placement policy |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200214 |
|
RJ01 | Rejection of invention patent application after publication |