CN112348196A - 一种自适应rdma网络的分布式机器学习系统及方法 - Google Patents
一种自适应rdma网络的分布式机器学习系统及方法 Download PDFInfo
- Publication number
- CN112348196A CN112348196A CN201910731812.6A CN201910731812A CN112348196A CN 112348196 A CN112348196 A CN 112348196A CN 201910731812 A CN201910731812 A CN 201910731812A CN 112348196 A CN112348196 A CN 112348196A
- Authority
- CN
- China
- Prior art keywords
- network
- training
- distributed
- cluster
- rdma
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种的自适应RDMA网络的分布式机器学习系统及方法,在分布式训练任务被调度到训练集群后,通过检测训练集群网络环境以及根据检测自适应地选择训练集群网络用于分布式训练任务通信,尽可能为分布式任务选择其在训练过程中最优的网络环境,以使之分布式训练过程中充分使用高效的RDMA网络进行通信,以克服现有技术部署分布式训练任务存在的通信瓶颈问题,进而提高分布式训练效率。
Description
技术领域
本发明涉及分布式机器学习领域;具体地,涉及一种自适应RDMA网络的分布式机器学习系统及方法。
背景技术
机器学习,特别是深度学习,在人工智能驱动服务中获得了广泛的成功。随着模型越来越复杂,其训练的计算成本越来越高。若要实现高效及时的训练,则需发掘分布式系统并行计算的优势。业内领军企业如微软、Facebook和Google等已经开始尝试在成百上千的服务器组成的生产集群上运行分布式机器学习训练任务。
然而,一个具备实用意义的用于分布式训练的物理集群,其从构建部署到运行维护,都是极为专业且复杂甚至是繁琐的工作。将容器云技术应用到分布式机器学习领域,无疑可大大简化其构建部署运维工作的难度。
容器云技术不仅能够实现容器集群的快速部署,同时它也是一种轻量化的解决方案,且能够有效整合和管理着裸机资源。以Kubernetes平台运行分布式机器学习训练任务为例,Kubernetes不仅为打包应用提供一致的方法,保证应用在不同设备上运行的一致性,为应用的运行环境提供资源隔离,同时其对硬件底层的复杂性和节点管理进行了抽象,并且支持GPU的调度。
但是,无论是以若干主机服务器搭建的用于训练的物理集群,还是在容器云平台部署的训练集群,计算节点间的数据传输通常是以基于TCP/IP协议(也是目前广域网和局域网通用的网络协议)网络通信实现的。上述网络通信过程需要操作系统和协议栈的介入,但随着训练集越来越大,在参数交换(parameter exchange)过程中将不可避免占用大量的CPU资源,造成较大网络延时,严重制约训练效率。
远程直接内存访问技术,即RDMA(Remote Direct Memory Access)技术,则是一种直接内存访问技术;它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入。因此,相较于上述基于通用的TCP/IP协议的常规网络,RDMA网络通信可以避免网络传输过程中大量的CPU资源占用,同时也减小了网络延时。那么,为分布式训练任务搭建/部署具有RDMA网络的训练集群,并在训练过程中为训练数据(例如参数交换过程中的数据通信)提供RDMA网络通信,显然是一种突破参数交互网络通信瓶颈、提高分布式训练效率的有效途径。
在分布式训练过程中,通常是以环境配置参数来保障被分配到各计算节点的子任务间的依赖关系和控制子任务间的数据一致性的。具体而言,一般地,每个子任务对应的环境配置参数将包括全部子任务以及当前子任务的一些信息(如子任务编号、网络连接参数等)。在现实的部署及训练过程中,除利用环境配置参数调度分布式任务到训练集群(即将各个子任务分配到训练集群各计算节点)外,还包括在训练过程中通过环境配置参数中的网络连接参数实现运行在不同计算节点的训练应用程序间的数据通信。
因此,在实践中,以在具有RDMA网络的物理集群部署分布式训练任务为例,为实现RDMA网络环境下的高效分布式训练,一般是先行获取训练集群各计算节点的RDMA网络IP,手动/利用脚本生成包括RDMA网络IP(作为网络连接参数)的环境配置参数,进而实现任务被调度到训练集群后的高效分布式训练。
然而,在容器云平台上部署分布式训练,往往被认为是能够更高效地利用平台资源。为更好地利用资源,在容器云平台部署训练任务时,通常是:先将训练任务分解为若干个子任务,并为之生成环境配置参数,然后才为子任务创建对应的容器/容器组(容器/容器组是指容器集群在编排管理时最小单位;其中,容器即在容器环境下运行独立应用的容器;容器组,是指在容器环境下运行独立应用的“逻辑主机”,运行着一个或者多个紧密耦合的应用容器,如Kubernetes平台的Pod)。分布式训练启动后,运行在各计算节点的子任务训练应用程序间则是通过连接访问服务经由常规网络(即基于TCP/IP的网络,一般作为多网络集群的默认网络)实现通信的。而这种通信机制恰是需要系统内核介入的。而RDMA网络实现高效通信的关键则是不依赖系统内核介入。
因此,即使当分布式训练任务被调度到具有RDMA网络的双网络容器训练集群,在分布式训练启动后,运行在集群各计算节点(这里是指用于训练的容器/容器组)的训练应用程序也是无法发现和有效地使用RDMA网络,进而也就仍无法突破通信瓶颈,实现高效训练的。
此外,即便是在具有RDMA网络的多网络物理集群部署分布式训练任务,也需手动/利用脚本生成特殊的环境配置参数(以RDMA网络IP为网络连接参数的环境配置参数);而手动配置,难免不出错;而且也不适用于大规模集群部署。
需要指出的是,正是因为大部分分布式机器学习框架在训练过程中过度依赖部署调度时设定、提供的网络环境,对被调度到的训练集群网络类型并不感知,才导致分布式训练任务被调度到训练集群后,在训练过程中只能固定地选择使用默认网络(通常的)或RDMA网络(定制的),而不能根据被调度的训练集群的当前网络实际情况,自适应地选择网络用于训练过程中训练应用的数据传输。
发明内容
有鉴于此,本发明提供一种自适应RDMA网络的分布式机器学习系统及方法。
一方面,本发明实施例提供一种自适应RDMA网络的分布式机器学习系统。
上述的自适应RDMA网络的分布式机器学习系统,包括:
网络环境自适应单元和分布式训练执行单元;其中,
网络环境自适应单元,用于检测训练集群网络环境以及根据检测自适应地选择训练集群网络用于分布式训练任务通信;
而分布式训练执行单元,则用于在所述网络环境自适应单元为分布式训练任务确定网络环境后在确定的网络环境下执行分布式训练任务;
其中,网络环境自适应单元,包括网络检测模块和网络环境重置模块;
网络检测模块用于检测训练集群是否存在RDMA网络,即检测训练集群各计算节点是否接入RDMA网络信息;
若训练集群存在RDMA网络,网络环境自适应单元则通过网络环境重置模块为分布式训练任务选择RDMA网络;
若训练集群不存在RDMA网络,网络环境自适应单元则不改变分布式训练任务的网络环境;
网络环境重置模块,用于在训练集群存在RDMA网络时,获取RDMA网络信息并据此将分布式训练任务的网络环境重置为RDMA网络。
另一方面,本发明实施例提供一种自适应RDMA网络的分布式训练方法。
上述的自适应RDMA网络的分布式训练方法,包括:
当分布式训练任务被调度到训练集群时,
在分布式训练启动前,
或,
在分布式训练启动后,即训练集群各计算节点分别启动对应子任务的训练应用程序后,且在各子任务应用程序执行训练前,
自适应地为分布式训练任务选择网络:
检测训练集群网络环境;具体地,获取训练集群的RDMA网络信息,即各计算节点的RDMA网络信息;
根据检测自适应地选择训练集群网络用于分布式训练任务通信;
若训练集群存在RDMA网络,则自适应地选择RDMA网络为分布式训练任务训练过程中数据传输网络:重置分布式训练任务(即各子任务)在训练过程中的网络环境;具体地,即根据训练集群的RDMA网络信息更新分布式训练任务的环境配置参数,实现分布式训练任务在训练过程中的网络环境重置;
若训练集群不存在RDMA网络,则不改变分布式训练任务的网络环境;
自适应网络环境后,则开始执行分布式训练,即各子任务应用程序执行训练,并在训练过程中根据自适应选择的网络进行数据通信。
上述实施例中的自适应RDMA网络的分布式机器学习系统及方法,在分布式训练任务被调度到训练集群后,通过检测训练集群网络环境以及根据检测自适应地选择训练集群网络用于分布式训练任务通信,尽可能为分布式任务选择其在训练过程中最优的网络环境,以使之分布式训练过程中充分使用高效的RDMA网络进行通信,以克服现有技术部署分布式训练任务存在的通信瓶颈问题,进而提高分布式训练效率。
附图说明
为更加清楚地说明本发明实施例或现有技术中的技术方案,下面将对本发明中一部分实施例或现有技术描述中涉及的附图做简单介绍。
图1为基于本发明一些优选实施例提供的一种的自适应RDMA网络的分布式训练方法流程示意图。
具体实施方式
下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下为本发明的一些优选实施例。这些优选实施例中的一些提供一种自适应RDMA网络的分布式机器学习系统。该系统包括:网络环境自适应单元和分布式训练执行单元;其中,网络环境自适应单元,用于检测训练集群网络环境以及根据检测自适应地选择训练集群网络用于分布式训练任务通信;分布式训练执行单元,则用于在所述网络环境自适应单元为分布式训练任务确定网络环境后在确定的网络环境下执行分布式训练任务;
其中,具体地,网络环境自适应单元,
还包括网络检测模块和网络环境重置模块;
网络检测模块用于检测训练集群是否存在RDMA网络,即检测训练集群各计算节点是否接入RDMA网络信息:在分布式训练启动后,根据环境配置参数中的任务ID(预先设定)或依靠ZooKeeper等方式从各计算节点中确定一主节点来汇集训练集群的RDMA网络IP,得到最新的训练集群RDMA网络状态;
若训练集群存在RDMA网络,网络环境自适应单元则通过网络环境重置模块为分布式训练任务选择RDMA网络;具体地,根据其更新分布式训练任务的环境配置参数,即训练集群RDMA网络信息(即各计算节点的RDMA网络IP)替换分布式训练任务环境配置参数中的默认网络连接参数,实现网络环境的重置选择;
若训练集群不存在RDMA网络,网络环境自适应单元则不改变分布式训练任务的网络环境;即不改变分布式训练任务的环境配置参数;
而分布式训练执行单元,则用于在所述网络环境自适应单元为分布式训练任务确定网络环境后在确定的网络环境下执行分布式训练任务;即在训练过程中利用自适应网络环境后的环境配置参数(可能被修改,也可能认为默认环境配置参数)使用对应的网络进行数据通信。
上述优先实施例中的一些提供的基于RDMA网络的分布式训练系统中,其分布式训练任务部署在容器云平台,其计算节点非一般意义上的物理主机,而是容器/容器组这样的虚拟化计算机资源。
上述优先实施例中的一些提供的基于RDMA网络的分布式训练系统中,在训练集群的计算节点中,除在训练过程中用于数据并行计算的工作节点(Worker)外,还包括参数服务器(Parameter server)节点,用于负责维护全局共享的参数。
图1则为本发明的另一些优选实施例提供的自适应RDMA网络的分布式训练方法。如图1所示,该方法包括:
当分布式训练任务被调度到训练集群,
在分布式训练启动后,即训练集群各计算节点分别启动对应子任务的训练应用程序后,且在各子任务应用程序执行训练前,
自适应地为分布式训练任务选择网络:
检测训练集群是否存在RDMA网络,即检测训练集群各计算节点是否接入RDMA网络信息;这里采用了根据环境配置参数中的任务ID(预先设定)或依靠ZooKeeper等方式从各计算节点中确定一主节点来汇集训练集群的RDMA网络IP,得到最新的训练集群RDMA网络状态;
根据检测自适应地选择训练集群网络用于分布式训练任务通信:
若训练集群存在RDMA网络,则自适应地选择RDMA网络为分布式训练任务训练过程中数据传输网络:重置分布式训练任务(即各子任务)在训练过程中的网络环境;在这里,根据训练集群的RDMA网络信息更新分布式训练任务的环境配置参数,实现分布式训练任务在训练过程中的网络环境重置;具体的,是以检测获得的RDMA网络信息替换环境配置参数中默认的网络连接参数;
若训练集群不存在RDMA网络,则不改变分布式训练任务的网络环境;
自适应网络环境后,则开始执行分布式训练,即各子任务应用程序执行训练,并在训练过程中根据自适应选择的网络进行数据通信。
上述优先实施例中的一些提供的自适应RDMA网络的分布式训练方法中,其分布式训练任务部署在容器云平台,其计算节点非一般意义上的物理主机,而是容器/容器组这样的虚拟化计算机资源。
上述优先实施例中的一些提供的自适应RDMA网络的分布式训练方法中,在训练集群的计算节点中,除在训练过程中用于数据并行计算的工作节点(Worker)外,还包括参数服务器(Parameter server)节点,用于负责维护全局共享的参数。
而以下为基于本发明一优选实施例提供的高效分布式训练方法在Kubernetes平台部署和执行分布式tensorflow任务的过程。其具体过程如下:
当分布式tensorflow任务被调度到Kubernetes平台上的容器集群后,
启动分布式TensorFlow任务,容器集群的每个Pod中起一个分布式TensorFlow训练进程,用于执行调度到该Pod的子任务;
在各训练进程开始执行子任务训练前,
运行在各Pod的训练进程检测训练集群的RDMA网络信息,即训练集群各Pod检测是否被分配的(虚拟)RDMA网卡IP;
若均有,
并以RDMA网卡IP替换TF_CONFIG中的默认网络连接参数——连接访问服务名称,重新生成TF_CONFIG替换原TF_CONFIG;
更新完成后,,各Pod即可开始执行tensorflow训练,进入构建图、数据并行计算阶段;在这之后的训练过程中,运行在各Pod的tensorflow应用程序自然会根据更新的TF_CONFIG使用RDMA网络进行数据通信;
若其中任何一计算节点无,则认为集群无完整RDMA网络,
这里则可不改变TF_CONFIG,直接进入构建图、数据并行计算阶段;在这之后的训练过程中,运行在各Pod的tensorflow应用程序自然会根据原TF_CONFIG使用常规网络进行数据通信;
以上所述仅为本发明的具体实施方式,但本发明的保护范围并不局限于此。
Claims (10)
1.一种自适应RDMA网络的分布式机器学习系统,其特征在于,包括:
网络环境自适应单元和分布式训练执行单元;其中,
网络环境自适应单元,用于检测训练集群网络环境以及根据检测自适应地选择训练集群网络用于分布式训练任务通信;
分布式训练执行单元,则用于在所述网络环境自适应单元为分布式训练任务确定网络环境后在确定的网络环境下执行分布式训练任务。
2.根据权利要求1所述的一种自适应RDMA网络的分布式机器学习系统,其特征在于,
所述网络环境自适应单元,包括网络检测模块和网络环境重置模块;
网络检测模块用于检测训练集群是否存在RDMA网络,即检测训练集群各计算节点是否接入RDMA网络信息;
若训练集群存在RDMA网络,网络环境自适应单元则通过网络环境重置模块为分布式训练任务选择RDMA网络;
若训练集群不存在RDMA网络,网络环境自适应单元则不改变分布式训练任务的网络环境。
3.根据权利要求2所述的一种自适应RDMA网络的分布式机器学习系统,其特征在于,
所述网络环境重置模块根据其更新分布式训练任务的环境配置参数,即训练集群RDMA网络信息替换分布式训练任务环境配置参数中的默认网络连接参数,实现网络的重置选择。
4.根据权利要求1所述的一种自适应RDMA网络的分布式机器学习系统,其特征在于,
所述集群的计算节点,还包括参数服务器节点,用于负责维护全局共享的参数。
5.根据权利要求1所述的一种自适应RDMA网络的分布式机器学习系统,其特征在于,
所述分布式训练任务在容器云平台部署时,所述集群的计算节点为容器/容器组。
6.一种自适应RDMA网络的分布式训练方法,其特征在于,包括:
当分布式训练任务被调度到训练集群时,
在分布式训练启动前,
或,
在分布式训练启动后,即训练集群各计算节点分别启动对应子任务的训练应用程序后,且在各子任务应用程序执行训练前,
自适应地为分布式训练任务选择网络;
以及自适应网络环境后,开始执行分布式训练,并在训练过程中根据自适应选择的网络进行数据通信。
7.根据权利要求6所述的自适应RDMA网络的分布式训练方法,其特征在于,
所述的自适应地为分布式训练任务选择网络,包括:
检测训练集群网络环境;即获取训练集群的RDMA网络信息,即各计算节点的RDMA网络信息;
根据检测自适应地选择训练集群网络用于分布式训练任务通信:
若训练集群存在RDMA网络,则重置分布式训练任务在训练过程中的网络为RDMA网络;
若训练集群不存在RDMA网络,则不改变分布式训练任务的网络环境。
8.根据权利要求7所述的自适应RDMA网络的分布式训练方法,其特征在于,
所述重置分布式训练任务在训练过程中的网络为RDMA网络:
即根据其更新分布式训练任务的环境配置参数,即以训练集群RDMA网络信息替换分布式训练任务环境配置参数中的默认网络连接参数,实现网络的重置选择。
9.根据权利要求6所述的自适应RDMA网络的分布式训练方法,其特征在于,
所述集群的计算节点,还包括参数服务器节点,用于负责维护全局共享的参数。
10.根据权利要求6所述的自适应RDMA网络的分布式训练方法,其特征在于,
所述分布式训练任务在容器云平台部署时,所述集群的计算节点为容器/容器组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910731812.6A CN112348196A (zh) | 2019-08-08 | 2019-08-08 | 一种自适应rdma网络的分布式机器学习系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910731812.6A CN112348196A (zh) | 2019-08-08 | 2019-08-08 | 一种自适应rdma网络的分布式机器学习系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112348196A true CN112348196A (zh) | 2021-02-09 |
Family
ID=74366898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910731812.6A Pending CN112348196A (zh) | 2019-08-08 | 2019-08-08 | 一种自适应rdma网络的分布式机器学习系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112348196A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115529236A (zh) * | 2022-09-05 | 2022-12-27 | 苏州浪潮智能科技有限公司 | 无损网络配置方法、装置及计算机设备 |
-
2019
- 2019-08-08 CN CN201910731812.6A patent/CN112348196A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115529236A (zh) * | 2022-09-05 | 2022-12-27 | 苏州浪潮智能科技有限公司 | 无损网络配置方法、装置及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Adaptive interference-aware VNF placement for service-customized 5G network slices | |
US10931507B2 (en) | Systems and methods for selectively implementing services on virtual machines and containers | |
US9661071B2 (en) | Apparatus, systems and methods for deployment and management of distributed computing systems and applications | |
CN109976774B (zh) | 区块链节点部署方法、装置、设备和存储介质 | |
CN107145380B (zh) | 虚拟资源编排方法及装置 | |
CN110750282B (zh) | 用于运行应用程序的方法、装置及gpu节点 | |
CN111683074A (zh) | 一种基于nfv的安全网络架构和网络安全管理方法 | |
CN110311948B (zh) | 容器/容器组间的通信方法及基于此的容器云网络系统 | |
CN111880902A (zh) | 一种pod创建方法、装置、设备及可读存储介质 | |
CN112416737B (zh) | 一种容器的测试方法、装置、设备和存储介质 | |
EP3929748A1 (en) | Orchestrating configuration of a programmable accelerator | |
CN110308986B (zh) | 基于优化调度的容器云上分布式训练数据通信的方法 | |
CN110198364B (zh) | 基于指定dns解析的容器云上分布式训练数据通信的方法 | |
CN112364897B (zh) | 分布式训练方法及装置、存储介质及电子设备 | |
KR20180028499A (ko) | Ict 서비스 제공 방법 및 시스템 | |
Schoonover et al. | Galaxy: a network emulation framework for cybersecurity | |
Jansen et al. | The spec-rg reference architecture for the edge continuum | |
CN112348196A (zh) | 一种自适应rdma网络的分布式机器学习系统及方法 | |
US20220405104A1 (en) | Cross platform and platform agnostic accelerator remoting service | |
CN110300192B (zh) | 一种根据ip分配表更新分布式训练任务连接参数的方法 | |
Herlicq et al. | Nextgenemo: an efficient provisioning of edge-native applications | |
CN112348195A (zh) | 一种基于rdma网络的分布式训练系统及高效训练方法 | |
CN112350842B (zh) | 一种重置分布式训练任务训练过程中数据传输网络的方法 | |
CN112241323A (zh) | 基于fpga服务器的计算资源发现及管理方法、系统 | |
Hao | Edge computing on low availability devices with K3S in a smart home IoT system |
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 |