CN111124594A - 容器运行方法、装置、异构gpu服务器及容器集群系统 - Google Patents
容器运行方法、装置、异构gpu服务器及容器集群系统 Download PDFInfo
- Publication number
- CN111124594A CN111124594A CN201811291417.2A CN201811291417A CN111124594A CN 111124594 A CN111124594 A CN 111124594A CN 201811291417 A CN201811291417 A CN 201811291417A CN 111124594 A CN111124594 A CN 111124594A
- Authority
- CN
- China
- Prior art keywords
- container
- operated
- gpu
- application program
- main control
- 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
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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- 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/45583—Memory management, e.g. access or allocation
-
- 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)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种容器运行方法、装置、异构GPU服务器及容器集群系统。其中所述方法应用于异构GPU服务器的GPU芯片,所述异构GPU服务器还包括主控芯片,所述主控芯片安装有容器运行环境,所述GPU芯片安装有嵌入式操作系统;所述方法包括:获取所述主控芯片已启动的待运行容器所封装的应用程序;运行所述应用程序。本发明实施例可以通过在异构GPU服务器的主控芯片安装能够启动容器的容器运行环境,使得GPU芯片能够将应用程序获取至所安装的嵌入式操作系统中并运行,实现了利用GPU间接运行容器。
Description
技术领域
本发明涉及容器化技术领域,特别是涉及一种容器运行方法、装置、异构GPU服务器及容器集群系统。
背景技术
容器技术可以为应用程序提供一个隔离的虚拟环境(以下称容器),通过将应用程序以及应用程序的依赖项,如运行该应用程序所需要的函数库、驱动程序,封装在该容器中,使得容器中的应用程序在不具备这些依赖项的运行环境中仍然可以运行,提高了应用程序的适用性。
GPU(Graphics Processing Unit,图像处理器)相对于CPU(Central ProcessingUnit,中央处理器)往往具有更强的浮点数运算能力,因此基于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服务器还包括:接口扩展芯片;
所述主控芯片,通过所述接口扩展芯片与各个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芯片的数量为多个;
所述主控芯片具体用于启动待运行容器;获得待运行容器的存储地址;所述存储地址为:所述主控芯片已启动的待运行容器的第一存储地址,或所述主控芯片从已启动的待运行容器中提取的应用程序的第二存储地址;
所述GPU芯片具体用于按照所述第一存储地址,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或,按照所述第二存储地址,读取主控芯片从已启动的待运行容器中提取的应用程序。
结合第三方面,在第三种可能的实现方式中,所述异构GPU服务器的GPU芯片的数量为多个;
所述主控芯片具体用于启动待运行容器;并将已启动的待运行容器存储至预设的第三存储地址,或将从所述已启动的待运行容器中提取出的应用程序存储至预设的第四存储地址;
所述GPU芯片具体用于当监测到所述第三存储地址被存储了所述已启动的待运行容器时,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或当监测到所述第四存储地址被存储了从所述已启动的待运行容器中提取的应用程序时,读取主控芯片从已启动的待运行容器中提取的应用程序。
结合第三方面的第一种到第三种可能的实现方式中任一实现方式,在第四种可能的实现方式中,所述异构GPU服务器还包括:接口扩展芯片;
所述主控芯片,通过所述接口扩展芯片与各个所述GPU进行数据通信。
结合第五方面,在第五种可能的实现方式中,所述主控芯片为基于X86架构开发的芯片。
在本发明实施例的第六方面,提供了一种容器集群系统,所述系统包括调度服务器、多个集群服务器,所述多个集群服务器中至少一个集群服务器为异构GPU服务器;
所述调度服务器,用于将待运行容器调度至所述多个集群服务器中的处于空闲状态的集群服务器;
所述异构GPU服务器包括主控芯片,GPU芯片;
所述主控芯片,安装有容器运行环境,用于启动待运行容器;
所述GPU芯片,安装有嵌入式操作系统,用于获取所述主控芯片已启动的待运行容器所封装的应用程序;并运行所述应用程序。
结合第六方面,在第一种可能的实现方式中,所述异构GPU服务器的GPU芯片的数量为多个;
所述主控芯片具体用于启动待运行容器;从已启动的待运行容器中提取应用程序;并将提取的应用程序发送至各个所述GPU芯片;
所述GPU芯片具体用于接收所述主控芯片下发的从已启动的待运行容器中提取出的应用程序。
结合第六方面,在第二种可能的实现方式中,所述异构GPU服务器的GPU芯片的数量为多个;
所述主控芯片具体用于启动待运行容器;获得待运行容器的存储地址;所述存储地址为:所述主控芯片已启动的待运行容器的第一存储地址,或所述主控芯片从已启动的待运行容器中提取的应用程序的第二存储地址;
所述GPU芯片具体用于按照所述第一存储地址,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或,按照所述第二存储地址,读取主控芯片从已启动的待运行容器中提取的应用程序。
结合第六方面,在第三种可能的实现方式中,所述异构GPU服务器的GPU芯片的数量为多个;
所述主控芯片具体用于启动待运行容器;并将已启动的待运行容器存储至预设的第三存储地址,或将从所述已启动的待运行容器中提取出的应用程序存储至预设的第四存储地址;
所述GPU芯片具体用于当监测到所述第三存储地址被存储了所述已启动的待运行容器时,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或当监测到所述第四存储地址被存储了从所述已启动的待运行容器中提取的应用程序时,读取主控芯片从已启动的待运行容器中提取的应用程序。
结合第六方面的第一种到第三种可能的实现方式中任一实现方式,在第四种可能的实现方式中,所述异构GPU服务器还包括:接口扩展芯片;
所述主控芯片,通过所述接口扩展芯片与各个所述GPU进行数据通信。
结合第六方面,在第五种可能的实现方式中,所述主控芯片为基于X86架构开发的芯片。
结合第六方面,在第六种可能的实现方式中,所述调度服务器具体用于将待运行容器按照预设优先级从高到低的顺序依次调度至所述多个集群服务器中的处于空闲状态的集群服务器。
结合第六方面的第六种可能的实现方式,在第七种可能的实现方式中,所述调度服务器具体还用于如果所述多个集群服务器中不存在处于空闲状态的服务器,并且待运行容器中存在预设优先级高于第一优先级阈值的容器,控制所述多个集群服务器终止运行预设优先级低于第二优先级阈值的容器,所述第一优先级阈值不低于所述第二优先级阈值。
本发明实施例提供了容器运行方法、装置、异构GPU服务器及容器集群系统,可以通过在异构GPU服务器安装能够启动容器的容器运行环境,使得GPU芯片能够将应用程序获取至所安装的嵌入式操作系统中并运行,实现了利用GPU间接运行容器。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的容器运行方法的一种流程示意图;
图2为本发明实施例提供的异构GPU服务器的一种原理示意图;
图3为本发明实施例提供的异构GPU服务器的另一种原理示意图;
图4为本发明实施例提供的异构GPU服务器的另一种原理示意图;
图5为本发明实施例提供的异构GPU服务器的另一种原理示意图;
图6为本发明实施例提供的异构GPU服务器的另一种原理示意图;
图7a为本发明实施例提供的异构GPU服务器的一种结构示意图;
图7b为本发明实施例提供的异构GPU服务器的另一种结构示意图;
图8a为本发明实施例提供的容器集群系统的一种框架示意图;
图8b为本发明实施例提供的容器集群系统的另一种框架示意图
图9为本发明实施例提供的容器集群系统工作原理的一种流程示意图;
图10为本发明实施例提供的容器集群系统工作原理的另一种流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
GPU服务器因为具有强大的浮点数运算能力,在运行图像处理相关的应用程序是更具有优势。但是,一些图像处理相关的应用程序出于更好的适用性被封装在容器中,即容器化,而容器无法直接在GPU服务器的GPU芯片上运行。导致现有技术中,GPU服务器无法利用强大的浮点数运算能力处理这些容器化的应用程序。如何充分发挥GPU服务器强大的浮点数运算能力,以对容器化的应用程序进行处理成为亟待解决的技术问题。
参见图1,图1所示为本发明实施例提供的容器运行方法的一种流程示意图,该方法应用于异构GPU服务器的GPU芯片,该异构GPU服务器包括主控芯片以及GPU芯片。其中,主控芯片不为GPU芯片,并且搭载有容器运行环境,即容器可以在主控芯片上运行,示例性的,主控芯片可以是搭载有容器运行环境的X86架构的芯片。GPU芯片可以根据实际需求选用不同架构的GPU芯片,并且可以是只具有一个GPU芯片,也可以是同时具有多个GPU芯片。异构GPU服务器是指基于GPU芯片开发的具有特定架构的图像处理服务器,该特定架构可以根据实际需求进行配置。
方法可以包括:
S101,获取主控芯片已启动的待运行容器所封装的应用程序。
主控芯片已启动的待运行容器,可以是指已经在容器运行环境中启动但尚未运行的容器。这些容器可以是从调度服务器调度至该异构GPU服务器的,也可以是在该异构GPU服务器本地生成的。可以理解的是,在一些情况下,用户可能希望该异构GPU服务器中所有的容器均利用GPU来运行,在一些情况下,用户可能只是希望该异构GPU服务器中的部分容器利用GPU来运行,另一部分容器由主控芯片运行。其中,获取可以是指GPU芯片从主控芯片中读取应用程序,也可以是指GPU芯片接收主控芯片所发送的应用程序。
示例性的,在一种可选的实施例中,可以是主控芯片启动待运行容器,并将从已启动的待运行容器中提取出的应用程序发送至GPU芯片。在其他实施例中,也可以是待运行容器从主控芯片的某存储路径中读取已启动的待运行容器中的应用程序。该存储路径可以是已启动的待运行容器的存储路径,也可以是主控芯片从已启动的待运行容器中提取的应用程序的存储路径,并且该存储路径可以是预先约定的,也可以是主控芯片在启动待运行容器后获取并发送给GPU芯片的。
S102,运行该应用程序。
虽然GPU芯片因自身处理能力问题无法直接运行容器,但是容器中所封装的应用程序可能是GPU芯片可以运行的。对于GPU芯片无法运行的应用程序,无论是否被容器化,均不会需要利用GPU运行,因此不涉及本发明实施例所需要解决的技术问题。
在一些情况下,一些应用程序在设计或后期使用出于实际需求被容器化。由于GPU芯片自身处理能力问题无法直接运行容器,因此这些被容器化的应用程序无法利用GPU强大的浮点数运算能力进行处理。而选用该实施例可以通过在异构GPU服务器设置能够启动容器的容器运行环境,使得GPU芯片能够将应用程序获取至所安装的嵌入式操作系统中并运行,实现了利用GPU间接运行容器,解决了上述技术问题。
为更清楚的说明本发明实施例提供的容器运行方法,下面将结合异构GPU服务器中的主控芯片和GPU芯片进行说明,参见图2,图2所示为本发明实施例提供的异构GPU服务器运行容器的一种原理示意图,可以包括:
S201,主控芯片启动待运行容器。
因为主控芯片上安装有容器运行环境,因此主控芯片可以正常启动容器。
S202,主控芯片从已启动的待运行容器中提取应用程序。
S203,主控芯片将提取到的应用程序发送至GPU芯片。
如果异构GPU服务器仅有一个GPU芯片,则主控芯片将应用程序发送至该GPU芯片。如果异构GPU服务器包括多个GPU芯片,则可以是主控芯片将应用程序发送至该多个GPU芯片中的每个GPU芯片,也可以是主控芯片将应用程序发送至该多个GPU芯片中的部分GPU芯片。
S204,GPU芯片接收主控芯片所发送的应用程序并运行。
参见图3,图3所示为本发明实施例提供的异构GPU服务器运行容器的另一种原理示意图,可以包括:
S301,主控芯片启动待运行容器。
该步骤与S201相同,可以参见前述关于S201的描述,在此不再赘述。
S302,主控芯片获取已启动的待运行容器的第一存储路径。
S303,主控芯片将第一存储路径发送至GPU芯片。
S304,GPU芯片按照第一存储地址,从已启动的待运行容器中提取待运行容器所封装的应用程序。
由于此时待运行容器已经被主控芯片启动,因此GPU可以从中提取待运行容器所封装的应用程序。
S305,GPU芯片运行该应用程序。
参见图4,图4所示为本发明实施例提供的异构GPU服务器运行容器的另一种原理示意图,可以包括:
S401,主控芯片启动待运行容器。
该步骤与S201相同,可以参见前述关于S201的描述,在此不再赘述。
S402,主控芯片从已启动的待运行容器中提取应用程序。
S403,主控芯片获取提取的应用程序的第二存储地址。
在该实施例中,主控芯片可以是先提取应用程序,再获取提取的应用程序的第二存储地址。在其他实施例中,主控芯片也可以是在提取应用程序之前,先为应用程序分配第二存储地址,再将应用程序提取至所分配的第二存储地址。
S404,主控芯片将第二存储地址发送至GPU芯片。
S405,GPU芯片按照第二存储地址,读取主控芯片从已启动的待运行容器中提取的应用程序。
S406,GPU芯片运行该应用程序。
参见图5,图5所示为本发明实施例提供的异构GPU服务器运行容器的另一种原理示意图,可以包括:
S501,主控芯片启动待运行容器。
该步骤与S201相同,可以参见前述关于S201的描述,在此不再赘述。
S502,主控芯片将已启动的待运行容器存储至预设的第三存储地址。
其中,预设的第三存储地址为主控芯片中预先约定的存储地址。主控芯片可以是拒绝将除已启动的待运行容器以外的数据存储至第三存储地址。
S503,GPU芯片当监测到第三存储地址被存储了已启动的待运行容器时,从该已启动的待运行容器中提取该待运行容器所封装的应用程序。
GPU芯片可以是安装有监测程序,该监测程序可以用于定期和/或不定期监测主控芯片中第三存储路径是否被存储了已启动的待运行容器。
S504,GPU芯片运行该应用程序。
参见图6,图6所示为本发明实施例提供的异构GPU服务器运行容器的另一种原理示意图,可以包括:
S601,主控芯片启动待运行容器。
该步骤与S201相同,可以参见前述关于S201的描述,在此不再赘述。
S602,主控芯片从已启动的待运行容器中提取应用程序,并将该应用程序存储至预设的第四存储地址。
其中,预设的第四存储地址为主控芯片中预先约定的存储地址。主控芯片可以是拒绝将除从已启动的待运行容器中提取的应用程序以外的其他数据存储至第三存储地址。
S603,GPU芯片当监测到第四存储地址被存储了从已启动的待运行容器中提取的应用程序时,读取主控芯片从已启动的待运行容器中提取的应用程序。
GPU芯片可以是安装有监测程序,该监测程序可以用于定期和/或不定期监测主控芯片中第四存储路径是否被存储了从已启动的待运行容器中提取的应用程序。
S604,GPU芯片运行该应用程序。
参见图7a,图7a所示为本发明实施例提供的异构GPU服务器的一种架构示意图,异构GPU服务器200可以包括:主控芯片210、GPU芯片220。
主控芯片210安装有容器运行环境,用于启动待运行容器,主控芯片210可以是X86架构的芯片,如X86架构的CPU。进一步的,在其他实施例中,主控芯片210也可以用于运行不需要利用GPU来运行的容器。
GPU芯片220安装有嵌入式操作系统,用于获取主控芯片210已启动的待运行容器所封装的应用程序;并在嵌入式操作系统中运行应用程序。
选用该实施例,常规的GPU服务器因为容器无法直接在GPU芯片220上运行,因此无法运行容器,更无法添加至容器集群中。而本发明实施例所提供的异构GPU服务器200在主控芯片210上搭载有能够启动待运行容器的容器运行环境,使得GPU芯片220可以将待运行容器中所封装的应用程序镜像至所对应的嵌入式操作系统,进而实现利用GPU强大的浮点数运算能力处理应用程序,间接的实现了利用GPU运行待运行容器,使得异构GPU服务器200可以兼容容器,并且能够被添加至容器集群中使用。
在一种可选的实施例中,异构GPU服务器200的GPU芯片220的数量为多个;
主控芯片210具体用于启动待运行容器;从已启动的待运行容器中提取应用程序;并将提取的应用程序发送至各个GPU芯片220;
GPU芯片220具体用于接收主控芯片210下发的从已启动的待运行容器中提取出的应用程序。
在又一种可选的实施例中,异构GPU服务器200的GPU芯片220的数量为多个;
主控芯片210具体用于启动待运行容器;获得待运行容器的存储地址;存储地址为:主控芯片210已启动的待运行容器的第一存储地址,或主控芯片210从已启动的待运行容器中提取的应用程序的第二存储地址;
GPU芯片220具体用于按照第一存储地址,从已启动的待运行容器中提取待运行容器所封装的应用程序;或,按照第二存储地址,读取主控芯片210从已启动的待运行容器中提取的应用程序。
在又一种可选的实施例中,异构GPU服务器200的GPU芯片220的数量为多个;
主控芯片210具体用于启动待运行容器;并将已启动的待运行容器存储至预设的第三存储地址,或将从已启动的待运行容器中提取出的应用程序存储至预设的第四存储地址;
GPU芯片220具体用于当监测到第三存储地址被存储了已启动的待运行容器时,从已启动的待运行容器中提取待运行容器所封装的应用程序;或当监测到第四存储地址被存储了从已启动的待运行容器中提取的应用程序时,读取主控芯片210从已启动的待运行容器中提取的应用程序。
在又一种可选的实施例中,如图7b所示,异构GPU服务器200还包括:接口扩展芯片;
主控芯片210,通过接口扩展芯片与各个GPU进行数据通信。
主控芯片210上的接口有限,当GPU芯片220的数量较多时,可能无法实现将多个GPU芯片220均直接与主控芯片210连接,选用该实施例可以解决该技术问题。进一步的,接口扩展芯片230还可以用于实现异构GPU服务器200与其他设备之间的数据交互。示例性的,异构GPU服务器200在利用GPU芯片220运行完成一个待运行容器后,将运行结果经由接口扩展芯片230将运行结果发送至预设处理流程中的下游设备。
参见图8a,图8a所示为本发明实施例提供的容器集群系统的一种框架示意图,可以包括:
调度服务器100,多个集群服务器300。这多个集群服务器300中中至少一个集群服务器300为GPU服务器200。进一步的,可以是多个集群服务器300中的一个或多个集群服务器为异构GPU服务器200,也可以是多个集群服务器300均为异构GPU服务器200。为讨论方便,下面将以多个集群服务器300中仅具有一个异构GPU服务器200,除该异构GPU服务器200以外的集群服务器300均为非GPU服务器为例进行说明。
集群服务器300为具有运行容器能力的服务器,示例性的可以是具有服务器CPU并且在CPU上安装有容器运行环境的服务器。在本实施例中,多个集群服务器300中一个集群服务器300为异构GPU服务器200,该异构GPU服务器200可以包括主控芯片210以及GPU芯片220。
在一种可选的实施例中,异构GPU服务器200的GPU芯片220的数量为多个;
主控芯片210具体用于启动待运行容器;从已启动的待运行容器中提取应用程序;并将提取的应用程序发送至各个GPU芯片220;
GPU芯片220具体用于接收主控芯片210下发的从已启动的待运行容器中提取出的应用程序。
在又一种可选的实施例中,异构GPU服务器200的GPU芯片220的数量为多个;
主控芯片210具体用于启动待运行容器;获得待运行容器的存储地址;存储地址为:主控芯片210已启动的待运行容器的第一存储地址,或主控芯片210从已启动的待运行容器中提取的应用程序的第二存储地址;
GPU芯片220具体用于按照第一存储地址,从已启动的待运行容器中提取待运行容器所封装的应用程序;或,按照第二存储地址,读取主控芯片210从已启动的待运行容器中提取的应用程序。
在又一种可选的实施例中,异构GPU服务器200的GPU芯片220的数量为多个;
主控芯片210具体用于启动待运行容器;并将已启动的待运行容器存储至预设的第三存储地址,或将从已启动的待运行容器中提取出的应用程序存储至预设的第四存储地址;
GPU芯片220具体用于当监测到第三存储地址被存储了已启动的待运行容器时,从已启动的待运行容器中提取待运行容器所封装的应用程序;或当监测到第四存储地址被存储了从已启动的待运行容器中提取的应用程序时,读取主控芯片210从已启动的待运行容器中提取的应用程序。
在有一种可选的实施例中,如图8b所示,异构GPU服务器200还包括:接口扩展芯片;
主控芯片210,通过接口扩展芯片与各个GPU进行数据通信。
下面将结合调度服务器对本发明实施例提供的容器集群系统的工作原理进行说明,可以参见图9,包括:
S901,调度服务器100在获取到待执行任务后,将待执行任务对应的待运行容器调度至多个集群服务器300中处于空闲状态的集群服务器300。
如果多个集群服务器300中仅存在一个处于空闲状态的集群服务器300,则调度服务器100可以是将待运行容器调度至该处于空闲状态的集群服务器300中。如果多个集群服务器300中存在多个处于空闲状态的集群服务器300,则调度服务器100可以是按照预设调度规则,将待运行容器调度至这多个处于空闲状态的集群服务器300中的一个集群服务器300中,示例性的,可以是将待运行容器调度至其中性能最好的集群服务器300中。
处于空闲状态的集群服务器300可以是指没有正在运行容器的集群服务器300,在其他实施例中,也可以是指系统资源占用率低于预设的占用率阈值的集群服务器。示例性的,假设第一集群服务器预期可以同时运行10个容器,可以设定在第一集群服务器正在运行的容器数目低于10个时,第一集群服务器处于空闲状态。又例如,可以设定第一集群服务器的GPU/CPU(取决于第一集群服务器的架构)占用率低于30%时,第一集群服务器处于空闲状态。
进一步的,在一种可选的实施例中,如果存在多个待运行容器,例如存在多个待执行任务或者一个待执行任务对应多个待运行容器,可以将这些待运行容器按照预设优先级由高到低的顺序依次调度至多个集群服务器300中处于空闲状态的集群服务器300中。其中,预设优先级用于表示待运行容器的重要性。选用该实施例,可以提高重要性较高的待运行容器被优先运行的概率。
S902,集群服务器300各自运行调度至该集群服务器300上的容器。
本发明实施例提供的容器集群系统,可以通过调度服务器将异构GPU服务器200和常规类型的集群服务器统一调度,使得容器集群系统可以利用GPU芯片220运行部分容器。
参见图10,图10所示为本发明实施例提供的容器集群工作原理的另一种流程示意图,可以包括:
S1001,调度服务器100在获取到待执行任务后,确定多个集群服务器300中是否存在处于空闲状态的服务器,如果多个集群服务器300中存在处于空闲状态的服务器,则执行S604,如果多个集群服务器300中存在处于空闲状态的服务器,则执行S602。
可以是在调度服务器中设置有管理程序,该管理程序用于记录多个集群服务器300的运行状态标识,调度服务器100可以通过查询多个集群服务器300的运行状态标识,确定多个集群服务器300中是否存在处于空闲状态的服务器。示例性的,假设运行状态标识为1表示处于空闲状态,运行状态标识为0表示不处于空闲状态。该管理程序初始时将多个集群服务器300的运行状态标识设置为1,在有集群服务器300开始运行容器后,将该集群服务器300的运行状态标识修改为0,该集群服务器300完成容器运行后,再将该集群服务器300的运行状态标识修改为1。调度服务器100可以是通过查找是否存在运行状态标识为1的集群服务器300确定是否存在处于空闲状态的服务器,如果存在运行状态标识为1的集群服务器300,则可以确定存在处于空闲状态的服务器,如果所有集群服务器的运行状态标识均为0,则可以确定不存在处于空闲状态的服务器。
S1002,调度服务器100确定待执行任务所对应的待运行容器中是否存在预设优先级高于第一优先级阈值的容器,如果存在预设优先级高于第一优先级的容器则执行S603,如果不存在预设优先级高于第一优先级的容器则执行S601。
其中,第一优先级阈值可以是根据用户实际需求进行设置的,也可以是根据当前多个集群服务器正在运行的容器的预设优先级确定的。示例性的,假设容器的预设优先级共分为1级-10级共10个等级,则可以是由用户预先设定第一优先级阈值为6级。也可以是确定当前多个集群服务器正在运行的容器的预设优先级的平均值,假设为3级,在此平均值上增加4级作为第一优先级阈值,即第一优先级阈值为7级。
进一步的,可以是在确定不存在预设优先级高于预设第一优先级阈值的容器后立即执行S601,也可以是在确定不存在预设优先级高于预设第一优先级阈值的容器后,经过特定时间间隔再执行S601。
S1003,调度服务器100控制多个集群服务器300终止运行预设优先级低于第二优先级阈值的容器。
其中,第一优先级阈值不低于第二优先级阈值。第二优先级可以是由用户根据实际需求预先设置的,也可以是根据第一优先级阈值和/或多个集群服务器300正在运行的容器的预设优先级确定的。示例性的,假设容器的预设优先级共分为1级-10级共10个等级,则可以是由用户预先设定第二优先级阈值为3级。也可以是在第一优先级阈值的基础上,减少2级作为第二优先级阈值,例如第一优先级阈值为6级,则第二优先级阈值可以为4级。
调度服务器100可以是向多个集群服务器300均发送控制指令,以控制多个集群服务器300终止运行预设优先级低于第二优先级阈值的容器。也可以是确定多个集群服务器300中,正在运行的容器的预设优先级低于第二优先级阈值的集群服务器300,向这些集群服务器300发送控制指令,以控制这些集群服务器300终止运行正在运行的容器。
可以理解的是,在多个集群服务器300终止运行预设优先级低于第二优先级阈值的容器后,原先不存在处于空闲状态的服务器的多个集群服务器300中可能出现处于空闲状态的服务器,也可能仍然不存在处于空闲状态的服务器,本实施例仅对出现处于空闲状态的服务器的情况进行讨论,对于仍然不存在处于空闲状态的服务器的情况,可以认为正在运行的容器的重要性与待运行容器的重要性相当,不存在该实施例所要解决的技术问题,在此不做讨论。
S1004,调度服务器100将待执行任务对应的待运行容器调度至多个集群服务器300中处于空闲状态的集群服务器300。
该步骤与S901相同,可以参见前述关于S901的描述,在此不再赘述。
S1005,集群服务器300各自运行调度至该集群服务器300上的容器。
在一些情况下,用户可能希望一些重要性较高的容器被优先运行,但是如果容器集群系统中已经不存在处于空闲状态的集群服务器时,重要性较高的容器可能无法立即被运行。而选用该实施例,可以在待执行的容器的重要性较高的情况下,终止重要性相对较低的容器的运行,以腾出空闲的集群服务器优先运行重要性较高的容器。
本发明实施例还提供一种容器运行装置,该装置应用于异构GPU服务器的GPU芯片,异构GPU服务器还包括主控芯片,主控芯片搭载有容器运行环境,GPU芯片搭载有嵌入式操作系统;
装置用于获取主控芯片已启动的待运行容器所封装的应用程序;
并运行应用程序。
进一步的,装置具体用于接收主控芯片下发的从已启动的待运行容器中提取出的应用程序。
进一步的,装置具体用于接收主控芯片发送的存储地址,存储地址为:主控芯片已启动的待运行容器的第一存储地址,或主控芯片从已启动的待运行容器中提取的应用程序的第二存储地址;
按照第一存储地址,从已启动的待运行容器中提取待运行容器所封装的应用程序;或,
按照第二存储地址,读取主控芯片从已启动的待运行容器中提取的应用程序。
进一步的,装置具体用于监测预设的第三存储地址或第四存储地址;
当监测到第三存储地址被主控芯片存储了已启动的待运行容器时,从已启动的待运行容器中提取待运行容器所封装的应用程序;或
当监测到第四存储地址被主控芯片存储了从已启动的待运行容器中提取的应用程序时,读取主控芯片从已启动的待运行容器中提取的应用程序。
本发明实施例还提供了一种容器运行装置,该装置应用于异构GPU服务器的主控芯片,异构GPU服务器还包括GPU芯片;主控芯片安装有容器运行环境,GPU芯片安装有嵌入式操作系统;
装置用于启动待运行容器,以使GPU芯片获取已启动的待运行容器所封装的应用程序并运行。
进一步的,,异构GPU服务器中GPU芯片的数量为多个;
装置具体用于启动待运行容器;
从已启动的待运行容器中提取应用程序;
将提取的应用程序发送至各个GPU芯片,以使各个GPU芯片运行接收的应用程序。
进一步的,异构GPU服务器中GPU芯片的数量为多个;
装置具体用于启动待运行容器;
获得待运行容器的存储地址;存储地址为:主控芯片已启动的待运行容器的第一存储地址,或主控芯片从已启动的待运行容器中提取的应用程序的第二存储地址;以使各个GPU芯片,按照第一存储地址,从已启动的待运行容器中提取待运行容器所封装的应用程序;或,按照第二存储地址,读取主控芯片从已启动的待运行容器中提取的应用程序。
进一步的,异构GPU服务器中GPU芯片的数量为多个;
装置具体用于启动待运行容器;
将已启动的待运行容器存储至预设的第三存储地址,或将从已启动的待运行容器中提取出的应用程序存储至预设的第四存储地址,以使各个GPU芯片,当监测到第三存储地址被存储了已启动的待运行容器时,从已启动的待运行容器中提取待运行容器所封装的应用程序,或当监测到第四存储地址被存储了从已启动的待运行容器中提取的应用程序时,读取主控芯片从已启动的待运行容器中提取的应用程序。
进一步的,异构GPU服务器还包括:接口扩展芯片;
主控芯片,通过接口扩展芯片与各个GPU芯片进行数据通信。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一的容器运行方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一的容器运行方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、异构GPU服务器、容器集群系统、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (32)
1.一种容器运行方法,其特征在于,应用于异构GPU服务器的GPU芯片,所述异构GPU服务器还包括主控芯片;所述主控芯片安装有容器运行环境,所述GPU芯片安装有嵌入式操作系统;
所述方法包括:
获取所述主控芯片已启动的待运行容器所封装的应用程序;
运行所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述获取所述主控芯片已启动的待运行容器所封装的应用程序,包括:
接收所述主控芯片下发的从已启动的待运行容器中提取出的应用程序。
3.根据权利要求1所述的方法,其特征在于,所述从所述主控芯片已启动的待运行容器中,获取所述待运行容器中所封装的应用程序,包括:
接收所述主控芯片发送的存储地址,所述存储地址为:所述主控芯片已启动的待运行容器的第一存储地址,或所述主控芯片从已启动的待运行容器中提取的应用程序的第二存储地址;
按照所述第一存储地址,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或,
按照所述第二存储地址,读取主控芯片从已启动的待运行容器中提取的应用程序。
4.根据权利要求1所述的容器运行方法,其特征在于,所述从所述主控芯片已启动的待运行容器中,获取所述待运行容器中所封装的应用程序,包括:
监测预设的第三存储地址或第四存储地址;
当监测到所述第三存储地址被主控芯片存储了已启动的待运行容器时,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或
当监测到所述第四存储地址被所述主控芯片存储了从已启动的待运行容器中提取的应用程序时,读取主控芯片从已启动的待运行容器中提取的应用程序。
5.一种容器运行方法,其特征在于,应用于异构GPU服务器的主控芯片,所述异构GPU服务器还包括GPU芯片;所述主控芯片安装有容器运行环境,所述GPU芯片安装有嵌入式操作系统;
所述方法包括:
启动待运行容器,以使GPU芯片获取已启动的待运行容器所封装的应用程序并运行。
6.根据权利要求5所述的容器运行方法,其特征在于,所述异构GPU服务器中GPU芯片的数量为多个;
所述启动待运行容器,以使GPU芯片获取已启动的待运行容器所封装的应用程序并运行的步骤,包括:
启动待运行容器;
从已启动的待运行容器中提取应用程序;
将提取的应用程序发送至各个GPU芯片,以使各个GPU芯片运行接收的应用程序。
7.根据权利要求5所述的方法,其特征在于,所述异构GPU服务器中GPU的数量为多个;
所述启动待运行容器,以使GPU芯片获取已启动的待运行容器所封装的应用程序并运行的步骤,包括:
启动待运行容器;
获得待运行容器的存储地址;所述存储地址为:所述主控芯片已启动的待运行容器的第一存储地址,或所述主控芯片从已启动的待运行容器中提取的应用程序的第二存储地址;以使各个GPU芯片,按照所述第一存储地址,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或,按照所述第二存储地址,读取主控芯片从已启动的待运行容器中提取的应用程序。
8.根据权利要求5所述的方法,其特征在于,所述异构GPU服务器中GPU芯片的数量为多个;
所述启动待运行容器,以使GPU芯片获取已启动的待运行容器所封装的应用程序并运行的步骤,包括:
启动待运行容器;
将已启动的待运行容器存储至预设的第三存储地址,或将从所述已启动的待运行容器中提取出的应用程序存储至预设的第四存储地址,以使各个GPU芯片,当监测到所述第三存储地址被存储了所述已启动的待运行容器时,从所述已启动的待运行容器中提取待运行容器所封装的应用程序,或当监测到所述第四存储地址被存储了从所述已启动的待运行容器中提取的应用程序时,读取主控芯片从已启动的待运行容器中提取的应用程序。
9.根据权利要求6-8中任一所述的方法,其特征在于,所述异构GPU服务器还包括:接口扩展芯片;
所述主控芯片,通过所述接口扩展芯片与各个GPU进行数据通信。
10.一种容器运行装置,其特征在于,应用于异构GPU服务器的GPU芯片,所述异构GPU服务器还包括主控芯片,所述主控芯片安装有容器运行环境,所述GPU芯片安装有嵌入式操作系统;
所述装置用于获取所述主控芯片已启动的待运行容器所封装的应用程序;
并运行所述应用程序。
11.根据权利要求10所述的装置,其特征在于,所述装置具体用于接收所述主控芯片下发的从已启动的待运行容器中提取出的应用程序。
12.根据权利要求10所述的装置,其特征在于,所述装置具体用于接收所述主控芯片发送的存储地址,所述存储地址为:所述主控芯片已启动的待运行容器的第一存储地址,或所述主控芯片从已启动的待运行容器中提取的应用程序的第二存储地址;
按照所述第一存储地址,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或,
按照所述第二存储地址,读取主控芯片从已启动的待运行容器中提取的应用程序。
13.根据权利要求10所述的装置,其特征在于,所述装置具体用于监测预设的第三存储地址或第四存储地址;
当监测到所述第三存储地址被主控芯片存储了已启动的待运行容器时,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或
当监测到所述第四存储地址被所述主控芯片存储了从已启动的待运行容器中提取的应用程序时,读取主控芯片从已启动的待运行容器中提取的应用程序。
14.一种容器运行装置,其特征在于,应用于异构GPU服务器的主控芯片,所述异构GPU服务器还包括GPU芯片;所述主控芯片安装有容器运行环境,所述GPU芯片安装有嵌入式操作系统;
所述装置用于启动待运行容器,以使GPU芯片获取已启动的待运行容器所封装的应用程序并运行。
15.根据权利要求14所述的装置,其特征在于,所述异构GPU服务器中GPU芯片的数量为多个;
所述装置具体用于启动待运行容器;
从已启动的待运行容器中提取应用程序;
将提取的应用程序发送至各个GPU芯片,以使各个GPU芯片运行接收的应用程序。
16.根据权利要求14所述的装置,其特征在于,所述异构GPU服务器中GPU芯片的数量为多个;
所述装置具体用于启动待运行容器;
获得待运行容器的存储地址;所述存储地址为:所述主控芯片已启动的待运行容器的第一存储地址,或所述主控芯片从已启动的待运行容器中提取的应用程序的第二存储地址;以使各个GPU芯片,按照所述第一存储地址,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或,按照所述第二存储地址,读取主控芯片从已启动的待运行容器中提取的应用程序。
17.根据权利要求14所述的装置,其特征在于,所述异构GPU服务器中GPU芯片的数量为多个;
所述装置具体用于启动待运行容器;
将已启动的待运行容器存储至预设的第三存储地址,或将从所述已启动的待运行容器中提取出的应用程序存储至预设的第四存储地址,以使各个GPU芯片,当监测到所述第三存储地址被存储了所述已启动的待运行容器时,从所述已启动的待运行容器中提取待运行容器所封装的应用程序,或当监测到所述第四存储地址被存储了从所述已启动的待运行容器中提取的应用程序时,读取主控芯片从已启动的待运行容器中提取的应用程序。
18.根据权利要求15-17中任一所述的装置,其特征在于,所述异构GPU服务器还包括:接口扩展芯片;
所述主控芯片,通过所述接口扩展芯片与各个GPU芯片进行数据通信。
19.一种异构GPU服务器,其特征在于,所述异构GPU服务器包括主控芯片和GPU芯片;
所述主控芯片,安装有容器运行环境,用于启动待运行容器;
所述GPU芯片,安装有嵌入式操作系统,用于获取所述主控芯片已启动的待运行容器所封装的应用程序;并运行所述应用程序。
20.根据权利要求19所述的异构GPU服务器,其特征在于,所述异构GPU服务器的GPU芯片的数量为多个;
所述主控芯片具体用于启动待运行容器;从已启动的待运行容器中提取应用程序;并将提取的应用程序发送至各个所述GPU芯片;
所述GPU芯片具体用于接收所述主控芯片下发的从已启动的待运行容器中提取出的应用程序。
21.根据权利要求19所述的异构GPU服务器,其特征在于,所述异构GPU服务器的GPU芯片的数量为多个;
所述主控芯片具体用于启动待运行容器;获得待运行容器的存储地址;所述存储地址为:所述主控芯片已启动的待运行容器的第一存储地址,或所述主控芯片从已启动的待运行容器中提取的应用程序的第二存储地址;
所述GPU芯片具体用于按照所述第一存储地址,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或,按照所述第二存储地址,读取主控芯片从已启动的待运行容器中提取的应用程序。
22.根据权利要求19所述的异构GPU服务器,其特征在于,所述异构GPU服务器的GPU芯片的数量为多个;
所述主控芯片具体用于启动待运行容器;并将已启动的待运行容器存储至预设的第三存储地址,或将从所述已启动的待运行容器中提取出的应用程序存储至预设的第四存储地址;
所述GPU芯片具体用于当监测到所述第三存储地址被存储了所述已启动的待运行容器时,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或当监测到所述第四存储地址被存储了从所述已启动的待运行容器中提取的应用程序时,读取主控芯片从已启动的待运行容器中提取的应用程序。
23.根据权利要求21-22中任一所述的异构GPU服务器,其特征在于,所述异构GPU服务器还包括:接口扩展芯片;
所述主控芯片,通过所述接口扩展芯片与各个所述GPU进行数据通信。
24.根据权利要求19所述的异构GPU服务器,其特征在于,所述主控芯片为基于X86架构开发的芯片。
25.一种容器集群系统,其特征在于,所述系统包括调度服务器、多个集群服务器,所述多个集群服务器中至少一个集群服务器为异构GPU服务器;
所述调度服务器,用于将待运行容器调度至所述多个集群服务器中的处于空闲状态的集群服务器;
所述异构GPU服务器包括主控芯片和GPU芯片;
所述主控芯片,安装有容器运行环境,用于启动待运行容器;
所述GPU芯片,安装有嵌入式操作系统,用于获取所述主控芯片已启动的待运行容器所封装的应用程序;并运行所述应用程序。
26.根据权利要求25所述的系统,其特征在于,所述异构GPU服务器的GPU芯片的数量为多个;
所述主控芯片具体用于启动待运行容器;从已启动的待运行容器中提取应用程序;并将提取的应用程序发送至各个所述GPU芯片;
所述GPU芯片具体用于接收所述主控芯片下发的从已启动的待运行容器中提取出的应用程序。
27.根据权利要求25所述的系统,其特征在于,所述异构GPU服务器的GPU芯片的数量为多个;
所述主控芯片具体用于启动待运行容器;获得待运行容器的存储地址;所述存储地址为:所述主控芯片已启动的待运行容器的第一存储地址,或所述主控芯片从已启动的待运行容器中提取的应用程序的第二存储地址;
所述GPU芯片具体用于按照所述第一存储地址,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或,按照所述第二存储地址,读取主控芯片从已启动的待运行容器中提取的应用程序。
28.根据权利要求25所述的系统,其特征在于,所述异构GPU服务器的GPU芯片的数量为多个;
所述主控芯片具体用于启动待运行容器;并将已启动的待运行容器存储至预设的第三存储地址,或将从所述已启动的待运行容器中提取出的应用程序存储至预设的第四存储地址;
所述GPU芯片具体用于当监测到所述第三存储地址被存储了所述已启动的待运行容器时,从所述已启动的待运行容器中提取待运行容器所封装的应用程序;或当监测到所述第四存储地址被存储了从所述已启动的待运行容器中提取的应用程序时,读取主控芯片从已启动的待运行容器中提取的应用程序。
29.根据权利要求26-28中任一所述的系统,其特征在于,所述异构GPU服务器还包括:接口扩展芯片;
所述主控芯片,通过所述接口扩展芯片与各个所述GPU进行数据通信。
30.根据权利要求25所述的系统,其特征在于,所述主控芯片为基于X86架构开发的芯片。
31.根据权利要求25所述的系统,其特征在于,所述调度服务器具体用于将待运行容器按照预设优先级从高到低的顺序依次调度至所述多个集群服务器中的处于空闲状态的集群服务器。
32.根据权利要求31所述的系统,其特征在于,所述调度服务器具体还用于如果所述多个集群服务器中不存在处于空闲状态的服务器,并且待运行容器中存在预设优先级高于第一优先级阈值的容器,控制所述多个集群服务器终止运行预设优先级低于第二优先级阈值的容器,所述第一优先级阈值不低于所述第二优先级阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811291417.2A CN111124594B (zh) | 2018-10-31 | 2018-10-31 | 容器运行方法、装置、异构gpu服务器及容器集群系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811291417.2A CN111124594B (zh) | 2018-10-31 | 2018-10-31 | 容器运行方法、装置、异构gpu服务器及容器集群系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124594A true CN111124594A (zh) | 2020-05-08 |
CN111124594B CN111124594B (zh) | 2023-04-07 |
Family
ID=70494134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811291417.2A Active CN111124594B (zh) | 2018-10-31 | 2018-10-31 | 容器运行方法、装置、异构gpu服务器及容器集群系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124594B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002049598A (ja) * | 2000-05-23 | 2002-02-15 | Victor Co Of Japan Ltd | エージェントシステム |
CN101963918A (zh) * | 2010-10-26 | 2011-02-02 | 上海交通大学 | 实现cpu/gpu异构平台的虚拟执行环境的方法 |
CN103197976A (zh) * | 2013-04-11 | 2013-07-10 | 华为技术有限公司 | 异构系统的任务处理方法及装置 |
CN104011679A (zh) * | 2011-12-01 | 2014-08-27 | 超威半导体公司 | 异构并行处理平台的软件库 |
US20170161204A1 (en) * | 2015-12-02 | 2017-06-08 | Imagination Technologies Limited | GPU Virtualisation |
-
2018
- 2018-10-31 CN CN201811291417.2A patent/CN111124594B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002049598A (ja) * | 2000-05-23 | 2002-02-15 | Victor Co Of Japan Ltd | エージェントシステム |
CN101963918A (zh) * | 2010-10-26 | 2011-02-02 | 上海交通大学 | 实现cpu/gpu异构平台的虚拟执行环境的方法 |
CN104011679A (zh) * | 2011-12-01 | 2014-08-27 | 超威半导体公司 | 异构并行处理平台的软件库 |
CN103197976A (zh) * | 2013-04-11 | 2013-07-10 | 华为技术有限公司 | 异构系统的任务处理方法及装置 |
US20170161204A1 (en) * | 2015-12-02 | 2017-06-08 | Imagination Technologies Limited | GPU Virtualisation |
Non-Patent Citations (1)
Title |
---|
严健康;陈更生;: "基于CPU/GPU异构资源协同调度的改进H-Storm平台" * |
Also Published As
Publication number | Publication date |
---|---|
CN111124594B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10003500B2 (en) | Systems and methods for resource sharing between two resource allocation systems | |
JP6571277B2 (ja) | 端末アプリケーションをロードする方法及び装置 | |
US8321558B1 (en) | Dynamically monitoring and modifying distributed execution of programs | |
US8918776B2 (en) | Self-adapting software system | |
US10394580B2 (en) | Dynamic addition and removal of operating system components | |
KR101656360B1 (ko) | 자동 분산병렬 처리 하둡 시스템을 지원하는 클라우드 시스템 | |
CN111475227B (zh) | 业务插件加载实现方法、装置和终端设备 | |
CN109688191B (zh) | 流量调度方法及通信装置 | |
CN109766172B (zh) | 一种异步任务调度方法以及装置 | |
US9176710B2 (en) | Dynamically selecting service provider, computing system, computer, and program | |
US20130290979A1 (en) | Data transfer control method of parallel distributed processing system, parallel distributed processing system, and recording medium | |
CN114096953A (zh) | 内存管理方法、装置、电子设备和计算机可读介质 | |
CN111176818B (zh) | 分布式预测的方法、装置、系统、电子设备及存储介质 | |
US9244718B2 (en) | Virtual machine resource allocation based on connection time coverage exceeding a minimum threshold | |
CN105786539B (zh) | 一种文件下载方法及装置 | |
CN105404547A (zh) | 一种操作系统的融合方法及装置 | |
CN115509704A (zh) | 一种任务调度方法、装置、设备及存储介质 | |
CN109828830B (zh) | 用于管理容器的方法和装置 | |
CN111124594B (zh) | 容器运行方法、装置、异构gpu服务器及容器集群系统 | |
US20220229689A1 (en) | Virtualization platform control device, virtualization platform control method, and virtualization platform control program | |
KR101271211B1 (ko) | 다중 쓰레드의 비동기 입출력 처리 장치 및 그 방법 | |
CN114443248A (zh) | 对象的生命周期管理方法、装置、电子设备及存储介质 | |
CN115220887A (zh) | 调度信息的处理方法、任务处理系统、处理器和电子设备 | |
CN112148497A (zh) | 一种磁盘资源管理方法、装置及电子设备 | |
CN109271179B (zh) | 虚拟机应用程序管理方法、装置、设备及可读存储介质 |
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 |