CN107783818A - 深度学习任务处理方法、装置、设备及存储介质 - Google Patents
深度学习任务处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN107783818A CN107783818A CN201710954763.3A CN201710954763A CN107783818A CN 107783818 A CN107783818 A CN 107783818A CN 201710954763 A CN201710954763 A CN 201710954763A CN 107783818 A CN107783818 A CN 107783818A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- docker
- deep learning
- learning task
- gpu
- 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
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
- 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/45562—Creating, deleting, cloning virtual machine instances
-
- 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/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了深度学习任务处理方法、装置、设备及存储介质,其中方法包括:当获取到深度学习任务时,向KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源,以便KVM根据请求创建虚拟机;将深度学习任务以及Docker镜像传入虚拟机;根据Docker镜像在虚拟机内启动Docker,并在Docker中运行深度学习任务。应用本发明所述方案,能够保证深度学习任务的可靠运行等。
Description
【技术领域】
本发明涉及深度学习技术,特别涉及深度学习任务处理方法、装置、设备及存储介质。
【背景技术】
现有技术中,由于不存在资源隔离制度,因此,不同的深度学习任务很可能发生资源冲突,从而导致深度学习任务运行失败。
比如,分别对应于两个不同用户的两个深度学习任务共用了同一图形处理器(GPU,Graphics Processing Unit),那么则会导致深度学习任务运行失败,而针对这一问题,现有技术中还没有一种有效的解决方式。
【发明内容】
有鉴于此,本发明提供了深度学习任务处理方法、装置、设备及存储介质,能够保证深度学习任务的可靠运行。
具体技术方案如下:
一种深度学习任务处理方法,包括:
当获取到深度学习任务时,向系统虚拟化模块KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源,以便所述KVM根据所述请求创建虚拟机;
将所述深度学习任务以及应用容器引擎Docker镜像传入所述虚拟机;
根据所述Docker镜像在所述虚拟机内启动Docker,并在所述Docker中运行所述深度学习任务。
根据本发明一优选实施例,
该方法进一步包括:根据所述深度学习任务的需求确定创建虚拟机所需的资源;
所述资源包括:中央处理器CPU、图形处理器GPU以及内存。
根据本发明一优选实施例,该方法进一步包括:
在所述虚拟机内启动Docker之后,将为所述虚拟机分配的GPU作为硬件挂载到所述Docker中。
根据本发明一优选实施例,所述将为所述虚拟机分配的GPU作为硬件挂载到所述Docker中包括:
当所述Docker的个数为一时,将为所述虚拟机分配的GPU均挂载到所述Docker中;
当所述Docker的个数大于一时,按照每个Docker中至少挂载一个GPU的原则,将为所述虚拟机分配的GPU挂载到各Docker中。
根据本发明一优选实施例,
该方法进一步包括:获取所述KVM在创建所述虚拟机后返回的虚拟机信息;
所述将所述深度学习任务以及Docker镜像传入所述虚拟机包括:根据所述虚拟机信息,将所述深度学习任务以及所述Docker镜像传入所述虚拟机。
根据本发明一优选实施例,该方法进一步包括:
当所述深度学习任务运行结束后,通过所述KVM销毁所述虚拟机。
一种深度学习任务处理装置,包括:第一处理单元以及第二处理单元;
所述第一处理单元,用于当获取到深度学习任务时,向系统虚拟化模块KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源,以便所述KVM根据所述请求创建虚拟机;
所述第二处理单元,用于将所述深度学习任务以及应用容器引擎Docker镜像传入所述虚拟机,根据所述Docker镜像在所述虚拟机内启动Docker,并在所述Docker中运行所述深度学习任务。
根据本发明一优选实施例,
所述第一处理单元根据所述深度学习任务的需求确定创建虚拟机所需的资源;
所述资源包括:中央处理器CPU、图形处理器GPU以及内存。
根据本发明一优选实施例,所述第二处理单元进一步用于,
在所述虚拟机内启动Docker之后,将为所述虚拟机分配的GPU作为硬件挂载到所述Docker中。
根据本发明一优选实施例,
当所述Docker的个数为一时,所述第二处理单元将为所述虚拟机分配的GPU均挂载到所述Docker中;
当所述Docker的个数大于一时,所述第二处理单元按照每个Docker中至少挂载一个GPU的原则,将为所述虚拟机分配的GPU挂载到各Docker中。
根据本发明一优选实施例,
所述第一处理单元进一步用于,获取所述KVM在创建所述虚拟机后返回的虚拟机信息;
所述第二处理单元根据所述虚拟机信息,将所述深度学习任务以及所述Docker镜像传入所述虚拟机。
根据本发明一优选实施例,所述第一处理单元进一步用于,
当所述深度学习任务运行结束后,通过所述KVM销毁所述虚拟机。
一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
基于上述介绍可以看出,采用本发明所述方案,当获取到深度学习任务时,可向KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源,以便KVM根据请求创建虚拟机,之后可将深度学习任务以及Docker镜像传入虚拟机,并根据Docker镜像在虚拟机内启动Docker,进而在Docker中运行深度学习任务,相比于现有技术,本发明所述方案中由于使用了KVM,每个深度学习任务独享自己对应的虚拟机,并指定各虚拟机所需的资源,从而有效地控制并隔离了资源,进而避免了现有技术中的问题,保证了深度学习任务的可靠运行,另外,可基于Docker来实现深度学习环境的快速构建,并可以快速部署构建深度学习所需要的各种依赖库,保证了运行环境的稳定等。
【附图说明】
图1为本发明所述深度学习任务处理方法第一实施例的流程图。
图2为本发明所述深度学习任务处理方法第二实施例的流程图。
图3为本发明所述虚拟机、Docker以及GPU之间的关系示意图。
图4为本发明所述深度学习任务处理装置实施例的组成结构示意图。
图5示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
【具体实施方式】
针对现有技术中存在的问题,本发明中提出一种深度学习任务处理方案,融入了系统虚拟化模块(KVM,Kernel-based Virtual Machine)以及应用容器引擎(Docker)等。
KVM是一个开源的系统虚拟化模块,使用Linux自身的调度器进行管理虚拟机,目前已经被学术界和工程上广泛的使用来进行虚拟化。
Docker是一个开源的应用容器引擎,能够很大程度上解决运算环境管理、硬件隔离等问题,目前Docker已经可以支持对GPU硬件的发现和使用等。
为了使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案进行进一步说明。
显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明所述深度学习任务处理方法第一实施例的流程图。如图1所示,包括以下具体实现方式。
在101中,当获取到深度学习任务时,向KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源,以便KVM根据请求创建虚拟机。
在102中,将深度学习任务以及Docker镜像传入虚拟机。
在103中,根据Docker镜像在虚拟机内启动Docker,并在Docker中运行深度学习任务。
在实际应用中,当获取到深度学习任务,比如,当接收到用户提交的深度学习任务时,可首先根据深度学习任务的需求确定出创建虚拟机所需的资源,进而可向KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源。
所述资源可包括中央处理器(CPU,Central Processing Unit)、GPU以及内存等。
深度学习任务的需求即指深度学习任务的资源需求,如需要使用多少GPU、多少内存等,相应地,创建虚拟机所需的资源即指需要为虚拟机分配多少GPU、多少内存等。
KVM可根据请求异步创建虚拟机,具体地,可在物理机上创建虚拟机。通常来说,深度学习任务与虚拟机之间是一对一的关系,即一个深度学习任务对应一个虚拟机。
如何创建虚拟机为现有技术,根据所需的资源来确定创建的虚拟机的大小。
在完成虚拟机的创建后,KVM还可返回虚拟机信息,如可包括虚拟机怎么登录、物理地址是多少等信息。
相应地,可根据获取到的虚拟机信息,将深度学习任务以及Docker镜像传入虚拟机,并可根据Docker镜像在虚拟机内启动Docker,并在Docker中运行深度学习任务。
进一步地,在虚拟机内启动Docker后,还可将为虚拟机分配的GPU作为硬件挂载到Docker中,进而在Docker中运行深度学习任务,从而使得深度学习任务完美支持GPU。其中,在Docker中运行深度学习任务时,运行参数可由用户在提交深度学习任务时一并提交。
启动的Docker的数量可以为一,也可以大于一,如果为一,那么可将为虚拟机分配的GPU均挂载到该Docker中,如果大于一,那么可按照每个Docker中至少挂载一个GPU的原则,将为虚拟机分配的GPU挂载到各Docker中。
当深度学习任务运行结束后,可保存运算结果,并销毁所创建的虚拟机,以实现资源的回收。具体地,当深度学习任务运行结束后,可通过KVM来销毁虚拟机。
基于上述介绍,图2为本发明所述深度学习任务处理方法第二实施例的流程图。如图2所示,包括以下具体实现方式。
在201中,当获取到深度学习任务时,向KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源。
比如,当获取到用户提交的深度学习任务时,可首先根据深度学习任务的需求确定出创建虚拟机所需的资源,进而可向KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源。
所述资源可包括CPU、GPU以及内存等。
在202中,KVM根据请求在物理机上创建虚拟机。
KVM接收到请求后,可根据所指定的创建虚拟机所需的资源,在物理机上创建一个虚拟机,包括为虚拟机分配相应的资源等。
在203中,KVM返回虚拟机信息。
所述虚拟机信息可包括所创建的虚拟机怎么登录、物理地址是多少等信息。
在204中,根据获取到的虚拟机信息,将深度学习任务以及Docker镜像传入虚拟机。
如何获取Docker镜像为现有技术。
在205中,根据Docker镜像在虚拟机内启动Docker,并将为虚拟机分配的GPU作为硬件挂载到Docker中,在Docker中运行深度学习任务。
启动的Docker的数量可以为一,也可以大于一,如果为一,那么可将为虚拟机分配的GPU均挂载到该Docker中,如果大于一,那么可按照每个Docker中至少挂载一个GPU的原则,将为虚拟机分配的GPU挂载到各Docker中。
如何确定启动的Docker的数量不作限制,比如,可在用户提交的任务参数中指定。用户在提交深度学习任务时,可携带一些任务参数,其中即可包括启动多少个Docker的任务参数。假设同时启动了多个Docker,那么还可进一步指定各个Docker在运行深度学习任务时,分别运行什么内容。
假设启动的Docker的数量为1,为虚拟机分配的GPU的数量为2,那么可将这2个GPU均挂载到该Docker中。
假设启动的Docker的数量为2,为虚拟机分配的GPU的数量也为2,那么可分别在每个Docker中挂载一个GPU。
假设启动的Docker的数量为2,为虚拟机分配的GPU的数量为3,那么可在其中的一个Docker中挂载一个GPU,在另外的一个Docker中挂载2个GPU。
如何将各GPU分配给各Docker可根据实际需要而定,比如,可根据各Docker中运行的内容而定。假设启动的Docker的数量为2,为虚拟机分配的GPU的数量为3,那么可在运算量较大的Docker中挂载2个GPU,而在运算量较小的Docker中挂载1个GPU。
图3为本发明所述虚拟机、Docker以及GPU之间的关系示意图。如图3所示,假设共创建了2个虚拟机,分别为虚拟机1和虚拟机2,虚拟机1和虚拟机2分别对应不同的深度学习任务,并且,为虚拟机1分配了3个GPU,分别为GPU1、GPU2和GPU3,为虚拟机2分配了2个GPU,分别为GPU4和GPU5,在虚拟机1中启动了2个Docker,分别为Docker1和Docker2,在虚拟机2中启动了1个Docker即Docker3,那么可将GPU1和GPU2挂载到Docker1中,将GPU3挂载到Docker2中,将GPU4和GPU5挂载到Docker3中。
在206中,当深度学习任务运行结束后,通过KVM销毁虚拟机。
深度学习任务在Docker中运行结束后,可将运算结果进行保存,如保存到一个指定的共享文件系统中。
之后,可通过KVM销毁为深度学习任务所创建的虚拟机,即通知KVM销毁指定的虚拟机,相应地,KVM则会销毁该虚拟机,以实现资源的回收。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
总之,采用上述各方法实施例所述方案,当获取到深度学习任务时,可向KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源,以便KVM根据请求创建虚拟机,之后可将深度学习任务以及Docker镜像传入虚拟机,并在虚拟机内启动Docker,将为虚拟机分配的GPU挂载到Docker中,进而在Docker中运行深度学习任务。
相比于现有技术,上述各方法实施例所述方案中由于使用了KVM,每个深度学习任务独享自己对应的虚拟机,并指定各虚拟机所需的资源,从而有效地控制并隔离了资源,进而避免了现有技术中的问题,保证了深度学习任务的可靠运行。
另外,上述各方法实施例所述方案中,可基于Docker来实现深度学习环境的快速构建,并可以快速部署构建深度学习所需要的各种依赖库,保证了运行环境的稳定等。
再有,上述各方法实施例所述方案中,将GPU作为硬件挂载到Docker中,使得深度学习任务完美支持GPU。
以上是关于方法实施例的介绍,以下通过装置实施例,对本发明所述方案进行进一步说明。
图4为本发明所述深度学习任务处理装置实施例的组成结构示意图。如图4所示,包括:第一处理单元401以及第二处理单元402。
第一处理单元401,用于当获取到深度学习任务时,向KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源,以便KVM根据请求创建虚拟机。
第二处理单元402,用于将深度学习任务以及Docker镜像传入虚拟机,根据Docker镜像在虚拟机内启动Docker,并在Docker中运行深度学习任务。
在实际应用中,当获取到深度学习任务,比如,当接收到用户提交的深度学习任务时,第一处理单元401可首先根据深度学习任务的需求确定出创建虚拟机所需的资源,进而可向KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源,所述资源可包括CPU、GPU以及内存等。
KVM可根据请求异步创建虚拟机,具体地,可在物理机上创建虚拟机。通常来说,深度学习任务与虚拟机之间是一对一的关系,即一个深度学习任务对应一个虚拟机。
在完成虚拟机的创建后,KVM还可返回虚拟机信息,如可包括虚拟机怎么登录、物理地址是多少等信息。
相应地,第一处理单元401可获取KVM在创建虚拟机后返回的虚拟机信息,进一步地,第二处理单元402可根据虚拟机信息,将深度学习任务以及Docker镜像传入虚拟机,并可根据Docker镜像在虚拟机内启动Docker,在Docker中运行深度学习任务。
进一步地,在虚拟机内启动Docker后,第二处理单元402还可将为虚拟机分配的GPU作为硬件挂载到Docker中,进而在Docker中运行深度学习任务,从而使得深度学习任务完美支持GPU。
启动的Docker的数量可以为一,也可以大于一,如果为一,那么可将为虚拟机分配的GPU均挂载到该Docker中,如果大于一,那么可按照每个Docker中至少挂载一个GPU的原则,将为虚拟机分配的GPU挂载到各Docker中。
如何确定启动的Docker的数量不作限制,比如,可在用户提交的任务参数中指定。用户在提交深度学习任务时,可携带一些任务参数,其中即可包括启动多少个Docker的任务参数。假设同时启动了多个Docker,那么还可进一步指定各个Docker在运行深度学习任务时,分别运行什么内容。
假设启动的Docker的数量为1,为虚拟机分配的GPU的数量为2,那么可将这2个GPU均挂载到该Docker中。
假设启动的Docker的数量为2,为虚拟机分配的GPU的数量也为2,那么可分别在每个Docker中挂载一个GPU。
假设启动的Docker的数量为2,为虚拟机分配的GPU的数量为3,那么可在其中的一个Docker中挂载一个GPU,在另外的一个Docker中挂载2个GPU。
如何将各GPU分配给各Docker可根据实际需要而定,比如,可根据各Docker中运行的内容而定。假设启动的Docker的数量为2,为虚拟机分配的GPU的数量为3,那么可在运算量较大的Docker中挂载2个GPU,而在运算量较小的Docker中挂载1个GPU。
当深度学习任务运行结束后,可保存运算结果,并销毁所创建的虚拟机,以实现资源的回收。
具体地,当深度学习任务运行结束后,第一处理单元401可通过KVM来销毁虚拟机,即通知KVM销毁指定的虚拟机,相应地,KVM则会销毁该虚拟机。
图4所示装置实施例的具体工作流程请参照前述各方法实施例中的相关说明,不再赘述。
总之,采用上述装置实施例所述方案,当获取到深度学习任务时,可向KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源,以便KVM根据请求创建虚拟机,之后可将深度学习任务以及Docker镜像传入虚拟机,并在虚拟机内启动Docker,将为虚拟机分配的GPU挂载到Docker中,进而在Docker中运行深度学习任务。
相比于现有技术,上述装置实施例所述方案中由于使用了KVM,每个深度学习任务独享自己对应的虚拟机,并指定各虚拟机所需的资源,从而有效地控制并隔离了资源,进而避免了现有技术中的问题,保证了深度学习任务的可靠运行。
另外,上述装置实施例所述方案中,可基于Docker来实现深度学习环境的快速构建,并可以快速部署构建深度学习所需要的各种依赖库,保证了运行环境的稳定等。
再有,上述装置实施例所述方案中,将GPU作为硬件挂载到Docker中,使得深度学习任务完美支持GPU。
图5示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图5显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器(处理单元)16,存储器28,连接不同系统组件(包括存储器28和处理器16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图5所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现图1或2所示实施例中的方法,即当获取到深度学习任务时,向KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源,以便KVM根据所述请求创建虚拟机,之后,将深度学习任务以及Docker镜像传入虚拟机,并根据Docker镜像在虚拟机内启动Docker,在Docker中运行深度学习任务等。
具体实现请参照前述各实施例中的相关说明,不再赘述。
本发明同时公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时将实现如图1或2所示实施例中的方法。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法等,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (14)
1.一种深度学习任务处理方法,其特征在于,包括:
当获取到深度学习任务时,向系统虚拟化模块KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源,以便所述KVM根据所述请求创建虚拟机;
将所述深度学习任务以及应用容器引擎Docker镜像传入所述虚拟机;
根据所述Docker镜像在所述虚拟机内启动Docker,并在所述Docker中运行所述深度学习任务。
2.根据权利要求1所述的方法,其特征在于,
该方法进一步包括:根据所述深度学习任务的需求确定创建虚拟机所需的资源;
所述资源包括:中央处理器CPU、图形处理器GPU以及内存。
3.根据权利要求2所述的方法,其特征在于,
该方法进一步包括:
在所述虚拟机内启动Docker之后,将为所述虚拟机分配的GPU作为硬件挂载到所述Docker中。
4.根据权利要求3所述的方法,其特征在于,
所述将为所述虚拟机分配的GPU作为硬件挂载到所述Docker中包括:
当所述Docker的个数为一时,将为所述虚拟机分配的GPU均挂载到所述Docker中;
当所述Docker的个数大于一时,按照每个Docker中至少挂载一个GPU的原则,将为所述虚拟机分配的GPU挂载到各Docker中。
5.根据权利要求1所述的方法,其特征在于,
该方法进一步包括:获取所述KVM在创建所述虚拟机后返回的虚拟机信息;
所述将所述深度学习任务以及Docker镜像传入所述虚拟机包括:根据所述虚拟机信息,将所述深度学习任务以及所述Docker镜像传入所述虚拟机。
6.根据权利要求1所述的方法,其特征在于,
该方法进一步包括:
当所述深度学习任务运行结束后,通过所述KVM销毁所述虚拟机。
7.一种深度学习任务处理装置,其特征在于,包括:第一处理单元以及第二处理单元;
所述第一处理单元,用于当获取到深度学习任务时,向系统虚拟化模块KVM发起创建虚拟机的请求,并指定创建虚拟机所需的资源,以便所述KVM根据所述请求创建虚拟机;
所述第二处理单元,用于将所述深度学习任务以及应用容器引擎Docker镜像传入所述虚拟机,根据所述Docker镜像在所述虚拟机内启动Docker,并在所述Docker中运行所述深度学习任务。
8.根据权利要求7所述的装置,其特征在于,
所述第一处理单元根据所述深度学习任务的需求确定创建虚拟机所需的资源;
所述资源包括:中央处理器CPU、图形处理器GPU以及内存。
9.根据权利要求8所述的装置,其特征在于,
所述第二处理单元进一步用于,
在所述虚拟机内启动Docker之后,将为所述虚拟机分配的GPU作为硬件挂载到所述Docker中。
10.根据权利要求9所述的装置,其特征在于,
当所述Docker的个数为一时,所述第二处理单元将为所述虚拟机分配的GPU均挂载到所述Docker中;
当所述Docker的个数大于一时,所述第二处理单元按照每个Docker中至少挂载一个GPU的原则,将为所述虚拟机分配的GPU挂载到各Docker中。
11.根据权利要求7所述的装置,其特征在于,
所述第一处理单元进一步用于,获取所述KVM在创建所述虚拟机后返回的虚拟机信息;
所述第二处理单元根据所述虚拟机信息,将所述深度学习任务以及所述Docker镜像传入所述虚拟机。
12.根据权利要求7所述的装置,其特征在于,
所述第一处理单元进一步用于,
当所述深度学习任务运行结束后,通过所述KVM销毁所述虚拟机。
13.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~6中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710954763.3A CN107783818B (zh) | 2017-10-13 | 2017-10-13 | 深度学习任务处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710954763.3A CN107783818B (zh) | 2017-10-13 | 2017-10-13 | 深度学习任务处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107783818A true CN107783818A (zh) | 2018-03-09 |
CN107783818B CN107783818B (zh) | 2021-12-24 |
Family
ID=61433624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710954763.3A Active CN107783818B (zh) | 2017-10-13 | 2017-10-13 | 深度学习任务处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107783818B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762910A (zh) * | 2018-06-06 | 2018-11-06 | 亚信科技(中国)有限公司 | 一种分布式任务调度方法及系统 |
CN108958947A (zh) * | 2018-09-17 | 2018-12-07 | 北京市计算中心 | 一种大数据一体机及其使用方法 |
CN109086134A (zh) * | 2018-07-19 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种深度学习作业的运行方法和装置 |
CN109146084A (zh) * | 2018-09-06 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种基于云计算的机器学习的方法及装置 |
CN109144661A (zh) * | 2018-07-05 | 2019-01-04 | 杭州电子科技大学 | 一种基于docker的深度学习管理方法 |
CN109189401A (zh) * | 2018-07-06 | 2019-01-11 | 曙光信息产业(北京)有限公司 | 一种深度学习框架的部署方法以及系统 |
CN109213600A (zh) * | 2018-09-11 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种基于ai云的gpu资源调度方法和装置 |
CN109254830A (zh) * | 2018-09-04 | 2019-01-22 | 郑州云海信息技术有限公司 | 深度学习系统中可视化管理方法和装置 |
CN109408062A (zh) * | 2018-11-01 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种自动部署模型训练环境的方法和装置 |
CN109885389A (zh) * | 2019-02-19 | 2019-06-14 | 山东浪潮云信息技术有限公司 | 一种基于容器的并行深度学习调度训练方法及系统 |
CN109933409A (zh) * | 2019-03-20 | 2019-06-25 | 深圳市网心科技有限公司 | Docker数据保存方法和系统、电子装置及计算机可读存储介质 |
CN110389816A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 用于资源调度的方法、装置以及计算机程序产品 |
WO2020001564A1 (zh) * | 2018-06-29 | 2020-01-02 | 杭州海康威视数字技术股份有限公司 | 一种处理任务的方法、装置及系统 |
CN110751090A (zh) * | 2019-10-18 | 2020-02-04 | 宁波博登智能科技有限责任公司 | 一种三维点云标注方法、装置及电子设备 |
CN111047505A (zh) * | 2019-12-20 | 2020-04-21 | 北京浪潮数据技术有限公司 | 一种gpu复用方法、装置、设备及可读存储介质 |
CN111400021A (zh) * | 2019-01-02 | 2020-07-10 | 中国移动通信有限公司研究院 | 一种深度学习方法、装置及系统 |
CN112035220A (zh) * | 2020-09-30 | 2020-12-04 | 北京百度网讯科技有限公司 | 开发机操作任务的处理方法、装置、设备以及存储介质 |
CN112114931A (zh) * | 2019-06-21 | 2020-12-22 | 鸿富锦精密电子(天津)有限公司 | 深度学习程序配置方法、装置、电子设备及存储介质 |
CN112585583A (zh) * | 2020-07-17 | 2021-03-30 | 华为技术有限公司 | 数据处理方法、装置及智能车辆 |
WO2023217146A1 (zh) * | 2022-05-09 | 2023-11-16 | 杭州海康威视数字技术股份有限公司 | 一种算法模型运行处理方法、装置及边缘智能设备 |
CN108958947B (zh) * | 2018-09-17 | 2024-09-27 | 北京市计算中心有限公司 | 一种大数据一体机及其使用方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068874A (zh) * | 2015-08-12 | 2015-11-18 | 国家电网公司 | 一种结合Docker技术的资源按需动态分配方法 |
CN105278874A (zh) * | 2015-09-15 | 2016-01-27 | 中国联合网络通信集团有限公司 | 大数据平台系统及其运行方法 |
CN105808318A (zh) * | 2016-03-07 | 2016-07-27 | 联想(北京)有限公司 | 一种信息处理方法和电子设备 |
CN103218360B (zh) * | 2012-01-18 | 2016-08-03 | 中国石油天然气集团公司 | 工业实时数据库采用内存池技术实现动态内存管理的方法 |
US9524183B1 (en) * | 2015-07-22 | 2016-12-20 | Bluedata Software, Inc. | Employing application containers in a large scale processing environment |
CN106886455A (zh) * | 2017-02-23 | 2017-06-23 | 北京图森未来科技有限公司 | 一种实现用户隔离的方法及系统 |
-
2017
- 2017-10-13 CN CN201710954763.3A patent/CN107783818B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218360B (zh) * | 2012-01-18 | 2016-08-03 | 中国石油天然气集团公司 | 工业实时数据库采用内存池技术实现动态内存管理的方法 |
US9524183B1 (en) * | 2015-07-22 | 2016-12-20 | Bluedata Software, Inc. | Employing application containers in a large scale processing environment |
CN105068874A (zh) * | 2015-08-12 | 2015-11-18 | 国家电网公司 | 一种结合Docker技术的资源按需动态分配方法 |
CN105278874A (zh) * | 2015-09-15 | 2016-01-27 | 中国联合网络通信集团有限公司 | 大数据平台系统及其运行方法 |
CN105808318A (zh) * | 2016-03-07 | 2016-07-27 | 联想(北京)有限公司 | 一种信息处理方法和电子设备 |
CN106886455A (zh) * | 2017-02-23 | 2017-06-23 | 北京图森未来科技有限公司 | 一种实现用户隔离的方法及系统 |
Non-Patent Citations (1)
Title |
---|
JINGCB: "《Docker:把深度学习装进"口袋"》", 19 September 2017 * |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389816A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 用于资源调度的方法、装置以及计算机程序产品 |
CN108762910A (zh) * | 2018-06-06 | 2018-11-06 | 亚信科技(中国)有限公司 | 一种分布式任务调度方法及系统 |
CN110659127A (zh) * | 2018-06-29 | 2020-01-07 | 杭州海康威视数字技术股份有限公司 | 一种处理任务的方法、装置及系统 |
WO2020001564A1 (zh) * | 2018-06-29 | 2020-01-02 | 杭州海康威视数字技术股份有限公司 | 一种处理任务的方法、装置及系统 |
CN109144661A (zh) * | 2018-07-05 | 2019-01-04 | 杭州电子科技大学 | 一种基于docker的深度学习管理方法 |
CN109189401A (zh) * | 2018-07-06 | 2019-01-11 | 曙光信息产业(北京)有限公司 | 一种深度学习框架的部署方法以及系统 |
CN109086134A (zh) * | 2018-07-19 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种深度学习作业的运行方法和装置 |
CN109254830A (zh) * | 2018-09-04 | 2019-01-22 | 郑州云海信息技术有限公司 | 深度学习系统中可视化管理方法和装置 |
CN109146084A (zh) * | 2018-09-06 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种基于云计算的机器学习的方法及装置 |
CN109213600A (zh) * | 2018-09-11 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种基于ai云的gpu资源调度方法和装置 |
CN108958947A (zh) * | 2018-09-17 | 2018-12-07 | 北京市计算中心 | 一种大数据一体机及其使用方法 |
CN108958947B (zh) * | 2018-09-17 | 2024-09-27 | 北京市计算中心有限公司 | 一种大数据一体机及其使用方法 |
CN109408062A (zh) * | 2018-11-01 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种自动部署模型训练环境的方法和装置 |
CN111400021A (zh) * | 2019-01-02 | 2020-07-10 | 中国移动通信有限公司研究院 | 一种深度学习方法、装置及系统 |
CN109885389B (zh) * | 2019-02-19 | 2021-07-16 | 浪潮云信息技术股份公司 | 一种基于容器的并行深度学习调度训练方法及系统 |
CN109885389A (zh) * | 2019-02-19 | 2019-06-14 | 山东浪潮云信息技术有限公司 | 一种基于容器的并行深度学习调度训练方法及系统 |
CN109933409A (zh) * | 2019-03-20 | 2019-06-25 | 深圳市网心科技有限公司 | Docker数据保存方法和系统、电子装置及计算机可读存储介质 |
CN109933409B (zh) * | 2019-03-20 | 2022-12-13 | 深圳市网心科技有限公司 | Docker数据保存方法和系统、电子装置及计算机可读存储介质 |
CN112114931B (zh) * | 2019-06-21 | 2023-12-26 | 富联精密电子(天津)有限公司 | 深度学习程序配置方法、装置、电子设备及存储介质 |
CN112114931A (zh) * | 2019-06-21 | 2020-12-22 | 鸿富锦精密电子(天津)有限公司 | 深度学习程序配置方法、装置、电子设备及存储介质 |
CN110751090A (zh) * | 2019-10-18 | 2020-02-04 | 宁波博登智能科技有限责任公司 | 一种三维点云标注方法、装置及电子设备 |
CN110751090B (zh) * | 2019-10-18 | 2022-09-20 | 宁波博登智能科技有限公司 | 一种三维点云标注方法、装置及电子设备 |
CN111047505A (zh) * | 2019-12-20 | 2020-04-21 | 北京浪潮数据技术有限公司 | 一种gpu复用方法、装置、设备及可读存储介质 |
CN112585583B (zh) * | 2020-07-17 | 2021-12-03 | 华为技术有限公司 | 数据处理方法、装置及智能车辆 |
CN112585583A (zh) * | 2020-07-17 | 2021-03-30 | 华为技术有限公司 | 数据处理方法、装置及智能车辆 |
CN112035220A (zh) * | 2020-09-30 | 2020-12-04 | 北京百度网讯科技有限公司 | 开发机操作任务的处理方法、装置、设备以及存储介质 |
WO2023217146A1 (zh) * | 2022-05-09 | 2023-11-16 | 杭州海康威视数字技术股份有限公司 | 一种算法模型运行处理方法、装置及边缘智能设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107783818B (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107783818A (zh) | 深度学习任务处理方法、装置、设备及存储介质 | |
US10552208B2 (en) | Migrating a virtual machine that owns a resource such as a hardware device | |
US9063793B2 (en) | Virtual server and virtual machine management method for supporting zero client by providing host interfaces from classified resource pools through emulation or direct connection modes | |
CN102110196B (zh) | 并行运行多用户操作系统间的数据安全传输方法及系统 | |
US11429442B2 (en) | Parallel and distributed computing using multiple virtual machines | |
US8924703B2 (en) | Secure virtualization environment bootable from an external media device | |
EP2622470B1 (en) | Techniques for load balancing gpu enabled virtual machines | |
US20120054740A1 (en) | Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments | |
JP4921384B2 (ja) | メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム | |
US9075540B2 (en) | Virtualizing storage for WPAR clients | |
US20150294494A1 (en) | Remote rendering of three-dimensional images using virtual machines | |
US20130174151A1 (en) | Information processing apparatus and method of controlling virtual machine | |
TW201007574A (en) | Internet server system and method of constructing and starting a virtual machine | |
CN106797388A (zh) | 跨系统多媒体数据编解码方法、装置、电子设备和计算机程序产品 | |
MXPA01005779A (es) | Virtualizacion de hipervisor de sistema operativo y panel de operador. | |
US20150143375A1 (en) | Transaction execution in systems without transaction support | |
US9104452B2 (en) | Hybrid remote sessions | |
CN109032788B (zh) | 预留资源池动态调度方法、装置、计算机设备及存储介质 | |
EP4231160A1 (en) | Method for configuring address translation relationship, and computer system | |
US9569241B2 (en) | Sharing devices assigned to virtual machines using runtime exclusion | |
WO2015090195A1 (zh) | 操作系统实例创建方法及装置 | |
US10630782B2 (en) | Light-weight web browser support for thin client solution | |
EP4068091A1 (en) | Hybrid approach to performing a lazy pull of container images | |
US10684900B2 (en) | Enhanced message control banks | |
CN109634721B (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 |