CN112463375A - 一种数据处理的方法和装置 - Google Patents
一种数据处理的方法和装置 Download PDFInfo
- Publication number
- CN112463375A CN112463375A CN202011348812.7A CN202011348812A CN112463375A CN 112463375 A CN112463375 A CN 112463375A CN 202011348812 A CN202011348812 A CN 202011348812A CN 112463375 A CN112463375 A CN 112463375A
- Authority
- CN
- China
- Prior art keywords
- gpu
- target
- determining
- scheduling request
- resource information
- 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
- 238000003672 processing method Methods 0.000 title abstract description 6
- 238000000034 method Methods 0.000 claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims abstract description 22
- 230000015654 memory Effects 0.000 claims description 52
- 238000004590 computer program Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000013468 resource allocation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
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
- G06F9/5044—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 considering hardware capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种数据处理的方法和装置,所述方法包括:获取包含已被分配容器的GPU在内的多个GPU的GPU资源信息;接收GPU调度请求;根据所述GPU资源信息,从所述多个GPU中,确定目标GPU;创建针对所述目标GPU的目标容器,以处理所述GPU调度请求。通过本发明实施例实现了多卡GPU资源的共享调度,充分利用已分配容器的GPU卡的GPU资源信息,从而可以共享同一个或多个GPU卡的资源,提高了GPU资源的利用效率。
Description
技术领域
本发明涉及资源调度技术领域,特别是涉及一种数据处理的方法和装置。
背景技术
在Kubernetes集群中可以应用容器技术,在容器技术中,容器映像是一个软件的轻量级独立可执行软件包,包含运行该容器所需的一切,如代码、运行时、***工具、***库、设置等,通过容器技术可以将软件与其周围环境隔离开来,并有助于减少在同一基础架构上运行不同软件的团队之间的冲突。
Kubernetes集群所提供GPU容器调度能力,都是将一个GPU(Graphics ProcessingUnit,图形处理单元)卡直接分配给一个容器,以确保使用该GPU的应用程序不会被其他应用程序影响,从而实现了比较好的隔离性。
Kubernetes集群对于GPU的调度仅仅支持整数粒度的加减,但是,无法支持复杂资源的分配,从而,在目前Kubernetes的架构设计中,当用户请求应用程序占用非整张GPU卡的情况时,Kubernetes集群无法实现该用户请求所对应的资源分配和调用。
同时,当容器所对应的应用程序实际上并不需要占满整张卡时,一张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资源的利用效率。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种数据处理的方法的步骤流程图;
图2是本发明一实施例提供的另一种数据处理的方法的步骤流程图;
图3是本发明一实施例提供的一种资源调度流程图;
图4是本发明一实施例提供的一种数据处理的装置的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,示出了本发明一实施例提供的一种数据处理的方法的步骤流程图,具体可以包括如下步骤:
步骤101,获取包含已被分配容器的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资源。
步骤102,接收GPU调度请求;
在获取GPU资源信息之后,当用户有GPU资源调度请求时,可以向资源调度器发送一GPU调度请求,从而调度器可以接收GPU调度请求,以便根据用户需求进行资源调度。
其中,GPU调度请求中可以包括关于用户需要调度的GPU卡数,以及每张GPU卡需要满足预设条件的信息。
例如,当用户需要两张1024MiB的GPU时,可以向调度器发送对应的GPU调度请求,该GPU调度请求可以包括需要的GPU卡数为两张,每张GPU卡的显存大小为1024MiB。
步骤103,根据所述GPU资源信息,从所述多个GPU中,确定目标GPU;
在接收GPU调度请求后,可以根据GPU资源信息,从多个GPU中,确定满足用户的GPU调度请求的目标GPU。
步骤104,创建针对所述目标GPU的目标容器,以处理所述GPU调度请求。
在确定目标GPU后,可以创建该目标GPU的目标容器,从而完成资源调度,进而可以运行目标容器。
在本发明实施例中,通过获取包含已被分配容器的GPU在内的多个GPU的GPU资源信息,接收GPU调度请求;根据所述GPU资源信息,从所述多个GPU中,确定目标GPU,创建针对所述目标GPU的目标容器,以处理所述GPU调度请求,实现了多卡GPU资源的共享调度,充分利用已分配容器的GPU卡的GPU资源信息,从而可以共享同一个或多个GPU卡的资源,提高了GPU资源的利用效率。
参照图2,示出了本发明一实施例提供的另一种数据处理的方法的步骤流程图,具体可以包括如下步骤:
步骤201,获取包含已被分配容器的GPU在内的多个GPU的GPU资源信息;
步骤202,接收GPU调度请求;
步骤203,确定所述GPU调度请求对应的资源需求信息;
在接收GPU调度请求后,GPU调度请求可以有对应的资源需求信息,资源需求信息可以包括用户需要调度的GPU卡数,以及每张GPU卡需要满足的的显卡信息,从而可以确定GPU调度请求对应的资源需求信息。
例如,当用户需要两张显存大小1024MiB的GPU时,可以向调度器发送对应的GPU调度请求,该GPU调度请求对应的资源希求信息是需要的GPU卡数为两张,GPU卡的显存大小为1024MiB。
步骤204,根据所述GPU资源信息和所述资源需求信息,从目标集群的多个计算节点中,确定目标计算节点;
在确定资源需求信息之后,从GPU资源信息可以得知可以用的GPU资源,从而资源需求信息可以得知用户需要的GPU资源。
在目标集群中可以包含多个计算节点,每一计算节点上包含一个或多个GPU,进而,可以根据GPU资源信息和资源需求信息,从目标集群中的多个计算节点中,确定目标计算节点。
在本发明一实施例中,所述根据所述GPU资源信息和所述资源需求信息,从目标集群的多个计算节点中,确定目标计算节点,包括:
根据所述GPU资源信息,分别确定所述目标集群的多个计算节点的节点资源信息;根据所述节点资源信息和所述资源需求信息,从目标集群的多个计算节点中,确定目标计算节点。
在实际应用中,GPU资源信息包括了GPU的可用显存,进而,可以知道目标集群中每个计算节点上GPU对应的GPU资源信息,从而可以确定多个计算节点的节点资源信息,进而,可以根据节点资源信息和资源需求信息,从目标集群的多个计算节点中,确定目标计算节点,其中,目标计算节点为其节点资源信息可以满足资源需求信息的计算节点。
例如:目标集群中有三个计算节点,分别命名为N1、N2、N3。其资源配置情况如下:
N1:1张GPU卡,每张卡显存为2048MiB,目前每张卡剩余显存均为2048MiB。
N2:2张GPU卡,每张卡显存为2048MiB,目前一张卡剩余显存为0,另一张卡剩余显存为2048MiB。
N3:2张GPU卡,每张卡显存为1024MiB,目前每张卡剩余显存均为1024MiB。
用户申请2张GPU卡,并且每张卡显存要求为1024MiB,总显存申请数量为2048MiB。
N1:N1能满足用户申请的总显存数量,但是因为用户要求是两张卡,因此N1不能满足要求。
N2:N2能满足用户申请的2张GPU卡的数量,所剩余的总显存数量也能满足,但是不能满足每张卡要求的显存数量,因为N2不能满足要求。
N3:N3能满足用户所要求的所有要求,因此,最终选择N3作为目标计算节点。
步骤205,从所述目标计算节点中,确定目标GPU。
在本发明一实施例中,所述从所述目标计算节点中,确定目标GPU,包括:
从所述目标计算节点中,确定所述GPU资源信息与所述资源需求信息匹配的候选GPU;按照所述GPU资源信息,从所述候选GPU中,确定目标GPU。
在确定目标计算节点后,目标计算节点中可以包含一组满足资源需求信息的GPU,进而可以,在目标计算节点中,将该目标计算节点的每个GPU的GPU资源信息与用户请求所对应的资源需求信息进行匹配,匹配成功的GPU可以作为候选GPU,进而,可以根据候选GPU的GPU资源信息,从候选GPU中确定目标GPU。
在一示例中,GPU资源信息中包括剩余显存数量,进而可以根据剩余显存数量,将剩余显存数量最小的一个或多个候选GPU作为目标GPU。
通过选择剩余显存数量小的候选GPU作为目标GPU,在满足资源要求的情况下,可以充分利用未分配的显存,达到显存的利用率最大化。
步骤206,创建针对所述目标GPU的目标容器,以处理所述GPU调度请求。
在确定目标GPU后,可以创建针对目标GPU的目标容器,目标容器可以依照GUP调用请求享用目标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资源的利用效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
以下结合图3对本发明进行示例性说明:
如图3所示,为Kubernetes集群中GPU资源调度的过程,Kubernetes集群中可以包括共享GPU设备插件、Kubelet组件、Kubernetes调度器、共享GPU调度扩展,其中,GPU设备插件、Kubelet组件属于计算节点中的模块。
Kubernetes:是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。
GPU共享调度扩展:利用Kubernetes的调度器扩展机制,负责在Kubernetes调度器的Filter(过滤筛选)和Bind(绑定)的过程中,判断计算节点上是否能提供足够的GPU资源,并且在Bind的时候将GPU的分配结果通过Annotation(注解)记录到POD(容器组)中,以供后续Filter检查分配结果。
GPU共享设备插件:利用Kubernetes的设备插件机制,在计算节点上被Kubelet调用,负责多卡GPU的资源上报,同时依赖GPU共享调度扩展的分配结果,执行最终的资源分配与绑定。
Kubelet组件:每个计算节点上都运行一个Kubelet服务进程,默认监听端口,接收并执行相应指令,管理Pod及Pod中的容器。每个Kubelet进程会在API Server上注册所在计算节点的信息,注册信息包括主机名、覆盖主机名的参数、某云服务商的特定逻辑;定期向Master节点汇报该节点的资源使用情况,并监控计算节点和容器的资源。
Kubernetes调度器:主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将Pod调度到最优的工作节点上面去,从而更加合理、更加充分的利用集群的资源。
Kubernetes API Server:提供了Kubernetes各类资源对象(Pod、RC(ReplicationController、副本控制器)、Service等)的增删改查及watch等HTTP Rest接口,是整个集群***的数据总线和数据中心。
Pod是Kubernetes中能够创建和部署的最小单元,是Kubernetes集群中的一个应用实例,部署在同一个计算节点上。Pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。Pod可以支持多种容器环境,其中,Docker是一种常见的容器环境。
某计算节点上,有2张GPU卡,显存大小均为16276MiB,GPUID分别为GPU0、GPU1。
1.资源上报:GPU共享设备插件利用指定管理库查询到当前计算节点上的GPU卡的数量和每张GPU卡的显存大小,通过ListAndWatch()将节点的GPU卡数量(2张)、每张GPU卡的显存大小(16276MiB)以及合并多卡后的总显存大小(32552MiB)作为扩展资源汇报给Kubelet组件;
2、Kubelet组件可以进一步汇报给Kubernetes API Server;
3、用户发送GPU资源调度请求(请求1张显存大小为8138MiB的GPU卡),如果Kubernetes API Server确定所有计算节点没有GPU资源或者GPU资源不足,则不接受该请求;当确定有足够的GPU资源时,则接受该请求,并将对应请求发送至Kubernetes调度器处理,同时根据GPU资源调度请求生成Pod容器组信息;
4、Kubernetes调度器根据GPU资源调度请求,通过HTTP的方式调用GPU共享调度扩展的Filter(过滤)方法。从而可以根据每一个计算节点的GPU资源上报情况以及GPU使用情况来筛选出合适的计算节点。
其中,GPU资源上报的数据由GPU共享设备插件提供,可以确定计算节点有多少张卡,每张卡的显存大小;GPU资源的使用情况可以根据通过Annotation(注解)记录到POD中的信息确定,从而计算出剩余的每张显卡的显存数量。
5、在过滤得到的计算节点中确定目标计算节点,并执行容器组信息与目标计算节点的绑定;
6、同时,在目标计算节点上确定目标GPU,并获取GPU的标识信息,此处的目标GPU为GPU0,将被选中GPU的GPU ID,写入到POD的annotation中;
7、共享GPU设备插件查询annotation,获取GPU ID;
8、当Pod和计算节点绑定的事件被Kubelet组件接收到之后,kubelet就会在节点上创建真正的POD实体,Kubelet组件会调用GPU共享设备插件的Allocate方法,在Allocate方法中GPU共享设备插件会将所分配的多个GPU ID写入到POD实体的环境变量中;
9、Kubelet组件在Pod实体中创建针对GPU0的目标容器,该目标容器可以仅占用GPU0中8138MiB大小的显存。
参照图4,示出了本发明一实施例提供的一种数据处理的装置的结构示意图,具体可以包括如下模块:
GPU资源信息获取模块401,用于获取包含已被分配容器的GPU在内的多个GPU的GPU资源信息;
GPU调度请求接收模块402,用于接收GPU调度请求;
目标GPU确定模块403,用于根据所述GPU资源信息,从所述多个GPU中,确定目标GPU;
目标容器创建模块404,创建针对所述目标GPU的目标容器,以处理所述GPU调度请求。
在本发明一实施例中,所述GPU资源信息为GPU的可用显存信息。
在本发明一实施例中,所述目标GPU确定模块403可以包括:
资源需求信息确定子模块,用于确定所述GPU调度请求对应的资源需求信息;
目标计算节点确定子模块,用于根据所述GPU资源信息和所述资源需求信息,从目标集群的多个计算节点中,确定目标计算节点;
目标GPU确定子模块,用于从所述目标计算节点中,确定目标GPU。
在本发明一实施例中,所述目标计算节点确定子模块可以包括:
节点资源信息确定单元,用于根据所述GPU资源信息,分别确定所述目标集群的多个计算节点的节点资源信息;
目标计算节点确定单元,用于根据所述节点资源信息和所述资源需求信息,从目标集群的多个计算节点中,确定目标计算节点。
在本发明一实施例中,目标GPU确定子模块可以包括:
候选GPU确定单元,用于从所述目标计算节点中,确定所述GPU资源信息与所述资源需求信息匹配的候选GPU;
目标GPU确定单元,用于按照所述GPU资源信息,从所述候选GPU中,确定目标GPU。
在本发明一实施例中,所述目标容器创建模块404包括:
容器组实体创建子模块,用于创建针对所述GPU调度请求的容器组实体;
目标GPU标识确定子模块,用于确定所述目标GPU的目标GPU标识;
环境变量更新子模块,用于将所述目标GPU标识更新至所述容器组实体的环境变量;
目标容器创建子模块,用于根据所述环境变量,创建针对所述目标GPU的目标容器。
在本发明一实施例中,容器组实体创建子模块可以包括:
容器组信息生成单元,用于生成所述GPU调度请求对应的容器组信息;
绑定关系建立单元,用于建立所述容器组信息与所述目标计算节点的绑定关系;
容器组实体创建单元,用于根据所述绑定关系,创建针对所述GPU调度请求的容器组实体。
本发明一实施例还提供了一种服务器,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上数据处理的方法的步骤。
本发明一实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上数据处理的方法的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对所提供的一种数据处理的方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据处理的方法,其特征在于,所述方法包括:
获取包含已被分配容器的GPU在内的多个GPU的GPU资源信息;
接收GPU调度请求;
根据所述GPU资源信息,从所述多个GPU中,确定目标GPU;
创建针对所述目标GPU的目标容器,以处理所述GPU调度请求。
2.根据权利要求1所述的方法,其特征在于,所述根据所述GPU资源信息,从所述多个GPU中,确定目标GPU,包括:
确定所述GPU调度请求对应的资源需求信息;
根据所述GPU资源信息和所述资源需求信息,从目标集群的多个计算节点中,确定目标计算节点;
从所述目标计算节点中,确定目标GPU。
3.根据权利要求2所述的方法,其特征在于,所述根据所述GPU资源信息和所述资源需求信息,从目标集群的多个计算节点中,确定目标计算节点,包括:
根据所述GPU资源信息,分别确定所述目标集群的多个计算节点的节点资源信息;
根据所述节点资源信息和所述资源需求信息,从目标集群的多个计算节点中,确定目标计算节点。
4.根据权利要求2或3所述的方法,其特征在于,所述从所述目标计算节点中,确定目标GPU,包括:
从所述目标计算节点中,确定所述GPU资源信息与所述资源需求信息匹配的候选GPU;
按照所述GPU资源信息,从所述候选GPU中,确定目标GPU。
5.根据权利要求2或3所述的方法,其特征在于,所述创建针对所述目标GPU的目标容器,以处理所述GPU调度请求,包括:
创建针对所述GPU调度请求的容器组实体;
确定所述目标GPU的目标GPU标识;
将所述目标GPU标识更新至所述容器组实体的环境变量;
根据所述环境变量,创建针对所述目标GPU的目标容器。
6.根据权利要求5所述的方法,其特征在于,所述创建针对所述GPU调度请求的容器组实体,包括:
生成所述GPU调度请求对应的容器组信息;
建立所述容器组信息与所述目标计算节点的绑定关系;
根据所述绑定关系,创建针对所述GPU调度请求的容器组实体。
7.根据权利要求1所述的方法,其特征在于,所述GPU资源信息为GPU的可用显存信息。
8.一种数据处理的装置,其特征在于,所述装置包括:
GPU资源信息获取模块,用于获取包含已被分配容器的GPU在内的多个GPU的GPU资源信息;
GPU调度请求接收模块,用于接收GPU调度请求;
目标GPU确定模块,用于根据所述GPU资源信息,从所述多个GPU中,确定目标GPU;
目标容器创建模块,创建针对所述目标GPU的目标容器,以处理所述GPU调度请求。
9.一种服务器,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据处理的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据处理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011348812.7A CN112463375A (zh) | 2020-11-26 | 2020-11-26 | 一种数据处理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011348812.7A CN112463375A (zh) | 2020-11-26 | 2020-11-26 | 一种数据处理的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112463375A true CN112463375A (zh) | 2021-03-09 |
Family
ID=74808627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011348812.7A Pending CN112463375A (zh) | 2020-11-26 | 2020-11-26 | 一种数据处理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463375A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110938A (zh) * | 2021-05-08 | 2021-07-13 | 网易(杭州)网络有限公司 | 一种资源分配方法、装置、计算机设备及存储介质 |
CN113127192A (zh) * | 2021-03-12 | 2021-07-16 | 山东英信计算机技术有限公司 | 一种多个服务共享同一个gpu的方法、***、设备及介质 |
CN113626134A (zh) * | 2021-06-29 | 2021-11-09 | 广东浪潮智慧计算技术有限公司 | 一种资源复制方法、装置、设备以及计算机可读存储介质 |
CN114675976A (zh) * | 2022-05-26 | 2022-06-28 | 深圳前海环融联易信息科技服务有限公司 | 基于kubernetes的GPU共享方法、装置、设备及介质 |
CN114706690A (zh) * | 2022-06-06 | 2022-07-05 | 浪潮通信技术有限公司 | 一种Kubernetes容器共享GPU方法及*** |
CN115460075A (zh) * | 2022-09-14 | 2022-12-09 | 深圳前海环融联易信息科技服务有限公司 | 基于云原生的多网络模式实现方法、装置、设备及介质 |
CN116258622A (zh) * | 2023-02-16 | 2023-06-13 | 青软创新科技集团股份有限公司 | 一种基于容器的gpu分配方法、装置、电子设备和介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3376361A2 (en) * | 2017-10-19 | 2018-09-19 | Pure Storage, Inc. | Ensuring reproducibility in an artificial intelligence infrastructure |
US10109030B1 (en) * | 2016-12-27 | 2018-10-23 | EMC IP Holding Company LLC | Queue-based GPU virtualization and management system |
CN109144734A (zh) * | 2018-09-12 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种容器资源配额分配方法和装置 |
CN109376009A (zh) * | 2018-09-26 | 2019-02-22 | 郑州云海信息技术有限公司 | 一种共享资源的方法及装置 |
US10275851B1 (en) * | 2017-04-25 | 2019-04-30 | EMC IP Holding Company LLC | Checkpointing for GPU-as-a-service in cloud computing environment |
CN110457135A (zh) * | 2019-08-09 | 2019-11-15 | 重庆紫光华山智安科技有限公司 | 一种资源调度方法、装置及共享gpu显存的方法 |
CN110688218A (zh) * | 2019-09-05 | 2020-01-14 | 广东浪潮大数据研究有限公司 | 资源调度方法及装置 |
CN110941481A (zh) * | 2019-10-22 | 2020-03-31 | 华为技术有限公司 | 资源调度方法、装置及*** |
CN111475277A (zh) * | 2019-01-23 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 一种资源分配方法、***、设备及机器可读存储介质 |
CN111506404A (zh) * | 2020-04-07 | 2020-08-07 | 上海德拓信息技术股份有限公司 | 一种基于Kubernetes的共享GPU调度方法 |
CN111880936A (zh) * | 2020-07-31 | 2020-11-03 | 广州华多网络科技有限公司 | 资源调度方法、装置、容器集群、计算机设备和存储介质 |
-
2020
- 2020-11-26 CN CN202011348812.7A patent/CN112463375A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10109030B1 (en) * | 2016-12-27 | 2018-10-23 | EMC IP Holding Company LLC | Queue-based GPU virtualization and management system |
US10275851B1 (en) * | 2017-04-25 | 2019-04-30 | EMC IP Holding Company LLC | Checkpointing for GPU-as-a-service in cloud computing environment |
EP3376361A2 (en) * | 2017-10-19 | 2018-09-19 | Pure Storage, Inc. | Ensuring reproducibility in an artificial intelligence infrastructure |
CN109144734A (zh) * | 2018-09-12 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种容器资源配额分配方法和装置 |
CN109376009A (zh) * | 2018-09-26 | 2019-02-22 | 郑州云海信息技术有限公司 | 一种共享资源的方法及装置 |
CN111475277A (zh) * | 2019-01-23 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 一种资源分配方法、***、设备及机器可读存储介质 |
CN110457135A (zh) * | 2019-08-09 | 2019-11-15 | 重庆紫光华山智安科技有限公司 | 一种资源调度方法、装置及共享gpu显存的方法 |
CN110688218A (zh) * | 2019-09-05 | 2020-01-14 | 广东浪潮大数据研究有限公司 | 资源调度方法及装置 |
CN110941481A (zh) * | 2019-10-22 | 2020-03-31 | 华为技术有限公司 | 资源调度方法、装置及*** |
CN111506404A (zh) * | 2020-04-07 | 2020-08-07 | 上海德拓信息技术股份有限公司 | 一种基于Kubernetes的共享GPU调度方法 |
CN111880936A (zh) * | 2020-07-31 | 2020-11-03 | 广州华多网络科技有限公司 | 资源调度方法、装置、容器集群、计算机设备和存储介质 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127192A (zh) * | 2021-03-12 | 2021-07-16 | 山东英信计算机技术有限公司 | 一种多个服务共享同一个gpu的方法、***、设备及介质 |
WO2022188578A1 (zh) * | 2021-03-12 | 2022-09-15 | 山东英信计算机技术有限公司 | 一种多个服务共享同一个gpu的方法、***、设备及介质 |
CN113127192B (zh) * | 2021-03-12 | 2023-02-28 | 山东英信计算机技术有限公司 | 一种多个服务共享同一个gpu的方法、***、设备及介质 |
CN113110938A (zh) * | 2021-05-08 | 2021-07-13 | 网易(杭州)网络有限公司 | 一种资源分配方法、装置、计算机设备及存储介质 |
CN113110938B (zh) * | 2021-05-08 | 2023-08-29 | 网易(杭州)网络有限公司 | 一种资源分配方法、装置、计算机设备及存储介质 |
CN113626134A (zh) * | 2021-06-29 | 2021-11-09 | 广东浪潮智慧计算技术有限公司 | 一种资源复制方法、装置、设备以及计算机可读存储介质 |
CN113626134B (zh) * | 2021-06-29 | 2024-02-13 | 广东浪潮智慧计算技术有限公司 | 一种资源复制方法、装置、设备以及计算机可读存储介质 |
CN114675976A (zh) * | 2022-05-26 | 2022-06-28 | 深圳前海环融联易信息科技服务有限公司 | 基于kubernetes的GPU共享方法、装置、设备及介质 |
CN114706690A (zh) * | 2022-06-06 | 2022-07-05 | 浪潮通信技术有限公司 | 一种Kubernetes容器共享GPU方法及*** |
CN115460075A (zh) * | 2022-09-14 | 2022-12-09 | 深圳前海环融联易信息科技服务有限公司 | 基于云原生的多网络模式实现方法、装置、设备及介质 |
CN116258622A (zh) * | 2023-02-16 | 2023-06-13 | 青软创新科技集团股份有限公司 | 一种基于容器的gpu分配方法、装置、电子设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112463375A (zh) | 一种数据处理的方法和装置 | |
CN110647394B (zh) | 一种资源分配方法、装置及设备 | |
US11467874B2 (en) | System and method for resource management | |
CN108282514B (zh) | 一种分布式业务建立方法及装置 | |
CN101652750B (zh) | 数据处理装置、分散处理***、数据处理方法 | |
CN111309440B (zh) | 一种多类型gpu的管理调度的方法和设备 | |
CN111880936A (zh) | 资源调度方法、装置、容器集群、计算机设备和存储介质 | |
CN113419846B (zh) | 资源配置方法和装置、电子设备及计算机可读存储介质 | |
CN113645262A (zh) | 云计算服务***和方法 | |
CN112540841A (zh) | 任务调度的方法、装置、处理器与电子设备 | |
CN112202829A (zh) | 基于微服务的社交机器人调度***和调度方法 | |
CN113674131A (zh) | 硬件加速器设备管理方法、装置及电子设备和存储介质 | |
CN113961335A (zh) | 资源调度方法、资源调度***及设备 | |
CN114706690B (zh) | 一种Kubernetes容器共享GPU方法及*** | |
CN111381957A (zh) | 面向分布式平台的服务实例精细化调度方法及*** | |
CN112261125B (zh) | 集中单元的云化部署方法、装置及*** | |
CN113835897A (zh) | 一种在分布式计算集群Kubernetes上对GPU资源进行分配使用的方法 | |
CN112866321B (zh) | 一种资源调度方法、装置和*** | |
CN113760499A (zh) | 调度计算单元的方法、装置、计算设备及介质 | |
CN112148458A (zh) | 任务调度方法、装置 | |
CN110795202B (zh) | 一种虚拟化集群资源管理***的资源分配方法以及装置 | |
CN111475277A (zh) | 一种资源分配方法、***、设备及机器可读存储介质 | |
CN111796934B (zh) | 任务下发方法、装置、存储介质和电子设备 | |
CN115328608A (zh) | 一种Kubernetes容器垂直伸缩调节方法和装置 | |
CN112114959B (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 |