CN113568758B - Gpu资源池化方法、系统、设备及计算机可读存储介质 - Google Patents
Gpu资源池化方法、系统、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113568758B CN113568758B CN202111111678.3A CN202111111678A CN113568758B CN 113568758 B CN113568758 B CN 113568758B CN 202111111678 A CN202111111678 A CN 202111111678A CN 113568758 B CN113568758 B CN 113568758B
- Authority
- CN
- China
- Prior art keywords
- resource
- gpu
- development environment
- environment space
- role
- 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
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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种GPU资源池化方法、系统、设备及计算机可读存储介质,所述方法包括:接收资源需求方发送的角色资源请求,并从资源提供方获取GPU资源;依据所述角色资源请求匹配开发环境空间;根据所述开发环境空间分配所述GPU资源至所述资源需求方。通过角色资源请求来匹配开发环境空间,使开发环境空间满足资源需求方的实际资源需求,避免资源需求方GPU资源的短缺或闲置,提高GPU资源分配的准确性,进而根据该开发环境空间分配GPU资源,准确调度从资源提供方获取的GPU资源,提高GPU资源的分配的合理性,实现开发机中固定GPU资源的共享,极大地提升了每台开发机的GPU资源利用率,降低了开发成本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种GPU资源池化方法、系统、设备及计算机可读存储介质。
背景技术
随着互联网行业的高速发展,算法开发工程师在进行开发工作时对于开发机的工作性能有着越来越高的要求。在目前的大部分企业中,在开发工程师入职时就会配备一台具有高性能的开发机,开发工程师针对开发的项目安装相关语言的开发环境和对应的算法框架。其中,高性能开发机中的GPU价格昂贵,在实际开发过程中,每位开发工程师分别具有一台高性能的开发机,但每一台开发机的开发机资源尤其是GPU资源的利用率是极低的,不对GPU资源进行合理使用,将极大的浪费价格昂贵的算力资源,增加开发成本。
发明内容
本发明的主要目的在于提供一种GPU资源池化方法、系统、设备及计算机可读存储介质。旨在解决如何提升计算机GPU利用率的问题。
为实现上述目的,本发明提供一种GPU资源池化方法,包括如下步骤:
接收资源需求方发送的角色资源请求,并从资源提供方获取GPU资源;
依据所述角色资源请求匹配开发环境空间;
根据所述开发环境空间分配所述GPU资源至所述资源需求方。
可选地,所述依据所述角色资源请求匹配开发环境空间的步骤包括:
将所述角色资源请求中的角色资源参数加入预设项目对应的初始启动参数中,得到目标启动参数;
按照所述目标启动参数匹配开发环境空间。
可选地,所述从资源提供方获取GPU资源的步骤包括:
获取资源提供方的GPU编码,并生成所述GPU编码对应的授权码;
依据所述授权码,通过AI计算平台获取所述资源提供方对应的GPU资源。
可选地,所述依据所述授权码,通过AI计算平台获取所述资源提供方对应的GPU资源的步骤包括:
将所述授权码录入至所述AI计算平台;
依据所述授权码调度所述AI计算平台中的管理节点;
通过所述管理节点收集所述授权码对应的资源提供方中的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为本发明GPU资源池化方法第一实施例的流程示意图;
图3为本发明一实施例项目成员资源参数应用场景示意图;
图4为本发明一实施例文件存储目录示意图;
图5为本发明一实施例的在线开发系统功能模块结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
如图1所示,该为设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选的用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备的结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及GPU资源池化程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的GPU资源池化程序,并执行以下操作:
接收资源需求方发送的角色资源请求,并从资源提供方获取GPU资源;
依据所述角色资源请求匹配开发环境空间;
根据所述开发环境空间分配所述GPU资源至所述资源需求方。
本发明应用于设备的具体实施例与下述应用GPU资源池化方法的各实施例基本相同,在此不作赘述。
请参照图2,图2为本发明GPU资源池化方法第一实施例的流程示意图,其中,所述GPU资源池化方法包括如下步骤:
步骤S100,接收资源需求方发送的角色资源请求,并从资源提供方获取GPU资源;
GPU(graphics processing unit,图形处理器),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。GPU资源是GPU在计算机工作时可以为计算机提供运算能力的资源。
在本实施例中,需要说明的是,本实施例应用场景包括一个或多个资源需求方以及一个或多个资源提供方,该资源需求方并不需要与资源提供方一一对应,即某一资源需求方可以从任一资源提供方获取GPU资源,某一资源提供方也可以提供GPU资源给任一资源需求方。同时,资源需求方与资源提供方并不固定,其数量是可以变化的。
资源需求方是指需要获取GPU资源的对象,通过资源需求方发起需要获取GPU资源的请求,资源需求方可以为单个需求对象,也可以为多个需求对象,例如,需要获取GPU资源的某个开发项目、某个开发项目中需要获取GPU资源的多个项目成员。角色资源请求是来自于资源需求方的对于GPU资源的请求,其中,该角色资源请求用于触发GPU资源的调度,角色资源请求包括对应资源需求大小的参数、资源需求的类型、资源需求的方式。资源提供方提供GPU资源的对象,是GPU资源的来源,用于给需要GPU资源的对象提供GPU资源,该资源提供方可以为系统当前的物理机或服务器,也可以为远程连接的物理机或服务器。
具体地,接收资源需求方发送的角色资源请求,并从资源提供方获取GPU资源,其中,需要说明的是,接收资源需求方发送的角色资源请求与从资源提供方获取GPU资源并不存在先后顺序的限制,可以是先接收角色资源请求,再获取GPU资源,也可以是先获取GPU资源,再接收角色资源请求,还可以是二者同时进行。
步骤S200,依据所述角色资源请求匹配开发环境空间;
在本实施例中,开发环境空间是指资源需求方在进行开发工作时需要的环境空间,该开发环境空间给资源需求方提供进行开发工作时所需要的运行环境,依据所述角色资源请求匹配开发环境空间,为依据该角色资源请求所对应的资源需求,匹配满足该需求的开发环境空间。
具体地,角色资源请求所对应的资源需求可以包括资源需求大小对应的需求参数、资源需求的类型、资源需求的方式,依据所述角色资源请求匹配开发环境空间,可以是依据该需求参数、资源需求的类型、资源需求的方式中的至少一个来匹配开发环境空间,例如,依据资源需求大小对应的需求参数,为所述资源需求方匹配满足该资源需求大小的开发环境空间。
本实施例中,开发环境空间还包括有开发语言版本信息、开发环境信息、算法框架版本信息等开发环境空间标识信息,在预设项目中的项目成员可以依据不同的开发需求,选择具有不同开发环境空间标识的开发环境空间,以实现不同的开发目的和满足不同开发习惯。管理员预先根据不同的开发语言版本、开发环境、算法框架版本建立不同的开发环境空间,将该不同开发环境空间上传至预先设置的已建立连接的仓库中。
角色资源请求中包括有开发语言版本标识、开发环境标识、以及算法框架标识,在接收到资源需求方的角色资源请求后,解析获取该角色资源请求中的各标识信息,将该标识信息作为索引信息,检索预设仓库中的开发环境空间信息,查找与该标识信息对应的开发环境空间,将查找到的开发环境空间作为匹配结果。在一实施例中,管理人员预将设共享存储目录中的不同的模型文件与不同的开发环境空间关联起来,在开发人员进行开发时,可在预设共享存储目录中查找需要模型文件,根据选择的模型文件,确定对应的开发环境空间。
步骤S300,根据所述开发环境空间分配所述GPU资源至所述资源需求方。
本实施例中,分配GPU资源,具体为对获取到的GPU资源进行分割和隔离后,将该分割隔离后的GPU资源进行分配。其中,该分割隔离可以为依据具体的GPU资源需求进行分割隔离,也可以为预先设置GPU资源阈值,按照该GPU资源阈值进行分割隔离等方式。开发环境空间为根据角色资源请求匹配的,其中包含了资源需求方对于GPU资源的具体需求,根据开发环境空间分配GPU资源至资源需求方,具体为根据该具体需求分配分割隔离后的GPU资源至资源需求方。
本发明实施例中,首先接收资源需求方发送的角色资源请求,以及从资源提供方获取GPU资源;进而根据该角色资源请求匹配开发环境空间;进而根据开发环境空间分配该GPU资源至资源需求方。通过角色资源请求来匹配开发环境空间,使开发环境空间满足资源需求方的实际资源需求,避免资源需求方GPU资源的短缺或闲置,提高GPU资源分配的准确性,进而根据该开发环境空间分配GPU资源,准确调度从资源提供方获取的GPU资源,提高GPU资源的分配的合理性,实现开发机中固定GPU资源的共享,极大地提升了每台开发机的GPU资源利用率,降低了开发成本。
进一步地,基于本发明GPU资源池化方法第一实施例,提出本发明GPU资源池化方法第二实施例,所述步骤S200,依据所述角色资源请求匹配开发环境空间的细化,包括:
步骤a,将所述角色资源请求中的角色资源参数加入预设项目对应的初始启动参数中,得到目标启动参数;
本实施例中,需要说明的是,角色资源请求中包含有角色资源参数,该角色资源参数为资源需求方具体所需的资源类型以及资源大小的峰值,其为资源提供方提供资源反馈的类型以及大小的标准。该角色资源参数的获取方式可以是通过弹窗显示可提供资源的类型,获取键盘输入的对应资源类型大小的数值;也可以是弹窗显示可提供资源的类型以及大小,获取鼠标点击选择的结果;预设项目为开发人员应用GPU资源池化方法进行项目开发的项目,该预设项目可以包括有项目名称、项目资源(包括GPU资源、CPU资源、内存资源、存储资源)、人员管理(包括序号、账户、姓名、角色、可用容器资源、所述部门、创建时间、参与截止时间、对应操作)、使用时间、等项目特征信息。
本实施例中,需要说明的是,资源需求方是指预设项目中的项目成员,每个项目成员在预设项目中担任对应的成员角色,例如,测试工程师、开发工程师等预设项目中所需的角色。角色资源请求即为该项目成员所对应的角色为资源需求所发出的请求。角色资源参数即为该角色具体所需的资源类型以及资源大小的峰值。其中,资源类型可以为GPU、CPU、内存以及存储空间等计算机资源。预设项目对应的初始启动参数是指该预设项目下各个项目成员开发环境所对应的的最初的启动参数,开发环境在启动之前需要确定目标启动参数,目标启动参数为各项目成员依据实际需求,确定角色资源参数后,在启动参数中并入角色资源参数,得到目标启动参数,各项目成员的开发环境将依据该目标启动参数启动,以限定项目成员的开发环境空间的大小。参考图3,某个开发项目的项目成员在弹窗显示角色名称、可提供资源的类型为GPU数量、CPU数量、最大内存以及存储空间时,通过件键盘对应输入GPU数量为不超过50core、CPU数量为不超过100core、最大内存不超过1000GB、存储空间为不超过5000GB。
本实施例中,需要说明的是,角色资源参数为资源需求方具体所需的资源类型以及资源大小的峰值,即该资源需求方获取到该角色资源参数对应的资源不会超过该角色资源参数中对应的资源需求数值。在创建预设项目时,需要确定项目资源参数,该项目资源参数中资源需求的具体数值为该预设项目下各项目成员对应的角色资源参数中资源需求的具体数值的总和。在项目成员在进行角色资源参数输入时,若该角色资源参数中的资源需求对应的数值超过该预设项目下的剩余项目资源参数中的资源需求对应的数值时,该角色资源参数将输入失败,需评估项目资源参数中的剩余值后重新输入。
将角色资源请求中的角色资源参数加入预设项目对应的初始启动参数中,得到目标启动参数。具体的,解析角色资源请求,得到资源需求方输入的角色资源参数,获取预设项目对应的初始启动参数,将该角色资源参数加入到该初始启动参数中,得到结合该角色资源参数后的目标启动参数。
本实施中,通过构建Kubernetes集群,实现物理机或服务器中CPU、内存、存储空间等计算机资源的共享,通过角色资源参数输入CPU、内存、存储空间的需求峰值,根据该角色资源参数分配对应的CPU、内存、存储空间资源。
步骤b,按照所述目标启动参数匹配开发环境空间。
确定目标启动参数后,匹配该目标启动参数对应的开发环境空间,也即匹配满足该目标启动参数中角色资源参数对应的资源需求的开发环境空间。
通过项目成员输入的角色资源参数限定目标启动参数,从而限定开发环境空间,可以在满足项目成员的资源需求的前提下,最大化的利用资源,减少资源浪费,降低开发成本。
进一步地,从资源提供方获取GPU资源的步骤包括:
步骤c,获取资源提供方的GPU编码,并生成所述GPU编码对应的授权码;
步骤d,依据所述授权码,通过AI计算平台获取所述资源提供方对应的GPU资源。
本实施例中,资源提供方提供GPU资源,在获取到该GPU资源之前需要连接到该资源提供方的GPU,读取该资源提供方中GPU的GPU编码,并依据该编码生成对应的授权码。其中,授权码的生成方式可以通过授权码生成器生成,也可以预先设置授权码生成算法,通过该算法生成等授权码生成方式。AI计算平台为具体实现GPU资源调度的模块,在确定授权码后,AI计算平台将依据该授权码找到对应的资源提供方中的GPU,从而通过AI计算平台获取该GPU资源。可以理解的是,资源提供方可以包括多个具有GPU资源的物理节点,即,该授权码可以有多个。
通过确定授权码,获取对应的GPU资源,可以准确快速的调用GPU资源,提升GPU资源调度的准确性。
进一步地,依据所述授权码,通过AI计算平台获取所述资源提供方对应的GPU资源的步骤包括:
步骤e,将所述授权码录入至所述AI计算平台;
步骤f,依据所述授权码调度所述AI计算平台中的管理节点;
步骤g,通过所述管理节点收集所述授权码对应的资源提供方中的GPU资源。
在确定授权码后,将该授权码录入到AI计算平台中,该AI计算平台包括有管理节点,在接收到GPU资源请求后,AI计算平台将调度管理节点收集所录入的授权码所对应的物理节点中的GPU资源。其中,物理节点可以为当前系统中物理机,或者服务器。在存在多个物理节点的GPU时,录入该多个GPU中的GPU授权码。在接收到资源请求时,收集所有该所有GPU授权码对应的空闲的GPU资源。
在一种可实施的方式中,应用Kubernetes技术,开发环境空间运行于预先搭建的Kubernetes集群上。Kubernetes,简称K8s,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。运维人员预先是通过rancher或手动的方式搭建Kubernetes集群,并在该Kubernetes集群上部署AI计算平台,本实施例中,AI计算平台应用OrionX技术实现GPU资源的调度,具体为:OrionX包括有多个组件,其中,在Kubernetes集群上部署OrionX Controller,OrionX Controller是 GPU 资源池的核心管理调度模块,其他所有 OrionX 的功能组件都直接或者间接通过网络连接到OrionXController,并与其保持信息同步。为了实现 OrionX GPU 资源池的统一管理以及资源调度,节点 IP 地址、物理 GPU 信息、虚拟 GPU 信息以及应用任务信息等都会汇总至该组件。在Kubernetes集群上部署OrionX Server Service,OrionX Server Service发现并管理物理节点上的GPU资源,同时把物理GPU的计算能力通过 OrionX 的高性能私有协议提供给数据中心内的各个物理节点,以及各个物理节点上的虚拟机、容器。也即,依据所述授权码,通过AI计算平台获取所述资源提供方对应的GPU资源具体为,将授权码录入至OrionXController中,当监测到GPU资源需求的请求后,OrionX Controller调度OrionX ServerService收集该授权码对应的物理节点中的GPU资源,OrionX Server Service收集到GPU资源后上报到OrionX Controller,给OrionX Controller实现GPU资源池的管理和调度资源提供GPU资源。
通过AI计算平台,获取对应的GPU资源,实现GPU资源的收集与管理,为GPU资源池化提供CPU资源基础,提升GPU资源池化的效率。
进一步地,根据所述开发环境空间分配所述GPU资源至所述资源需求方的步骤包括:
步骤h,判断所述GPU资源是否满足所述开发环境空间对应的资源需求;
从获取资源提供方获取到GPU资源后,通过将该GPU资源对应的数量与资源需求方发出的角色资源请求中GPU资源需求对应的数量进行比对,判断资源提供方当前的GPU资源是否能够满足该角色资源请求所对应的资源需求方的开发环境空间中GPU需求。
步骤i,若是,则按照所述资源需求分配所述GPU资源至所述资源需求方。
在当前获取的GPU资源满足开发环境空间对应的资源需求时,按照该开发环境空间所对应的资源需求分配GPU资源至资源需求方。
一种可实施的方式中,通过在Kubernetes集群中部署OrionX Client Runtime,该OrionX Client Runtime中集成大量的CUDA接口,通过该CUDA接口与GPU进行交互,即资源需求方在分配到GPU资源后,可以通过OrionX Client Runtime中集成的CUDA接口调用GPU资源,以利用该GPU的计算能力。本实施例中,将开发环境空间打包在OrionX ClientRuntime的基础镜像包上,生成一个新的镜像包,资源需求方在运行开发环境时,需要获取GPU资源时,可直接通过OrionX Client Runtime调用到GPU资源。在一可实施的方式中,使用Docker构建多个配置好的Python环境,算法框架版本,并安装好Jupyter,上传到搭建的Harbor仓库,使用k8s-client java库与Kubernetes集群交互,在Harbor仓库中拉取镜像到pod中,通过Service定义一组Pod的策略的抽象,通过Ingress给Service提供集群外部访问的URL、负载均衡、SSL终止、HTTP路由等,项目成员通过Ingress提供的URL进度运行在Kubernetes集群上的Jupyter中,从而进行开发工作,以实现GPU资源的灵活调用。
在当前获取的GPU资源无法满足开发环境空间对应的资源需求时,则需要根据当前资源提供方的GPU资源适当向下调整资源需求方中的角色资源参数对应的GPU资源数量,直到当前的GPU资源满足开发环境空间对应的资源需求;或者通过添加资源提供方的GPU物理资源、等待其他项目成员释放GPU资源等方式增加GPU资源以达到开发环境空间对应的资源需求。否则,若当前获取的GPU资源无法满足开发环境空间对应的资源需求,该开发环境空间将无法运行。
本实施例中,预设项目的项目成员在开发环境下进行算法编程等不需要运用GPU资源的工作时,并不会调用GPU资源,只有在进行算法运行等需要通过GPU计算能力实现的工作时,才触发GPU资源调用。
在开发环境运行前,通过资源需求与实际GPU资源之间的判断,确定当前GPU资源是否满足GPU资源需求,避免在开发环境运行时,由于GPU资源无法满足实际需求,造成工作延时,程序瘫痪等问题的出现,提升GPU资源调度的合理性。
进一步地,依据所述角色资源请求匹配对应的开发环境空间的步骤之后,还包括:
步骤j,确定所述开发环境空间对应的预设共享存储目录;
本实施例中,需要说明的是,预设项目中的各项目成员之间可以实现存储目录的共享,即预设共享存储目录,实现无感读取外部文件,该预设共享存储目录是指开发环境空间外的,一台存储服务器中的存储目录。在一可实施的方式中,使用NFS挂载的方式,将网络存储空间通过IP、共享的目录等挂载到开发环境空间上,该通过不同的项目成员名称建立成员名称文件夹,不同的项目成员的存储使用空间由角色资源请求中对应的参数决定,即上述角色资源参数,在角色资源参数加入目标启动参数后,启动的开发环境空间将依据该目标启动参数匹配对应的预设共享存储目录。例如,在预设项目创建时,创建以项目名称命名的文件夹;添加项目成员,并在项目文件夹中创建项目成员名称的子文件夹,以划分项目成员的工作存储空间;同时创建项目数据及文件夹、算法文件夹以及项目模型文件夹,以存储工作的源数据或者工作结果数据等工作文件。
步骤k,按照输入的文件管理信息匹配所述预设共享存储目录下各文件对应的文件管理规则。
本实施例中,需要说明的是,文件管理信息为预设项目的管理员在对项目进行管理时,输入的对于预设共享存储目录下的各个文件的权限进行限定的信息。不同的文件根据管理员的需求可以设置不同的管理权限,该文件管理权限可以为只读权限,读写权限,下载权限等文件管理相关权限,各文件管理权限对应文件管理规则。
具体地,接收管理员输入的文件管理信息,分析该文件管理信息中的文件信息,以及该文件信息对应的管理权限,依据该文件信息与管理权限确定该文件的文件管理规则。
例如,参考图4,在notebook目录下,保存了Jupyter下的所有数据;管理员创建项目以项目的ID作为子文件夹,假设创建的项目ID是28,在28文件夹下同时创建project_algorithm(项目算法),project_model(项目模型),project_dataset(项目数据集),在为项目添加项目成员时,以成员的ID为文件夹创建子目录(如 144,264,265,96),作为项目成员的工作空间;与notebook同级目录下创建public-algorithm(公共算法),public_model(公共模型),public_dataset(公共数据集);以NFS的方式挂载到Jupyter上,分别给不同的读写权限,以项目ID为28,用户ID为144为例:挂载权限分别为/notebook/28/project_algorithm:读写权限;/notebook/28/project_model:读写权限;/notebook/28/project_dataset:读写权限;/notebook/28/144/:读写权限;/notebook/28/264/:只读权限;/notebook/28/265/:只读权限;/notebook/28/96/:只读权限;/public-algorithm/:只读权限;/public-model/:只读权限;/public-dataset/:只读权限。
通过预设共享存储目录,实现各项目成员之间的文件共享,减少项目成员之间关于工作文件的转发流程,并提高文件利用率,通过设置文件管理规则管理文件,实现不同文件之间的不同权限,以提高文件的合理利用,避免文件错误使用,从而确保工作项目的顺利进行。
进一步地,按照输入的文件管理信息匹配所述预设共享存储目录下各文件对应的文件管理规则之后,还包括:
步骤l,若监测到输入的文件获取信息;
步骤m,则判断所述文件获取信息是否符合所述文件管理规则;
本实施例中,开发对文件存储服务的接口,通过存储接口分别管理项目的数据集、算法、模型等存储资源。项目成员可以通过该存储接口上传或下载文件等。文件获取信息为项目成员在进行实际工作时,需要对文件进行修改,下载,获取等行为的请求信息。在项目成员进行工作时,根据工作需要将输入文件获取信息,以获取存储空间中的相关文件,在检测到输入的文件获取信息时,判断该文件获取信息是否符合文件管理规则,例如,项目成员想要修改存储空间中A文件的内容,在获取该成员的文件获取信息后,获取A文件的权限,如A文件为读写读权限,此时该项目成员的文件获取信息中是需要对A文件进行修改,判断对A文件进行修改是否满足读写权限。
步骤n,若是,则按照所述文件获取信息反馈对应的文件。
若项目成员的文件获取信息中对文件的需求满足该文件的权限,则反馈该文件给到项目成员,例如,项目成员对A文件想要进行修改,A文件权限为读写权限时,修改为写的权限,满足A文件的权限限制,允许该项目成员对A文件进行修改。
若项目成员的文件获取信息中对文件的需求不满足该文件的权限,则提示该成员需求不满足文件权限限制。例如,项目成员对A文件想要进行修改,A文件权限为只读权限时,修改为写的权限,不满足A文件的权限限制,禁止该项目成员对A文件进行修改。
文件权限可由管理员针对不同的项目成员进行不同的权限设置。例如,对于公共文件,管理员对项目成员设置只读权限,对于成员文件,管理员设置各成员之间的文件为读写权限。
通过对项目成员的需求判断是否满足文件权限,决定是否反馈该文件,避免项目成员误操作,带来项目损失,实现文件的合理利用。
此外,参照图5,本发明还提供一种GPU资源池化在线开发系统,GPU资源池化在线开发系统包括需求接收模块、资源调度模块以及资源获取模块,其中,
所述需求接收模块2001,用于接收资源需求方发送的角色资源请求;
所述资源获取模块2002,用于从资源提供方获取GPU资源;
所述资源调度模块2003,用于依据所述角色资源请求匹配对应的开发环境空间;根据所述开发环境空间分配所述GPU资源至所述资源需求方。
可选地,资源调度模块2003,用于:
将所述角色资源请求中的角色资源参数加入预设项目对应的初始启动参数中,得到目标启动参数;
按照所述目标启动参数匹配开发环境空间。
可选地,资源调度模块2003,还用于:
判断所述GPU资源是否满足所述开发环境空间对应的资源需求;
若是,则按照所述资源需求分配所述GPU资源至所述资源需求方。
可选地,资源调度模块2003,还用于:
确定所述开发环境空间对应的预设共享存储目录;
按照输入的文件管理信息匹配所述预设共享存储目录下各文件对应的文件管理规则。
可选地,资源调度模块2003,还用于:
确定所述开发环境空间对应的预设共享存储目录;
按照输入的文件管理信息匹配所述预设共享存储目录下各文件对应的文件管理规则。
可选地,资源获取模块2002,用于:
获取资源提供方的GPU编码,并生成所述GPU编码对应的授权码;
依据所述授权码,通过AI计算平台获取所述资源提供方对应的GPU资源。
可选地,资源获取模块2002,还用于:
将所述授权码录入至所述AI计算平台;
依据所述授权码调度所述AI计算平台中的管理节点;
通过所述管理节点收集所述授权码对应的资源提供方中的GPU资源。
此外,本发明还提出一种电子设备,其包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器,其中:所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够实现本发明各个实施例所述的GPU资源池化方法。
此外,本发明还提出一种计算机可读存储介质,其上存储有GPU资源池化程序。所述计算机可读存储介质可以是图1的终端中的存储器20,也可以是如ROM(Read-OnlyMemory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机可读存储介质包括若干指令用以使得一台具有处理器的设备执行本发明各个实施例所述的GPU资源池化方法。
可以理解的是,在本说明书的描述中,参考术语“一实施例”、“另一实施例”、“其他实施例”、或“第一实施例~第N实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种GPU资源池化方法,其特征在于,包括如下步骤:
接收资源需求方发送的角色资源请求,并从资源提供方获取GPU资源;
依据所述角色资源请求匹配开发环境空间,其中,解析所述角色资源请求中的标识信息,并查找预设仓库中与所述标识信息对应的开发环境空间,将查找到的开发环境空间作为匹配结果,其中,所述标识信息包括开发语言版本标识、开发环境标识以及算法框架标识;
根据所述开发环境空间分配所述GPU资源至所述资源需求方,其中,将所述GPU资源进行分割和隔离,分配分割和隔离后的GPU资源至所述资源需求方;
其中,所述依据所述角色资源请求匹配对应的开发环境空间的步骤之后,还包括:
确定所述开发环境空间对应的预设共享存储目录;
按照输入的文件管理信息匹配所述预设共享存储目录下各文件对应的文件管理规则。
2.根据权利要求1所述的GPU资源池化方法,其特征在于,所述依据所述角色资源请求匹配开发环境空间的步骤包括:
将所述角色资源请求中的角色资源参数加入预设项目对应的初始启动参数中,得到目标启动参数;
按照所述目标启动参数匹配开发环境空间。
3.根据权利要求1所述的GPU资源池化方法,其特征在于,所述从资源提供方获取GPU资源的步骤包括:
获取资源提供方的GPU编码,并生成所述GPU编码对应的授权码;
依据所述授权码,通过AI计算平台获取所述资源提供方对应的GPU资源。
4.根据权利要求3所述的GPU资源池化方法,其特征在于,所述依据所述授权码,通过AI计算平台获取所述资源提供方对应的GPU资源的步骤包括:
将所述授权码录入至所述AI计算平台;
依据所述授权码调度所述AI计算平台中的管理节点;
通过所述管理节点收集所述授权码对应的资源提供方中的GPU资源。
5.根据权利要求1所述的GPU资源池化方法,其特征在于,所述根据所述开发环境空间分配所述GPU资源至所述资源需求方的步骤包括:
判断所述GPU资源是否满足所述开发环境空间对应的资源需求;
若是,则按照所述资源需求分配所述GPU资源至所述资源需求方。
6.根据权利要求1所述的GPU资源池化方法,其特征在于,所述按照输入的文件管理信息匹配所述预设共享存储目录下各文件对应的文件管理规则之后,还包括:
若监测到输入的文件获取信息;
则判断所述文件获取信息是否符合所述文件管理规则;
若是,则按照所述文件获取信息反馈对应的文件。
7.一种GPU资源池化在线开发系统,其特征在于,包括需求接收模块、资源调度模块以及资源获取模块,其中,
所述需求接收模块,用于接收资源需求方发送的角色资源请求;
所述资源获取模块,用于从资源提供方获取GPU资源;
所述资源调度模块,用于依据所述角色资源请求匹配对应的开发环境空间,其中,解析所述角色资源请求中的标识信息,并查找预设仓库中与所述标识信息对应的开发环境空间,将查找到的开发环境空间作为匹配结果,其中,所述标识信息包括开发语言版本标识、开发环境标识以及算法框架标识;根据所述开发环境空间分配所述GPU资源至所述资源需求方,其中,将所述GPU资源进行分割和隔离,分配分割和隔离后的GPU资源至所述资源需求方;
所述资源调度模块,还用于:
确定所述开发环境空间对应的预设共享存储目录;
按照输入的文件管理信息匹配所述预设共享存储目录下各文件对应的文件管理规则。
8.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至6中任一项所述的GPU资源池化方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有GPU资源池化程序,所述GPU资源池化程序被处理器执行时实现如权利要求1至6中任一项所述的GPU资源池化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111111678.3A CN113568758B (zh) | 2021-09-23 | 2021-09-23 | Gpu资源池化方法、系统、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111111678.3A CN113568758B (zh) | 2021-09-23 | 2021-09-23 | Gpu资源池化方法、系统、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113568758A CN113568758A (zh) | 2021-10-29 |
CN113568758B true CN113568758B (zh) | 2022-02-15 |
Family
ID=78174139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111111678.3A Active CN113568758B (zh) | 2021-09-23 | 2021-09-23 | Gpu资源池化方法、系统、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113568758B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904740B (zh) * | 2023-02-23 | 2023-05-30 | 青岛创新奇智科技集团股份有限公司 | 一种gpu资源调用方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103428167A (zh) * | 2012-05-15 | 2013-12-04 | 上海博路信息技术有限公司 | 一种基于语音的数据交换系统 |
CN106293947A (zh) * | 2016-08-17 | 2017-01-04 | 上海交通大学 | 虚拟化云环境下gpu‑cpu混合资源分配系统和方法 |
CN109784066A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 共享开发环境的方法、装置、计算机设备和存储介质 |
CN110389763A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 用于调度专用处理资源的方法、设备和计算机可读介质 |
CN111538586A (zh) * | 2020-01-23 | 2020-08-14 | 中国银联股份有限公司 | 集群gpu资源管理调度系统、方法以及计算机可读存储介质 |
CN111913794A (zh) * | 2020-08-04 | 2020-11-10 | 北京百度网讯科技有限公司 | 用于共用gpu的方法、装置、电子设备及可读存储介质 |
CN112651000A (zh) * | 2020-12-30 | 2021-04-13 | 贵州人和致远数据服务有限责任公司 | 一种用于组件化即插式开发的权限配置集成系统 |
CN112948133A (zh) * | 2021-04-08 | 2021-06-11 | 广东琴智科技研究院有限公司 | 一种资源调度管理方法、装置及云平台 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162407A (zh) * | 2019-05-31 | 2019-08-23 | 深圳前海微众银行股份有限公司 | 一种资源管理方法及装置 |
CN112711403B (zh) * | 2021-01-13 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 游戏开发同步的方法、装置、计算机设备和存储介质 |
-
2021
- 2021-09-23 CN CN202111111678.3A patent/CN113568758B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103428167A (zh) * | 2012-05-15 | 2013-12-04 | 上海博路信息技术有限公司 | 一种基于语音的数据交换系统 |
CN106293947A (zh) * | 2016-08-17 | 2017-01-04 | 上海交通大学 | 虚拟化云环境下gpu‑cpu混合资源分配系统和方法 |
CN110389763A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 用于调度专用处理资源的方法、设备和计算机可读介质 |
CN109784066A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 共享开发环境的方法、装置、计算机设备和存储介质 |
CN111538586A (zh) * | 2020-01-23 | 2020-08-14 | 中国银联股份有限公司 | 集群gpu资源管理调度系统、方法以及计算机可读存储介质 |
CN111913794A (zh) * | 2020-08-04 | 2020-11-10 | 北京百度网讯科技有限公司 | 用于共用gpu的方法、装置、电子设备及可读存储介质 |
CN112651000A (zh) * | 2020-12-30 | 2021-04-13 | 贵州人和致远数据服务有限责任公司 | 一种用于组件化即插式开发的权限配置集成系统 |
CN112948133A (zh) * | 2021-04-08 | 2021-06-11 | 广东琴智科技研究院有限公司 | 一种资源调度管理方法、装置及云平台 |
Also Published As
Publication number | Publication date |
---|---|
CN113568758A (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110535831B (zh) | 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质 | |
CN107818112B (zh) | 一种大数据分析作业系统及任务提交方法 | |
US8918448B2 (en) | Application component decomposition and deployment | |
CN102185900B (zh) | 一种应用服务平台系统和一种开发应用服务的方法 | |
CA2637749C (en) | Method, system, and program product for deploying a platform dependent application in a grid environment | |
CN110752947A (zh) | 一种k8s集群部署方法及装置,一种部署平台 | |
CN104317610A (zh) | 一种hadoop平台自动安装部署的方法及装置 | |
CN104813614A (zh) | 用于iaas的管理的异步框架 | |
JP2014038364A (ja) | リソース管理サーバ、リソース管理方法及びリソース管理プログラム | |
US10019293B2 (en) | Enhanced command selection in a networked computing environment | |
US20040068553A1 (en) | Dynamically selecting a Web service container for hosting remotely instantiated Web services | |
CN109885624A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20150089408A1 (en) | Method and framework for content viewer integrations | |
CN113037891B (zh) | 边缘计算系统中有状态应用的访问方法、装置及电子设备 | |
JP5315128B2 (ja) | 処理依頼先管理装置、処理依頼先管理プログラムおよび処理依頼先管理方法 | |
CN113568758B (zh) | Gpu资源池化方法、系统、设备及计算机可读存储介质 | |
JP2006099307A (ja) | 分散サーバへのアプリケーションセットのインストール方法 | |
CN112199200B (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
KR101907660B1 (ko) | 웹 기반의 운영체제를 탑재한 단말 장치 및 이를 이용한 서비스 제공 방법 | |
CN107784488A (zh) | 一种松散耦合的业务流程管理系统 | |
CN111045928A (zh) | 一种接口数据测试方法、装置、终端及存储介质 | |
CN113691575A (zh) | 通信方法、装置及系统 | |
CN113568708B (zh) | 平台创建方法、装置及设备 | |
CN110321335B (zh) | 建模数据下载方法、装置、电子设备及计算机存储介质 | |
CN114064213B (zh) | 基于Kubernets容器环境的快速编排服务方法及系统 |
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 |