CN111352664B - 分布式机器学习任务启动方法、系统、设备及存储介质 - Google Patents
分布式机器学习任务启动方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN111352664B CN111352664B CN201811482001.9A CN201811482001A CN111352664B CN 111352664 B CN111352664 B CN 111352664B CN 201811482001 A CN201811482001 A CN 201811482001A CN 111352664 B CN111352664 B CN 111352664B
- Authority
- CN
- China
- Prior art keywords
- machine learning
- kubernetes
- starting
- resources
- nodes
- 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
- 238000010801 machine learning Methods 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000000977 initiatory effect Effects 0.000 claims description 15
- 238000012549 training Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种分布式机器学习任务启动方法、系统、设备及存储介质,所述方法包括:配置kubernetes Pod资源中的环境变量,所述环境变量包括所有节点的域名和端口信息;配置kubernetes Pod资源中容器的启动命令,所述启动命令将所述环境变量传入分布式机器学习任务启动脚本;根据所述环境变量和所述容器的启动命令创建kubernetes Pod资源,所述kubernetes Pod资源中容器配置为执行所述启动命令。本发明使用灵活、不固定的网络元组信息,同时也省去需要二次登录再执行启动命令的步骤,来实现在启动容器时直接执行启动命令,从而提高分布式机器学习任务启动过程的灵活性和高效性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种分布式机器学习任务启动方法、系统、设备及存储介质。
背景技术
随着大数据与云计算的兴起,两者驱动着人工智能在飞速发展。机器学习作为人工智能领域内的一种重要技术,由于有了大数据和云计算的支撑,也在变得越来越普及和实用,这也就是现在非常流行的数据+算法模型推动应用发展的模式。在大数据和云计算时代到临之前,数据规模有限,设计的算法模型也比较简单,大多数的时候都是单台机器(单节点)进行模型训练。但现在,数据量变得非常大,模型结构也越来越复杂,单台机器的容量和计算能力都有限,不能我们的需求,我们需要扩大规模来解决这个问题,因此分布式机器学习越来越成为一种趋势。分布式机器学习指利用多台机器(数十,几百或者上千)来组成一个计算集群,通过这个计算集群来训练需要使用大量数据的复杂算法模型。分布式机器学习能够加速模型训练的过程,缩短训练时间,提升模型训练的效率。
由于需要利用多台机器,分布式机器学习中,一般会设计有不同的角色,角色之间功能不同,每种角色包含多个节点,所有的节点组成一起就是完整的计算集群。一次具体的训练任务,需要将所有的节点都启动,每个节点上的启动命令需要知道其他节点的网络元组信息,如果信息缺少或者有误,整个训练任务将会执行失败。
举例来说,可以假设有Role-A和Role-B(多种角色也可以依此类推),同时假设Role-A有M个,Role-B有N个。那么在分布式训练任务中,需要M+N个节点,每个节点都会有用于网络连接的“HOST:PORT”元组。例如:<Role-A,k,Hk:Pa>来表示角色A中的第k个组员的网络连接元组。
一般分布式机器学习任务执行过程可以分为四个阶段:
(1)分配每个角色的所有节点。节点可以是物理机或者容器,如果用物理机就是指定M+N个机器作为节点,如果是容器则需要启动M+N个容器。
(2)获取所有节点的HOST:PORT(HOST表示能够同其他机器互相访问的本地计算机,PORT是指接口)。如果节点是物理机,可以用物理机IP,如果节点是容器,需要用容器IP,这里需要保证所有的IP之间网络是互通的。即所有的网络元组:<Role-A,1,H1:Pa>…<Role-A,m,Hm:Pa>…<Role-B,1,H1:Pb>…<Role-B,n,Hn:Pb>
(3)生成节点启动命令。一般来说,分布式机器学习任务比单机任务在启动命令上的最主要的不同在于启动命令需要加上网络元组信息。例如:Role-A的所有网络元组是RoleAHosts=[H1:Pa,…,Hm:Pa];Role-B的所有网络元组RoleBHosts=[H1:Pb,…,Hn:Pb],每个节点在执行具体的启动命令时,一般通过带上RoleAHosts和RoleBHosts作为参数传入,例如节点<Role-A,1>启动命令:start_script--roleA_hosts=RoleAHosts--roleB_hosts=RoleBHosts。
(4)在每个节点上执行对应的启动命令
这个执行过程中,最关键的阶段是第二阶段和第三阶段,这是执行分布式机器学习任务与单机任务的核心区别。
在阶段二和阶段三方面,现在一般的主流技术方案有两种:
方案一:指定固定的一批物理机来执行分布式机器学习任务,在启动命令上使用这批机器的IP地址(或主机名)。
然而,使用一批固定的物理机,最主要的问题在于如果有机器不可用或者更换其中的部分机器,需要修改所有的启动命令,导致整个分布式机器学习任务的执行过程不够灵活。
方案二:启动一批容器,获取这批容器IP,用容器IP生成启动命令,然后再次登录每个容器执行启动命令。
方案二解决了方案一的固定IP问题,但方案二的主要问题在于不能在启动容器时就运行启动命令,需要二次登录容器执行启动命令,导致分布式机器学习任务的执行过程效率较低。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种分布式机器学习任务启动方法、系统、设备及存储介质,使用灵活、不固定的网络元组信息,同时也省去需要二次登录再执行启动命令的步骤,提高任务执行启动效率。
本发明实施例提供一种分布式机器学习任务启动方法,所述方法包括如下步骤:
配置kubernetes Pod资源中的环境变量,所述环境变量包括所有机器学习节点的域名和端口信息;
配置kubernetes Pod资源中容器的启动命令,所述启动命令将所述环境变量传入分布式机器学习任务启动脚本;
根据所述环境变量和所述容器的启动命令创建kubernetes Pod资源,所述kubernetes Pod资源中容器配置为执行所述启动命令。
可选地,所述方法还包括基于kubernetes的域名机制生成所有机器学习节点的域名的步骤;
所述创建kubernetes Pod资源时,创建的kubernetes Pod资源与所述机器学习节点一一对应,且所述kubernetes Pod资源的名称与所对应的机器学习节点的域名相同。
可选地,所述方法还包括如下步骤:
创建kubernetes Service资源,创建的kubernetes Service资源与所述机器学习节点一一对应,且所述kubernetes Service资源的名称与所对应的机器学习节点的域名相同。
可选地,所述机器学习节点包括多个节点组,所述机器学习节点的域名包括节点组的识别号和节点在节点组中的识别号。
可选地,所述机器学习节点为基于TensorFlow模式的机器学习节点,所述机器学习节点根据不同角色分为多个节点组。
可选地,所述机器学习节点为基于MPI模式的机器学习节点,所述机器学习节点分为主节点组和从节点组;
所述主节点组中的机器学习节点所对应的kubernetes Pod资源中包括所述环境变量和容器的启动命令;
所述从节点组中的机器学习节点所对应的kubernetes Pod资源中不包括所述环境变量和容器的启动命令。
可选地,所述kubernetes Pod资源中容器配置为创建完成后自动执行所述启动命令。
本发明实施例还提供一种分布式机器学习任务启动系统,应用于所述的分布式机器学习任务启动方法,所述分布式机器学习任务启动系统包括:
环境变量配置模块,用于配置kubernetes Pod资源中的环境变量,所述环境变量包括所有节点的域名和端口信息;
启动命令配置模块,用于配置kubernetes Pod资源中容器的启动命令,所述启动命令将所述环境变量传入分布式机器学习任务启动脚本;
Pod资源创建模块,用于根据所述环境变量和所述容器的启动命令创建kubernetes Pod资源,所述kubernetes Pod资源中容器配置为执行所述启动命令。
可选地,所述系统还包括域名生成模块,用于基于kubernetes的域名机制生成所有机器学习节点的域名;
所述Pod资源创建模块创建的kubernetes Pod资源与所述机器学习节点一一对应,且所述kubernetes Pod资源的名称与所对应的机器学习节点的域名相同。
可选地,所述系统还包括Service资源创建模块,用于创建kubernetes Service资源,创建的kubernetes Service资源与所述机器学习节点一一对应,且所述kubernetesService资源的名称与所对应的机器学习节点的域名相同。
本发明实施例还提供一种分布式机器学习任务启动设备,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行所述的分布式机器学习任务启动方法的步骤。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现所述的分布式机器学习任务启动方法的步骤。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
本发明所提供的分布式机器学习任务启动方法、系统、设备及存储介质具有下列优点:
本发明基于kubernetes的域名机制,并设置容器内网络元组信息的环境变量,来实现在启动容器时直接执行启动命令,从而解决了现有技术中分布式机器学习任务的启动过程中不够灵活、效率不够高的问题,使用灵活、不固定的网络元组HOST:PORT信息,同时也省去需要二次登录再执行启动命令这种低效的方式,提高分布式机器学习任务启动过程的灵活性和高效性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明一实施例的分布式机器学习任务启动方法的流程图;
图2是本发明一具体实例的分布式机器学习任务启动方法的流程图;
图3是本发明一实施例的分布式机器学习任务启动系统的结构框图;
图4是本发明一具体实例的分布式机器学习任务启动系统的结构框图;
图5是本发明一实施例的分布式机器学习任务启动设备的结构示意图;
图6是本发明一实施例的计算机可读存储介质的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
如图1所示,本发明实施例提供一种分布式机器学习任务启动方法,所述方法包括如下步骤:
S100:配置kubernetes Pod资源中的环境变量,所述环境变量包括所有机器学习节点的域名和端口信息;
此处域名指的是用一串用点分隔的名字组成的在网络上某一节点的名称,用于在数据传输时标识节点,环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息;
S200:配置kubernetes Pod资源中容器的启动命令,所述启动命令将所述环境变量传入分布式机器学习任务启动脚本;
S300:根据所述环境变量和所述容器的启动命令创建kubernetes Pod资源,所述kubernetes Pod资源中容器配置为执行所述启动命令。
Kubernetes是一个开源的、用于管理云平台中多个主机上的容器化的应用,kubernetes的目标是让部署容器化的应用简单并且高效,kubernetes提供了应用部署,规划,更新,维护的一种机制。
因此,本发明的分布式机器学习任务启动方法通过把网络元组信息设置为容器内环境变量,并把环境变量当做参数,当做启动命令的一部分,这样可以随着容器启动直接运行启动命令,免去了需要二次登陆容器执行启动命令的问题,让分布式训练任务启动与执行过程足够灵活和高效。
在该实施例中,所述方法还包括基于kubernetes的域名机制生成所有机器学习节点的域名的步骤;所述机器学习节点包括多个节点组,所述机器学习节点的域名包括节点组的识别号和节点在节点组中的识别号。根据kubernetes的域名机制,域名格式为“svc.namespace”。例如,节点<Role-A,k,Hk:Pk>对应的域名可以是“roleA-k.namespace”,其中roleA是组别的识别号,k是该节点该roleA中的序号即识别号,采用其他方式的“svc”也是可以的,只要保证域名中“svc”部分是唯一的即可。
在该实施例中,所述创建kubernetes Pod资源时,创建的kubernetes Pod资源与所述机器学习节点一一对应,且所述kubernetes Pod资源的名称与所对应的机器学习节点的域名相同。
进一步地,所述分布式机器学习任务启动方法还包括如下步骤:
创建kubernetes Service资源,创建的kubernetes Service资源与所述机器学习节点一一对应,且所述kubernetes Service资源的名称与所对应的机器学习节点的域名相同。
因此,在该实施例中,利用动态生成的域名信息作为网络元组信息,解决了现有方案一中的固定IP问题。Service无需根据ip地址与Pod绑定,根据唯一的域名即可以与Pod进行绑定。并且将包括域名的网络元组信息设置为容器内环境变量,并把环境变量当做参数,作为启动命令的一部分,可以使用灵活的、不固定的网络元组HOST:PORT信息,提高了任务启动的灵活性。
在该实施例中,所述机器学习节点可以为基于TensorFlow模式的机器学习节点,所述机器学习节点根据不同角色分为多个节点组。TensorFlow模式是一个开源软件库,用于各种感知和语言理解任务的机器学习。此外,所述机器学习节点也可以为为基于MPI模式的机器学习节点。MPI为一个跨语言的通信协议,MPI模式同样也可以用于机器学习。MPI模式只有一种角色,但角色中有主节点和从节点之分,因此,所述机器学习节点可以分为主节点组和从节点组;所述主节点组中的机器学习节点所对应的kubernetes Pod资源中包括所述环境变量和容器的启动命令;而所述从节点组中的机器学习节点所对应的kubernetesPod资源中不包括所述环境变量和容器的启动命令,这两项留空即可。
在该实施例中,所述kubernetes Pod资源中容器配置为创建完成后自动执行所述启动命令,因此,创建好Pod资源后,就会直接启动分布式机器学习任务,至此整个分布式机器学习训练任务就可以开始执行。
下面结合一个具体实例来进一步介绍本发明的分布式机器学习任务启动方法。如图3所示,为该具体实例的分布式机器学习任务启动方法的流程图。
在该实例中,假设有Role-A和Role-B(多种角色也可以依此类推),同时假设Role-A有M个,Role-B有N个。那么在分布式训练任务中,需要M+N个节点,每个节点都会有用于网络连接的“HOST:PORT”元组。例如:<Role-A,k,Hk:Pa>来表示角色A中的第k个组员的网络连接元组。
S1:生成所有机器学习节点的域名:
根据kubernetes的域名机制,为每个节点生成域名,域名格式为“svc.namespace”。例如:节点<Role-A,k,Hk:Pk>对应的域名可以是:“roleA-k.namespace”,只要保证域名中“svc”部分是唯一即可。
S2:生成kubernetes Pod资源和Service资源创建所需的配置;主要包括如下两个部分:
(2.1)需要给Pod资源设置环境变量
环境变量的内容是所有节点的域名+端口,即所有角色的网络元组信息,例如环境变量可以如下:
(2.2)设置Pod资源中容器的启动命令
启动命令中把上述环境变量当作参数传入给启动脚本。例如:
start_script--roleA_hosts=${ROLE_A_HOSTS}--roleB_hosts=${ROLE_B_HOSTS}
S3:根据配置创建分布式机器学习训练任务的节点
在kubernetes中创建Pod资源和Service资源两种资源,<Pod,Svc>对应一个节点。Pod资源和Service资源的名字为“roleA-k”,与S1中的域名“svc”部分一致即可。
S4:创建好Pod资源时,Pod资源中的容器就会直接启动训练命令,至此整个分布式机器学习训练任务就开始执行了。
如图4所示,本发明实施例还提供一种分布式机器学习任务启动系统,应用于所述的分布式机器学习任务启动方法,所述分布式机器学习任务启动系统包括:
环境变量配置模块M100,用于配置kubernetes Pod资源中的环境变量,所述环境变量包括所有节点的域名和端口信息;
启动命令配置模块M200,用于配置kubernetes Pod资源中容器的启动命令,所述启动命令将所述环境变量传入分布式机器学习任务启动脚本;
Pod资源创建模块M300,用于根据所述环境变量和所述容器的启动命令创建kubernetes Pod资源,所述kubernetes Pod资源中容器配置为执行所述启动命令。
如图5所示,所述系统还包括域名生成模块M400,用于基于kubernetes的域名机制生成所有机器学习节点的域名;
所述Pod资源创建模块M300创建的kubernetes Pod资源与所述机器学习节点一一对应,且所述kubernetes Pod资源的名称与所对应的机器学习节点的域名相同。
进一步地,在该实施例中,所述系统还包括Service资源创建模块M500,用于创建kubernetes Service资源,创建的kubernetes Service资源与所述机器学习节点一一对应,且所述kubernetes Service资源的名称与所对应的机器学习节点的域名相同。
因此,本发明的分布式机器学习任务启动系统通过把网络元组信息设置为容器内环境变量,并把环境变量当做参数,当做启动命令的一部分,这样可以随着容器启动直接运行启动命令,免去了需要二次登陆容器执行启动命令的问题,让分布式训练任务启动与执行过程足够灵活和高效。
本发明实施例还提供一种分布式机器学习任务启动设备,包括处理器;存储器,其中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行所述的分布式机器学习任务启动方法的步骤。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。
下面参照图5来描述根据本发明的这种实施方式的电子设备600。图5显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤。
因此,该实施例的分布式机器学习任务启动设备的处理器执行存储单元中的程序代码时,可以通过应用发起网络请求的同时保存网络请求函数的名称、网络请求参数、网络返回参数和回调函数等相关信息方便抓包调试应用,方便用户操作,提高抓包效率,并降低抓包成本。
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现所述的分布式机器学习任务启动方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。
参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
因此,该实施例的计算机存储介质中的程序代码被执行时,可以通过应用发起网络请求的同时保存网络请求函数的名称、网络请求参数、网络返回参数和回调函数等相关信息方便抓包调试应用,方便用户操作,提高抓包效率,并降低抓包成本。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统、设备和计算机存储介质的实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本发明所提供的分布式机器学习任务启动方法、系统、设备及存储介质具有下列优点:
本发明基于kubernetes的域名机制,并设置容器内网络元组信息的环境变量,来实现在启动容器时直接执行启动命令,从而解决了现有技术中分布式机器学习任务的启动过程中不够灵活、效率不够高的问题,使用灵活、不固定的网络元组HOST:PORT信息,同时也省去需要二次登录再执行启动命令这种低效的方式,提高分布式机器学习任务启动过程的灵活性和高效性。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (12)
1.一种分布式机器学习任务启动方法,其特征在于,包括如下步骤:
配置kubernetes Pod资源中的环境变量,所述环境变量包括所有机器学习节点的域名和端口信息;
配置kubernetes Pod资源中容器的启动命令,所述启动命令将所述环境变量传入分布式机器学习任务启动脚本;
根据所述环境变量和所述容器的启动命令创建kubernetes Pod资源,所述kubernetesPod资源中容器配置为执行所述启动命令。
2.根据权利要求1所述的分布式机器学习任务启动方法,其特征在于,所述方法还包括基于kubernetes的域名机制生成所有机器学习节点的域名的步骤;
所述创建kubernetes Pod资源时,创建的kubernetes Pod资源与所述机器学习节点一一对应,且所述kubernetes Pod资源的名称与所对应的机器学习节点的域名相同。
3.根据权利要求2所述的分布式机器学习任务启动方法,其特征在于,所述方法还包括如下步骤:
创建kubernetes Service资源,创建的kubernetes Service资源与所述机器学习节点一一对应,且所述kubernetes Service资源的名称与所对应的机器学习节点的域名相同。
4.根据权利要求2所述的分布式机器学习任务启动方法,其特征在于,所述机器学习节点包括多个节点组,所述机器学习节点的域名包括节点组的识别号和节点在节点组中的识别号。
5.根据权利要求4所述的分布式机器学习任务启动方法,其特征在于,所述机器学习节点为基于TensorFlow模式的机器学习节点,所述机器学习节点根据不同角色分为多个节点组。
6.根据权利要求4所述的分布式机器学习任务启动方法,其特征在于,所述机器学习节点为基于MPI模式的机器学习节点,所述机器学习节点分为主节点组和从节点组;
所述主节点组中的机器学习节点所对应的kubernetes Pod资源中包括所述环境变量和容器的启动命令;
所述从节点组中的机器学习节点所对应的kubernetes Pod资源中不包括所述环境变量和容器的启动命令。
7.根据权利要求1所述的分布式机器学习任务启动方法,其特征在于,所述kubernetesPod资源中容器配置为创建完成后自动执行所述启动命令。
8.一种分布式机器学习任务启动系统,其特征在于,包括:
环境变量配置模块,用于配置kubernetes Pod资源中的环境变量,所述环境变量包括所有节点的域名和端口信息;
启动命令配置模块,用于配置kubernetes Pod资源中容器的启动命令,所述启动命令将所述环境变量传入分布式机器学习任务启动脚本;
Pod资源创建模块,用于根据所述环境变量和所述容器的启动命令创建kubernetesPod资源,所述kubernetes Pod资源中容器配置为执行所述启动命令。
9.根据权利要求8所述的分布式机器学习任务启动系统,其特征在于,所述系统还包括域名生成模块,用于基于kubernetes的域名机制生成所有机器学习节点的域名;
所述Pod资源创建模块创建的kubernetes Pod资源与所述机器学习节点一一对应,且所述kubernetes Pod资源的名称与所对应的机器学习节点的域名相同。
10.根据权利要求9所述的分布式机器学习任务启动系统,其特征在于,所述系统还包括Service资源创建模块,用于创建kubernetes Service资源,创建的kubernetes Service资源与所述机器学习节点一一对应,且所述kubernetes Service资源的名称与所对应的机器学习节点的域名相同。
11.一种分布式机器学习任务启动设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7中任一项所述的分布式机器学习任务启动方法的步骤。
12.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现权利要求1至7中任一项所述的分布式机器学习任务启动方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811482001.9A CN111352664B (zh) | 2018-12-05 | 2018-12-05 | 分布式机器学习任务启动方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811482001.9A CN111352664B (zh) | 2018-12-05 | 2018-12-05 | 分布式机器学习任务启动方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352664A CN111352664A (zh) | 2020-06-30 |
CN111352664B true CN111352664B (zh) | 2023-11-03 |
Family
ID=71196731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811482001.9A Active CN111352664B (zh) | 2018-12-05 | 2018-12-05 | 分布式机器学习任务启动方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352664B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076998A (zh) * | 2021-04-01 | 2021-07-06 | 重庆邮电大学 | 基于kubernetes深度神经网络模型的分布式分类方法 |
CN113242150B (zh) * | 2021-06-03 | 2022-11-22 | 上海天旦网络科技发展有限公司 | K8s中基于Calico网络插件的数据包抓取方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107707688A (zh) * | 2017-10-19 | 2018-02-16 | 杭州数梦工场科技有限公司 | 一种kubernetes集群解析宿主机主机名的方法及装置 |
CN107885551A (zh) * | 2017-11-27 | 2018-04-06 | 山东浪潮商用系统有限公司 | 一种服务部署方法、装置、可读介质及存储控制器 |
CN108062246A (zh) * | 2018-01-25 | 2018-05-22 | 北京百度网讯科技有限公司 | 用于深度学习框架的资源调度方法和装置 |
CN108536519A (zh) * | 2018-03-30 | 2018-09-14 | 平安科技(深圳)有限公司 | 自动搭建Kubernetes主节点的方法及终端设备 |
CN108874542A (zh) * | 2018-06-07 | 2018-11-23 | 桂林电子科技大学 | 基于神经网络的Kubernetes调度优化方法 |
CN108924268A (zh) * | 2018-09-11 | 2018-11-30 | 网宿科技股份有限公司 | 一种容器云服务系统及pod创建方法、装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10225335B2 (en) * | 2011-02-09 | 2019-03-05 | Cisco Technology, Inc. | Apparatus, systems and methods for container based service deployment |
US20180088935A1 (en) * | 2016-09-27 | 2018-03-29 | Ca, Inc. | Microservices application configuration based on runtime environment |
-
2018
- 2018-12-05 CN CN201811482001.9A patent/CN111352664B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107707688A (zh) * | 2017-10-19 | 2018-02-16 | 杭州数梦工场科技有限公司 | 一种kubernetes集群解析宿主机主机名的方法及装置 |
CN107885551A (zh) * | 2017-11-27 | 2018-04-06 | 山东浪潮商用系统有限公司 | 一种服务部署方法、装置、可读介质及存储控制器 |
CN108062246A (zh) * | 2018-01-25 | 2018-05-22 | 北京百度网讯科技有限公司 | 用于深度学习框架的资源调度方法和装置 |
CN108536519A (zh) * | 2018-03-30 | 2018-09-14 | 平安科技(深圳)有限公司 | 自动搭建Kubernetes主节点的方法及终端设备 |
CN108874542A (zh) * | 2018-06-07 | 2018-11-23 | 桂林电子科技大学 | 基于神经网络的Kubernetes调度优化方法 |
CN108924268A (zh) * | 2018-09-11 | 2018-11-30 | 网宿科技股份有限公司 | 一种容器云服务系统及pod创建方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111352664A (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107491329B (zh) | Docker镜像构建方法、设备、存储介质以及电子装置 | |
US9003001B2 (en) | Bios parameter virtualization via BIOS configuration profiles | |
CN111580861A (zh) | 用于计算机环境迁移的基于模式的人工智能计划器 | |
CN107678752B (zh) | 一种面向异构集群的任务处理方法及装置 | |
CN109474467B (zh) | 网络自动化管理方法、装置、存储介质及电子设备 | |
EP3525119B1 (en) | Fpga converter for deep learning models | |
CN111352664B (zh) | 分布式机器学习任务启动方法、系统、设备及存储介质 | |
CN115280283A (zh) | 在kubernets中运行pbs作业 | |
US10019345B2 (en) | Executing multi-version tests against a multi-version application | |
US20210149723A1 (en) | Method and apparatus for microservice architecture reconfiguration | |
CN110990081A (zh) | 微服务注册、发现方法及装置、存储介质及电子设备 | |
JP7185982B2 (ja) | データ処理システムにおけるジョブ管理 | |
CN114490062A (zh) | 一种本地磁盘的调度方法、装置、电子设备及存储介质 | |
CN114489954A (zh) | 基于虚拟化平台的租户创建方法、租户访问方法及设备 | |
CN111459506B (zh) | 深度学习平台集群的部署方法、装置、介质及电子设备 | |
WO2024001240A1 (zh) | 多种技术栈的任务集成方法及装置 | |
CN109814911A (zh) | 用于管理脚本程序的方法、装置、计算机设备及存储介质 | |
US8745620B2 (en) | Software tool and method for updating a virtual appliance | |
KR20190075508A (ko) | 가상화된 시스템 상에서 임베디드 소프트웨어를 자동으로 생성하는 방법 및 컴퓨팅 시스템 | |
CN112559006A (zh) | 企业客户端自动升级方法、系统、设备及存储介质 | |
CN106886373B (zh) | 物理机的磁盘操作方法、装置和物理机 | |
CN116737311B (zh) | 信创生态服务云平台交互方法 | |
US20240103991A1 (en) | Hci performance capability evaluation | |
US8555046B2 (en) | Computer system and its HW abstraction method | |
US20240012738A1 (en) | Defect recreation |
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 |