CN111211988B - 面向分布式机器学习的数据传输方法及系统 - Google Patents

面向分布式机器学习的数据传输方法及系统 Download PDF

Info

Publication number
CN111211988B
CN111211988B CN201911227383.5A CN201911227383A CN111211988B CN 111211988 B CN111211988 B CN 111211988B CN 201911227383 A CN201911227383 A CN 201911227383A CN 111211988 B CN111211988 B CN 111211988B
Authority
CN
China
Prior art keywords
data
original data
transmission
data stream
switch
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
Application number
CN201911227383.5A
Other languages
English (en)
Other versions
CN111211988A (zh
Inventor
秦阳
杨伟宏
江祖凯
余智钦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Graduate School Harbin Institute of Technology
Original Assignee
Shenzhen Graduate School Harbin Institute of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Graduate School Harbin Institute of Technology filed Critical Shenzhen Graduate School Harbin Institute of Technology
Priority to CN201911227383.5A priority Critical patent/CN111211988B/zh
Publication of CN111211988A publication Critical patent/CN111211988A/zh
Application granted granted Critical
Publication of CN111211988B publication Critical patent/CN111211988B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • H04L47/225Determination of shaping rate, e.g. using a moving window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种面向分布式机器学习的数据传输方法及系统。该方法包括:获取待传输数据,基于待传输数据形成至少两个原始数据流,每一原始数据流包括至少两个原始数据包;基于数据中心网络拓扑结构,获取每一原始数据流对应的目标传输速率;基于每一原始数据流对应的目标传输速率,同步将至少两个原始数据流中的原始数据包通过交换机发送给对应的接收方服务器;实时监控预设时间段内,能否接收到接收方服务器通过交换机发送的拥塞通知包,获取拥塞监控结果;基于拥塞监控结果进行传输速率调节,更新每一原始数据流对应的目标传输速率。该方法可以有效平衡因数据中心网络拓扑结构中网络拥塞而造成数据传输过程中的传输时间差异。

Description

面向分布式机器学习的数据传输方法及系统
技术领域
本发明涉及分布式计算技术领域,尤其涉及一种面向分布式机器学习的数据传输方法及系统。
背景技术
随着大数据和高效计算资源的出现,作为人工智能(Artificial Intelligence,简称AI)发展迅速领域之一的机器学习在很多应用场景(如自然语言处理、图像识别、语音识别和机器翻译等)中都取得了重大突破。但是,随着任务复杂性的增加,数据和深度学习模型的规模变得日益庞大。简单的采用单机加GPU计算的方式已经不能满足大规模深度学习模型和大规模训练数据集所要求的计算能力和存储空间。为了提高深度学习模型的训练效率,研究人员采用分布式技术来执行大规模的训练任务,以达到高效地训练出性能优良的深度学习模型的目的。海量数据是AI的基础,算力是AI的必备条件,具备强大算力的数据中心正好切合深度学习模型进行分布式训练时对算力的需求。由于现有的数据中心网络的网络协议并不能很好地适应DML网络传输的数据流特征,因此对面向分布式机器学习(Distributed Machine Learning,以下简称为DML)的数据中心相关关键技术进行研究具有必要性和重要性。
为了提高分布式计算的通信效率,分布式计算的网络方面应用了具有更高带宽、更低时延的RDMA(Remote Direct Memory Access的缩写,即远程直接存取)技术。RoCEv2是基于UDP/IP实现的RDMA协议,但由于RoCEv2协议没有对发送方进行速率控制,因此会导致发送方发送过多的数据而造成网络拥塞。为此,需研究探索关于RoCEv2传输协议的改进,其中一种重要的改进协议就是DCQCN(Data Center Quantized Congestion Notification的缩写,即数据中心量化拥塞通知)。在DCQCN中,交换机以一定概率为数据包打上CN(Congestion Notification的缩写,即拥塞通知)标识。当接收到带有CN标识的数据包,接受方会将一个CNP(Congestion Notification Packet的缩写,即拥塞通知包)发送给发送方。此时,发送方在接收到CNP后会对发送速率进行调整。
在多瓶颈的场景下使用DCQCN协议进行数据传输,如果数据流经过越多的瓶颈,其被CN标识的概率就会更大。这样一来,经过瓶颈多的数据流会获得更少的带宽,而那些瓶颈数量少的数据流则能获得较大的带宽,它们可以率先完成数据传输。很显然,DCQCN协议对瓶颈数量多的数据流是不公平的。对于分布式机器学习的训练任务而言,数据流传输时间的差异会影响训练性能。具体来说,遭遇多瓶颈的数据流会拖慢一次迭代的完成时间,从而影响下一次迭代任务的进行。
发明内容
本发明提供一种面向分布式机器学习的数据传输方法及系统,以解决当前面向分布式机器学习的数据传输过程中因网络拥塞而导致数据流传输时间差异较大的问题。
本发明提供一种面向分布式机器学习的数据传输方法,包括发送方服务器执行的如下步骤:
获取待传输数据,基于所述待传输数据形成至少两个原始数据流,每一所述原始数据流包括至少两个原始数据包;
基于数据中心网络拓扑结构,获取每一所述原始数据流对应的目标传输速率;
基于每一所述原始数据流对应的目标传输速率,同步将至少两个所述原始数据流中的原始数据包通过交换机发送给对应的接收方服务器;
实时监控预设时间段内,能否接收到接收方服务器通过交换机发送的拥塞通知包,获取拥塞监控结果;
基于所述拥塞监控结果进行传输速率调节,更新每一所述原始数据流对应的目标传输速率,重复执行所述基于每一所述原始数据流对应的目标传输速率,将至少两个所述原始数据流中的原始数据包同步发送给交换机的步骤。
优选地,所述基于数据中心网络拓扑结构,获取每一所述原始数据流对应的目标传输速率,包括:
基于数据中心网络拓扑结构和速率分配模型,获取每一所述原始数据流对应的目标传输速;
所述速率分配模型为
Figure BDA0002302613710000021
f(ri)=ni×Si/ri
Figure BDA0002302613710000022
其中,K为原始数据流的数量,i为原始数据流的序号,ri为分配给第i个原始数据流的目标传输速率,Si为第i个原始数据流的传输量,ni为第i个原始数据流在数据中心网络拓扑结构中最短传输路径的跳数,s.t.为约束条件,j为数据中心网络拓扑结构中链路的序号,aij为1或0的常数,aij=1表示第i个原始数据流使用第j个链路,aij=0表示第i个原始数据流没有使用第j个链路,Cj为第j个链路的带宽,s为数据中心网络拓扑结构中交换机的序号,Qs为交换机s的最大队列长度,Inq(s)为到达第s个交换机的数据包数量,Deq(s)为离开第s个交换机的数据包数量。
优选地,所述基于所述拥塞监控结果进行传输速率调节,更新每一所述原始数据流对应的目标传输速率,包括:
若所述拥塞监控结果为在预设时间段内接收到所述原始数据流对应的拥塞通知包,则基于所述拥塞通知包确定对应的目标数据流,将所述目标数据流对应的目标传输速率和预设调节速率的差值,更新为所述目标数据流对应的目标传输速率;
若所述拥塞监控结果为在预设时间段内未接收到所述原始数据流对应的拥塞通知包,则将所述目标传输速率和预设调节速率的和值,更新为所述原始数据流对应的目标传输速率。
本发明提供一种面向分布式机器学习的数据传输方法,包括接收方服务器执行的如下步骤:
接收交换机发送的当前数据包,基于所述当前数据包确定对应的目标数据流和网络状态标识;
更新所述目标数据流对应的当前传输进度,获取所述接收方服务器上已接收数据流对应的平均传输进度;
若所述网络状态标识为携带拥塞通知标识且所述当前传输进度大于所述平均传输进度,则生成与所述目标数据流相对应的拥塞通知包,将所述拥塞通知包通过所述交换机发送给发送方服务器,更新所述接收方服务器上已接收数据流对应的平均传输进度。
优选地,在所述更新所述目标数据流对应的当前传输进度,获取所述接收方服务器上已接收数据流对应的平均传输进度之后,所述面向分布式机器学习的数据传输方法还包括:
若所述网络状态标识为未携带所述拥塞通知标识,或者所述网络状态标识为携带所述拥塞通知标识且所述当前传输进度不大于所述平均传输进度,则更新所述接收方服务器上已接收数据流对应的平均传输进度。
优选地,获取所述接收方服务器上已接收数据流对应的平均传输进度,包括:
统计系统当前时间之前所述接收方服务器上所有历史数据包对应的第一数据包数量,确定所有所述历史数据包所属的已接收数据流对应的第一数据流数量;
基于所述第一数据包数量和所述第一数据流数量,获取所述接收方服务器上已接收数据流对应的平均传输进度。
本发明提供一种面向分布式机器学习的数据传输方法,包括交换机执行的如下步骤:
接收待转数据包,确定所述待转数据包对应的下一接收设备;
若所述下一接收设备为接收方服务器,基于所述待转数据包确定对应的目标数据流,更新所述目标数据流对应的当前传输进度;
获取所述交换机已接收数据流对应的平均传输进度;
若所述当前传输进度不大于所述平均传输进度,则删除所述待转数据包上的拥塞通知标识,更新所述交换机上已接收数据流对应的平均传输进度,向所述接收方服务器转发所述待转数据包。
优选地,在所述确定所述待转数据包对应的下一接收设备之后,所述面向分布式机器学习的数据传输方法还包括:
若所述下一接收设备不为接收方服务器,则实时检测所述交换机的当前网络状态;
若所述当前网络状态为拥塞状态,则基于预设概率给所述待转数据包标注拥塞通知标识,向下一接收设备转发所述待转数据包。
优选地,所述获取所述交换机已接收数据流对应的平均传输进度,包括:
统计系统当前时间之前所述交换机已接收的第二历史数据包对应的第二数据包数量,确定所有所述第二历史数据包对应的第二数据流数量;
基于所述第二数据包数量和所述第二数据流数量,获取所述交换机上已接收数据流对应的平均传输进度。
本发明提供一种面向分布式机器学习的数据传输系统,包括发送方服务器、接收方服务器、与所述发送方服务器和所述接收方服务器通信相连的交换机,所述发送方服务器、所述接收方服务器和所述交换机均包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述发送方服务器的处理器执行所述计算机程序时实现上述面向分布式机器学习的数据传输方法,所述接收方服务器的处理器执行所述计算机程序时实现上述面向分布式机器学习的数据传输方法,所述交换机的处理器执行所述计算机程序时实现上述面向分布式机器学习的数据传输方法。
上述面向分布式机器学习的数据传输方法及系统中,在基于待传输数据形成至少两个原始数据流后,基于根据数据中心网络拓扑结构确定的原始数据流对应的目标传输速率,同步发送至少两个原始数据流中的原始数据包,以保证发送方服务器发送至少两个原始数据流中的原始数据包的时间同步性,有助于后续平衡因数据中心网络拓扑结构而造成的传输时间差异的准确性;根据实时监控预设时间段内能否接收到拥塞通知包的拥塞监控结果进行传输速率调节,以更新每一原始数据流对应的目标传输速率,从而平衡因数据中心网络拓扑结构中网络拥塞而造成数据传输过程中的传输时间差异,可避免在面向分布式机器学习过程中因数据传输时间差异而影响训练性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是数据中心网络拓扑结构Fat-Tree的一示意图;
图2是数据中心网络拓扑结构BCube的一示意;
图3是本发明一实施例中面向分布式机器学习的数据传输方法的一流程图;
图4是本发明一实施例中面向分布式机器学习的数据传输方法的另一流程图;
图5是本发明一实施例中面向分布式机器学习的数据传输方法的另一流程图;
图6是本发明与现有技术在Fat-tree的平均网络吞吐量对比图;
图7是本发明与现有技术在Fat-tree下数据流完成时间对比图;
图8是本发明与现有技术在Fat-tree下数据流完成时间的CDF对比图;
图9是本发明与现有技术在BCube的平均网络吞吐量对比图;
图10是本发明与现有技术在BCube下数据流完成时间对比图;
图11是本发明与现有技术在BCube下数据流完成时间的CDF对比图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例所提供的面向分布式机器学习的数据传输方法及系统,针对分布式机器学习(即DML)的数据流的特征,以减少参数同步的等待时间为目标,提出完成时间平衡传输协议(Balanced Completion Time Protocol,简称为BCTP),以平衡因网络拓扑而造成的传输时间差异。本发明实施例所提供的面向分布式机器学习的数据传输方法及系统,通过统计数据流的传输完成进度,当网络发生拥塞时,根据数据流的传输完成进度对其进行传输速率调控。本发明实施例提出BCTP的两种实现方式,即BCTP-NIC和BCTP-switch,其中,BCTP-NIC主要由服务器进行调控,而BCTP-switch主要由交换机进行调控。
本发明实施例提供一种面向分布式机器学习的数据传输系统,该面向分布式机器学习的数据传输系统,包括发送方服务器、接收方服务器、与发送方服务器和接收方服务器通信相连的交换机,发送方服务器、接收方服务器和交换机均包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序。发送方服务器的处理器执行计算机程序时实现下述实施例中的面向分布式机器学习的数据传输方法,如步骤S31-S35所示。或者,接收方服务器的处理器执行计算机程序时实现下述实施例中的面向分布式机器学习的数据传输方法,如步骤S41-43所示。本实施例中,发送方服务器和接收方服务器的处理器执行计算机程序时,可实现基于BCTP-NIC这一时间平衡传输协议进行数据传输。相应地,交换机的处理器执行计算机程序时实现下述面向分布式机器学习的数据传输方法,如步骤S51-S56,即交换机的处理器执行计算机程序时,可实现基于BCTP-switch这一时间平衡传输协议进行数据传输。
为了便于描述,将用于发送数据的服务器定义为发送方服务器,将用于接收数据的服务器定义为接收方服务器,可以理解地,由于任一服务器既可以发送数据,也可以接收数据,因此,同一服务器可以作为发送数据A的发送方服务器,也可以作为接收数据B的接收方服务器。
为了便于描述,可将交换机划分为边缘交换机和中间交换机,其中,边缘交换机是用于将接收到的数据转发给接收方服务器的交换机,用于维护数据流传输的完成进度,如图1中S2将S5发送的数据转发给R4,则R4为接收方服务器,此时S2为边缘交换机。中间交换机是除了边缘交换机以外的用于转发数据的其他交换机,例如,S1将R1发送的数据转发给S6,此时R1为发送方服务器,S1为中间交换机。
作为一示例,本发明以常用的数据中心网络拓扑结构Fat-Tree为例进行说明,如图1所示,该面向分布式机器学习的数据传输系统包括R1、R2、R3、R4、R5、R6、R7和R8这8个服务器,包括S1、S2、S3、S4、S5、S6、S7、S8、S9和S10这10个交换机,其中,R1、R2、R3、R4、R5、R6、R7和R8这8个服务器既可以作为发送方服务器,也可以作为接收方服务器;S1、S2、S3和S4这4个交换机可与接收方服务器相连,在需要将数据转发给接收方服务器时,为边缘交换机,S5、S6、S7、S8、S9和S10这6个交换机不与接收方服务器相连,不会将数据转发给接收方服务器,因此,只能为中间交换机。
作为一示例,本发明以常用的数据中心网络拓扑结构BCube为例进行说明,如图2所示,该面向分布式机器学习的数据传输系统包括R1、R2、R3、R4、R5、R6、R7、R8和R9这9个服务器,包括S1、S2、S3、S4、S5和S6这6个交换机,其中,R1、R2、R3、R4、R5、R6、R7、R8和R9这9个服务器既可以作为发送方服务器,也可以作为接收方服务器;S1、S2、S3、S4、S5和S6这6个交换机均可以为边缘交换机。
在一实施例中,如图3所示,提供一种面向分布式机器学习的数据传输方法,包括发送方服务器执行的如下步骤:
S31:获取待传输数据,基于待传输数据形成至少两个原始数据流,每一原始数据流包括至少两个原始数据包。
其中,待传输数据是指需要通过发送方服务器发送给接收方服务器的数据。原始数据流是待传输数据在传输过程中所使用的数字编码信号序列,该原始数据流是只能以事先规定好的顺序被读取一次的待传输数据的一个序列。原始数据包是待传输数据在数据传输过程中的最小单位,每一个原始数据流包括至少两个原始数据包,在数据传输过程中,需将原始数据流中的至少两个原始数据包依次通过数据中心网络拓扑结构的交换机发送给接收方服务器。
作为一示例,发送方服务器在接收到需要通过数据中心网络拓扑结构传输的待传输数据之后,基于发送方服务器所要进行的面向分布式机器学习对应的数据中心网络拓扑结构,确定与发送方服务器对应的至少两个接收方服务器,形成与接收方服务器数量相匹配的至少两个原始数据流,即每一原始数据流需发送给一个接收方服务器,每一原始数据流包括至少两个原始数据包。例如,图1中的服务器R1在接收到待传输数据之后,由于在面向分布式机器学习对海量数据进行处理过程中,需使海量数据在不同服务器之间共享,需将服务器R1作为发送方服务器,将待传输数据发送给其他服务器,此时,R2、R3、R4、R5、R6、R7和R8这7个服务器均为接收方服务器,因此,可基于同一待传输数据形成7个原始数据流,每个原始数据流包括至少两个原始数据包;相同地,服务器R1可作为接收方服务器,可接收R2、R3、R4、R5、R6、R7和R8这7个发送方服务器发送的其他待传输数据对应的原始数据流。
进一步地,为了便于识别不同原始数据流并监控不同原始数据流的传输进度,可给每一原始数据流增加数据流标识,该数据流标识是用于唯一识别某一原始数据流的标识,例如,可采用L1-2表示由发送方服务器R1发送给接收方服务器R2的原始数据流,采用L1-8表示由发送方服务器R1发送给接收方服务器R8的原始数据流。相应地,每一原始数据流上的至少两个原始数据包均携带该数据流标识,以使接收方服务器在接收到每一原始数据包时,可根据其所携带的数据流标识确定其对应的目标数据流。
S32:基于数据中心网络拓扑结构,获取每一原始数据流对应的目标传输速率。
其中,原始数据流对应的目标传输速率是用于传输原始数据流中的每一原始数据包的传输速率。
作为一示例,在发送方服务器开始发送待传输数据对应的原始数据流时,可采用默认设置的初始传输速率作为原始数据流对应的目标传输速率,例如,可预先根据数据中心拓扑结构中交换机形成的核心交换层的大小,预先默认设置由发送方服务器向核心交换层的交换机传输数据的默认传输速率作为目标传输速率,使得所有原始数据流均按这一默认传输速率开始传输原始数据流中的原始数据包,以实现快速确定每一原始数据流对应的目标传输速率。
作为一示例,步骤S32,即基于数据中心网络拓扑结构,获取每一原始数据流对应的目标传输速率,具体包括如下步骤:基于数据中心网络拓扑结构和速率分配模型,获取每一原始数据流对应的目标传输速;
速率分配模型为
Figure BDA0002302613710000081
f(ri)=ni×Si/ri
Figure BDA0002302613710000082
其中,K为原始数据流的数量,i为原始数据流的序号,ri为分配给第i个原始数据流的目标传输速率,Si为第i个原始数据流的传输量,ni为第i个原始数据流在数据中心网络拓扑结构中最短传输路径的跳数,s.t.为约束条件,j为数据中心网络拓扑结构中链路的序号,aij为1或0的常数,aij=1表示第i个原始数据流使用第j个链路,aij=1表示第i个原始数据流没有使用第j个链路,Cj为第j个链路的带宽,s为数据中心网络拓扑结构中交换机的序号,Qs为交换机s的最大队列长度,Inq(s)为到达第s个交换机的数据包数量,Deq(s)为离开第s个交换机的数据包数量。
其中,速率分配模型是预先构建的用于确定发送方服务器发送每一原始数据流的初始传输速率的模型,这一速率分配模型可优化发送方服务器进行数据传输中各个原始数据流发送的原始数据包的初始传输速率,以便平衡各原始数据流的传输时间。本示例中,基于速率分配模型确定的任一原始数据流的初始传输速率为其对应的目标传输速率。上述速率分配模型具体是指在满足
Figure BDA0002302613710000091
和0≤Inq(s)-Deq(s)≤Qs,
Figure BDA0002302613710000092
这两个约束条件的情况下,基于f(ri)=ni×Si/ri确定每一原始数据流i的目标传输速率ri,以满足
Figure BDA0002302613710000093
即使得K个原始数据流i所计算出的f(ri)=ni×Si/ri之和最小,以使发送方服务器发送原始数据流i时所占用的宽带较小,且有助于降低K个原始数据流i通过数据中心网络拓扑结构所需的传输时间,更有利于保障传输过程的顺畅性和实时性。
例如,在图1所示的数据中心网络拓扑结构中,R1为发送方服务器,R2、R3、R4、R5、R6、R7和R8这7个服务器均为接收方服务器,则原始数据流的数量K为7,设由R1发送给R2的原始数据流的序号i为1,则r1为分配给第1个原始数据流的目标传输速率,S1为第1个原始数据流的传输量。n1为第1个原始数据流在数据中心网络拓扑结构中最短传输路径的跳数,由于R1到R2需经过R1-S1,S1-R2,因此,n1=2。由于与R1相连的交换机只有S1,此时,所有原始数据流均需经过R1与S1之间的链路,即在ai j为R1到S1之间的链路时,使得aij=1。相应地,交换机S1的最大队列长度Qs是指经过交换机S1所能容纳的最大的数据包数量,是一个常数,与交换机S1的存储能力有关。图1中,假设S1的最大队列长度是2Gb,链路带宽均为5Gbps,R1的发送速率为11Gbps,S1可以选择转发给S5和S6,那么在一秒内,Inq(S1)=11Gb,Deq(S1)=10Gb,S1此时的队列长度为11-10=1Gb,少于最大队列长度2Gb。
可以理解地,采用速率分配模型分配目标传输速率,可使得分配给每一原始数据流的目标传输速率可以兼顾待传输数据在数据中心网络拓扑结构中的传输路径对应的跳数、传输路径经过的链路的带宽以及交换机的最大队列长度等约束条件,使得发送方服务器发送至少两个原始数据流过程中,可以有效降低数据传输过程中的传输时间差异,以平衡不同原始数据流在数据中心网络拓扑结构中的传输时间。
S33:基于每一原始数据流对应的目标传输速率,同步将至少两个原始数据流中的原始数据包通过交换机发送给对应的接收方服务器。
具体地,发送方服务器在确定至少两个原始数据流对应的目标传输速率之后,同步将至少两个原始数据流中的原始数据包通过交换机发送给对应的接收方服务器,将至少两个原始数据流中的原始数据包依据其对应的目标传输速率,同步发送给与发送方服务器相连的交换机,以保证发送方服务器发送至少两个原始数据流中的原始数据包的时间同步性,有助于后续平衡因数据中心网络拓扑结构而造成的传输时间差异的准确性。
作为一示例,在发送方服务器形成的至少两个原始数据流中,每一原始数据流的目标传输速率可以相同,也可以不相同,在发送至少两个原始数据流对应的原始数据包时,基于各自的目标传输速率,同步将各自原始数据流中的原始数据包依序发送给相应的交换机。例如,图2所示的数据中心网络拓扑结构中,R1发送R2的原始数据流为第1个原始数据流,其目标传输速率为r1,R1发送给R2的原始数据流为第2个原始数据流,其目标传输速率r2,R1发送给R3的原始数据流为第3个原始数据流,其目标传输速率r3,则R1会依据目标传输速率r1将第1个原始数据流中的原始数据包发送给S1再由S1转发给R2,同时依据目标传输速率r1将第2个原始数据流中的原始数据包发送给S1再由S1转发给R3,同时依据目标传输速率r3将第3个原始数据流中的原始数据包发送给S4再由S4转发给R4。
S34:实时监控预设时间段内,能否接收到接收方服务器通过交换机发送的拥塞通知包,获取拥塞监控结果。
其中,预设时间段是预先设置的用于监控原始数据流传输进度的时间间隔。拥塞通知包(Congestion Notification Packet,以下简称CNP)是用于反映某一原始数据流在传输过程是否拥塞的数据包。目标数据流对应的拥塞通知包是指携带目标数据流对应的数据流标识的拥塞通知包。
作为一示例,拥塞通知包是在某一目标数据流在数据传输过程中出现拥塞(即接收方服务器接收到携带拥塞通知标识),且在目标数据流的当前传输进度没有落后于平均传输进度时生成的用于实现提醒通知的包。
作为一示例,发送方服务器在基于每一原始数据流对应的目标传输速率传输至少两个原始数据流中的原始数据包之后,实时监控能否接收到接收方服务器通过交换机发送的拥塞通知包,以根据拥塞通知包确定至少两个原始数据流在传输过程中是否存在拥塞情况,从而获取拥塞监控结果,以便根据拥塞监控结果实现调整至少两个原始数据流中剩余的原始数据包的传输速率,从而达到平衡因数据中心网络拓扑结构造成的数据传输时间差异的目的。
S35:基于拥塞监控结果进行传输速率调节,更新每一原始数据流对应的目标传输速率,重复执行基于每一原始数据流对应的目标传输速率,将至少两个原始数据流中的原始数据包同步发送给交换机的步骤。
本实施例中,发送方服务器基于拥塞监控结果进行传输速率调节,更新每一原始数据流对应的目标传输速率,具体是指根据预设时间段能否接收到拥塞通知包这一拥塞监控结果;若在预设时间段内能接收到拥塞通知包,反映某一原始数据流传输过程中出现网络拥塞但当前传输进度没有落后于平均传输进度,则适当降低其传输速率;反之,若在预设时间段内不能接收到拥塞通知包,则适当提高其传输速率,从而更新该原始数据流中剩余的原始数据包的目标传输速率,以达到平衡同一发送方服务器中所有原始数据流的传输时间的目的。
作为一示例,步骤S35,即基于拥塞监控结果进行传输速率调节,更新每一原始数据流对应的目标传输速率,具体包括如下步骤:
S351:若拥塞监控结果为在预设时间段内接收到原始数据流对应的拥塞通知包,则基于拥塞通知包确定对应的目标数据流,将目标数据流对应的目标传输速率和预设调节速率的差值,更新为目标数据流对应的目标传输速率。
其中,预设调节速率是预先设置的用于进行速率调节的速率。预设调节速率是根据网络的拥塞状况以及交换机中队列长度超过最大队列长度的概率等实际网络环境确定的一常数,其计算过程采用现有技术,此处一一赘述。
具体地,发送方服务器接收到接收方服务器通过交换机发送的拥塞通知包,需读取该拥塞通知包中的数据流标识,确定该拥塞通知包所属的数据流为目标数据流。例如,图1中采用L1-2这一数据流标识表示发送方服务器R1发送给接收方服务器R2的原始数据流,则若CNP中携带L1-2,则说明该CNP为L1-2对应的目标数据流的拥塞通知包。
由于每一拥塞通知包是在某一目标数据流的当前传输进度没有落后于平均传输进度时生成的用于实现提醒通知的包,说明目标数据流的当前传输进度比其他原始数据流的传输进度快,此时,需适当降低目标数据流的传输速率,以缓解网络拥塞现象,平衡至少两个原始数据流进行数据传输的传输时间差异。作为一示例,降低目标数据流的传输速率可通过计算目标数据流对应的目标传输速率和预设调节速率的差值,将该差值更新为目标数据流对应的目标传输速率,以使发送方服务器基于更新后的目标传输速率发送目标数据流中剩余的原始数据包。
S352:若拥塞监控结果为在预设时间段内未接收到原始数据流对应的拥塞通知包,则将目标传输速率和预设调节速率的和值,更新为原始数据流对应的目标传输速率。
具体地,发送方服务器在预设时间段不能接收到接收方服务器通过交换机转发的任一原始数据流对应的拥塞通知包,即不能接收到携带任一原始数据流对应的数据流标识的拥塞通知包时,存在如下两种情况:第一种情况是发送方服务器发送的原始数据流遭遇网络拥塞且原始数据流的当前传输进度落后于平均传输进度,使得发送方服务器不向接收服务器发送拥塞通知包,因此,接收方服务器在预设时间段内没有接收到拥塞通知包的原始数据流的当前传输进度比其他传输进度慢,因此,应当适当提高传输速率,此时,需适当提高没有接收到拥塞通知包的原始数据流对应的传输速率,以达到平衡至少两个原始数据流进行数据传输的传输时间差异。第二种情况是发送方服务器发送的原始数据流不遭遇网络拥塞,数据传输较顺畅,此时,应当适当提高传输速率,以提高发送方服务器发送至少两个原始数据流的整体传输效率。
作为一示例,提高原始数据流对应的传输速率是通过计算原始数据流对应的目标传输速率和预设调节速率的和值,将该和值更新为原始数据流对应的目标传输速率,以使发送方服务器基于更新后的目标传输速率发送没有接收到对应的拥塞通知包的原始数据流中剩余的原始数据包。
Figure BDA0002302613710000121
本实施例所提供的面向分布式机器学习的数据传输方法中,在基于待传输数据形成至少两个原始数据流后,基于根据数据中心网络拓扑结构确定的原始数据流对应的目标传输速率,同步发送至少两个原始数据流中的原始数据包,以保证发送方服务器发送至少两个原始数据流中的原始数据包的时间同步性,有助于后续平衡因数据中心网络拓扑结构而造成的传输时间差异的准确性;根据实时监控预设时间段内能否接收到拥塞通知包的拥塞监控结果进行传输速率调节,以更新每一原始数据流对应的目标传输速率,从而平衡因数据中心网络拓扑结构中网络拥塞而造成数据传输过程中的传输时间差异,可避免在面向分布式机器学习过程中因数据传输时间差异而影响训练性能。
在一实施例中,如图4所示,提供一种面向分布式机器学习的数据传输方法,包括接收方服务器执行的如下步骤:
S41:接收交换机发送的当前数据包,基于当前数据包确定对应的目标数据流和网络状态标识。
其中,当前数据包是指系统当前时间接收到的数据包,目标数据流是指当前数据包所属的数据流。目标数据流对应的当前传输进度是用于反映目标数据流通过数据中心网络拓扑结构传输的数据包的进度,具体可以根据接收方服务器已接收到的目标数据流对应的所有数据包的数量确定。
具体地,接收方服务器可实时监控发送方服务器通过交换机转发的当前数据包,在接收到任一当前数据包之后,可通过读取当前数据包中的信息确定当前数据包属于哪个数据流,以确定目标数据流。
作为一示例,步骤S41中的基于当前数据包确定对应的目标数据流,具体包括如下步骤:从当前数据包中读取数据流标识,基于数据流标识确定对应的目标数据流。例如,接收方服务器在接收到当前数据包后,可执行第一信息读取指令,从当前数据包中读取其所携带的数据流标识,以便基于该数据流标识确定当前数据包所属的目标数据流。第一信息读取指令具体是指可以读取数据包中的数据流标识的指令,如getFlowID()指令。
其中,网络状态标识是用于记录当前数据包在由发送方服务器通过交换机转发给接收方服务器过程中,各交换机之间网络拥塞情况的标识。拥塞通知标识是用于反映某一交换机在数据传输过程中存在网络拥塞情况的标识。
作为一示例,步骤S42中的基于当前数据包确定对应的网络状态标识,具体包括如下步骤:接收方服务器在接收到当前数据包手,可执行第二信息读取指令,从当前数据包中读取其所携带的网络状态标识,以便基于该网络状态标识确定当前数据包是否遭遇网络拥塞。第二信息读取指令具体是指可以读取数据包中的网络状态标识的指令,如getTag()指令。
S42:更新目标数据流对应的当前传输进度,获取接收方服务器上已接收数据流对应的平均传输进度。
本实施例中,接收方服务器在确定当前数据包对应的目标数据流之后,更新目标数据流的当前传输进度,以便基于当前传输进度进行后续的传输时间调节。
作为一示例,步骤S42中的更新目标数据流对应的当前传输进度,具体包括如下步骤:获取目标数据流对应的当前传输进度,对当前传输进度进行加1处理,以更新目标数据流对应的当前传输进度。即接收方服务器在确定所接收到的当前数据包对应的目标数据流之后,先获取目标数据流在接收到当前数据包之前的当前传输进度,对该当前传输进度进行加1处理,以更新目标数据流对应的当前传输进度,使得更新后的当前传输进度可以更准确地反映目标数据流中所有原始数据包传输到接收方服务器的进度。
其中,已接收数据流是指系统当前时间之前,接收方服务器已经接收到的历史数据包所属的数据流。历史数据包是指系统当前时间之前,接收方服务器已经接收到的原始数据包。已接收数据流对应的平均传输进度是用于反映所有已接收数据流对应的数据包的传输进度,具体是指所有已接收数据流的传输进度的均值,而每一已接收数据流的传输进度可以通过已接收数据流对应的历史数据包的数量确定。
在一具体实施方式中,步骤S42,即获取接收方服务器上已接收数据流对应的平均传输进度,具体包括如下步骤:
S421:统计系统当前时间之前接收方服务器上所有历史数据包对应的第一数据包数量,确定所有历史数据包所属的已接收数据流对应的第一数据流数量。
作为一示例,接收方服务器在接收到任一当前数据包时,需实时统计在系统当前时间之前,接收方服务器上所有历史数据包对应的第一数据包数量,该第一数据包数量是指所有历史数据包的数量;并读取每一历史数据包中的数据流标识,确定其所属的已接收数据流,统计所有已接收数据流对应的第一数据流数量。
S422:基于第一数据包数量和第一数据流数量,获取接收方服务器上已接收数据流对应的平均传输进度。
作为一示例,接收方服务器在获取第一数据包数量和第一数据流数量之后,基于第一数据包数量和第一数据流数量的商值,获取接收方服务器上已接收数据流对应的平均传输进度,即执行
Figure BDA0002302613710000141
L1为第一数据包数量,L2为第一数据流数量,R为接收方服务器上已接收数据流对应的平均传输进度。该已接收数据流对应的平均传输进度可以反映接收方服务器接收到的数据流的进度。
例如,图1中的接收方服务器R2在系统当前时间之前接收到12个历史数据包,这12个历史数据包所属的已接收数据流为R3、R4、R5、R6、R7和R8这6个发送方服务器发送的数据流,则接收方服务器上已接收数据流对应的平均传输进度为2个;又例如,图1中的接收方服务器R2在系统当前时间之前接收到12个历史数据包,这12个历史数据包所属的已接收数据流为R1、R3、R4、R5、R6、R7和R8这7个发送方服务器发送的数据流,则接收方服务器上已接收数据流对应的平均传输进度为1.7个。
S43:若网络状态标识为携带拥塞通知标识且当前传输进度大于平均传输进度,则生成与目标数据流相对应的拥塞通知包,将拥塞通知包通过交换机发送给发送方服务器,更新接收方服务器上已接收数据流对应的平均传输进度。
其中,拥塞通知包(Congestion Notification Packet,以下简称CNP)是用于反映某一原始数据流在传输过程是否拥塞的数据包。目标数据流对应的拥塞通知包是指携带目标数据流对应的数据流标识的拥塞通知包。为了便于识别不同拥塞通知包,可在拥塞通知包中记录目标数据流对应的数据流标识。
作为一示例,在目标数据流对应的当前传输进度大于接收方服务器上已接收数据流对应的平均传输进度时,认定目标数据流的原始数据包传输没有落后于所有已接收数据流的平均传输进度,即目标数据流对应的当前传输进度领先于所有已接收数据流的平均传输进度,若当前数据包的网络状态标识为携带拥塞通知标识,即发生网络拥塞时,生成与目标数据流相对应的拥塞通知包,将拥塞通知包通过交换机发送给发送方服务器,以使发送方服务器根据接收到的拥塞通知包进行传输速率调节,以达到平衡因数据中心网络拓扑结构而造成的数据传输时间差异的目的。可以理解地,拥塞通知包只在发生网络拥塞且当前传输进度没有落后于平均传输进度时生成的用于实现提醒通知的包,因此,该拥塞通知包反映目标数据流的传输过程比其他数据流的传输过程更顺畅,可使接收方服务器在接收到拥塞通知包时适当降低目标数据流对应的目标传输速率,以达到平衡传输时间的目的。
Figure BDA0002302613710000151
Figure BDA0002302613710000161
进一步地,在步骤S42的读取当前数据包的网络状态标识之后,面向分布式机器学习的数据传输方法还包括:
S44:若网络状态标识为未携带拥塞通知标识,或者网络状态标识为携带拥塞通知标识且当前传输进度不大于平均传输进度,则更新接收方服务器上已接收数据流对应的平均传输进度。
作为一示例,接收方服务器在接收到交换机发送的当前数据包后,读取当前数据包对应的网络状态标识为未携带拥塞通知标识,则说明接收方服务器接收到的当前数据包在传输过程中未遭遇网络拥塞,数据传输过程中较顺畅,为了提高数据整体传输效率,此时,仅更新接收方服务器上已接收数据流对应的平均传输进度,而无需生成拥塞通知包并发送给发送方服务器,从而使得发送方服务器在预设时间段内未接收到拥塞通知包,而提高对应的原始数据流的传输速率。
作为另一示例,接收方服务器在接收到交换机发送的当前数据包后,读取当前数据包对应的网络状态标识为携带拥塞通知标识,且当前传输进度不大于平均传输进度,则说明接收方服务器接收到的当前数据包在传输过程中遭遇网络拥塞,且原始数据流的当前传输进度落后于平均传输进度,此时,仅更新接收方服务器上已接收数据流对应的平均传输进度,而无需生成拥塞通知包并发送给发送方服务器,从而使得发送方服务器在预设时间段内未接收到拥塞通知包,而提高对应的原始数据流的传输速率。
作为一示例,步骤S43和步骤S44中,更新接收方服务器上已接收数据流对应的平均传输进度,具体包括如下步骤:对系统当前时间之前接收方服务器上历史数据包对应的第一数据包数量进行加1处理,更新第一数据包数量;判断当前数据包所属的数据流是否为接收方服务器的已接收数据流,若为已接收数据流,则不对第一数据流数量进行更新,若不为已接收数据流,则对第一数据流数据进行加1处理,更新第一数据流数据;重复执行基于第一数据包数量和第一数据流数量,获取接收方服务器上已接收数据流对应的平均传输进度。即对系统当前时间之前接收方服务器上历史数据包对应的第一数据包数量L1进行加1处理,L1=L1+1;若当前数据包所属的数据流为已接收数据流,则L2=L2+0,若当前数据包所属的数据流不为已接收数据流,则L2=L2+1;再执行
Figure BDA0002302613710000171
L1为第一数据包数量,L2为第一数据流数量,R为接收方服务器上已接收数据流对应的平均传输进度。
本实施例所提供的面向分布式机器学习的数据传输方法,根据接收到的当前数据包,确定其对应的目标数据流和当前传输进度,再获取平均传输进度,只有在当前传输进度大于平均传输进度时,才会生成拥塞通知包,并将拥塞通知包转发给接收方服务器,以使接收方服务器根据接收到的拥塞通知包降低目标数据流的传输进度,从而达到平衡至少两个原始数据流在数据中心网络拓扑结构中进行数据传输的传输时间差异的目的。
在一实施例中,如图5所示,提供一种面向分布式机器学习的数据传输方法,包括交换机执行的如下步骤:
S51:接收待转数据包,确定待转数据包对应的下一接收设备。
其中,待转数据包是指交换机当前接收到的需要转发的原始数据包。待转数据包对应的下一接收设备是指用于接收交换机转发的待转数据包的设备,该下一接收设备可以是接收方服务器,也可以说是中间交换机。
S52:若下一接收设备为接收方服务器,基于待转数据包确定对应的目标数据流,更新目标数据流对应的当前传输进度。
具体地,若下一接收设备为接收方服务器,则说明当前接收到待转数据包的交换机为边缘交换机,此时,边缘交换机需基于待转数据包确定对应的目标数据流,其处理过程与41中基于当前数据包确定对应的目标数据流的处理过程相同,为避免重复,此处不一一赘述;然后,更新目标数据流对应的当前传输进度,其处理过程与步骤S42中的更新目标数据流对应的当前传输进度处理过程相同,为避免重复,此处不一一赘述。
S53:获取交换机已接收数据流对应的平均传输进度。
作为一示例,步骤S53中,具体包括如下步骤:
S531:统计系统当前时间之前交换机已接收的第二历史数据包对应的第二数据包数量,确定所有第二历史数据包对应的第二数据流数量。
S532:基于第二数据包数量和第二数据流数量,获取交换机上已接收数据流对应的平均传输进度。
可以理解地,步骤S53中获取交换机已接收数据流对应的平均传输进度这一处理过程与步骤S42中获取接收方服务器上已接收数据流对应的平均传输进度的处理过程相同,两者只是执行主体不相同,为避免重复,此处不一一赘述。
S54:若当前传输进度不大于平均传输进度,则删除待转数据包上的拥塞通知标识,更新交换机上已接收数据流对应的平均传输进度,向接收方服务器转发待转数据包。
具体地,在待转数据包所属的目标数据流的当前传输进度不大于交换机已接收数据流对应的平均传输进度时,说明该目标数据流的当前传输进度落后于需要交换机转发的所有数据流的平均传输进度,此时,删除待转数据包上的拥塞通知标识,以使待转数据包不携带拥塞通知标识;再将待转数据包发送给接收方服务器,使得接收方服务器接收到的当前数据包为不携带拥塞通知标识的待转数据包,此时,不生成拥塞通知包并转发给发送方服务器,使得接收方服务器不能接收到拥塞通知包,将目标传输速率和预设调节速率的和值,更新为原始数据流对应的目标传输速率,从而提高该目标数据流对应的传输速率,以达到调节传输时间的目的。可以理解地,边缘交换机删除待转数据包上的拥塞通知标识,可确保接收方服务器不会基于接收到待转数据包生成拥塞通知包,从而确保已经落后于其他平均传输进度的目标数据流不被减速,以达到平衡传输时间的目的。
Figure BDA0002302613710000181
进一步地,在步骤S51之后,在确定待转数据包对应的下一接收设备之后,面向分布式机器学习的数据传输方法还包括:
S55:若下一接收设备不为接收方服务器,则实时检测交换机的当前网络状态。
具体地,若下一接收设备不为接收方服务器而是其他中间交换机时,接收到待转数据包的交换机需实时检测其当前网络状态,以确定当前网络状态是否拥塞。其中,当前网络状态是指反映交换机当前所处网络环境是否拥塞的状态,其检测过程采用现有技术,此处不一一赘述。
S56:若当前网络状态为拥塞状态,则基于预设概率给待转数据包标注拥塞通知标识,向下一接收设备转发待转数据包。
其中,预设概率是预先设置的用于标注拥塞通知标识的概率。该预设概率可以采用固定值,也可以拥塞状态对应的拥塞程度确定不同的概率。
具体地,在实时检测到交换机的当前网络状态为拥塞状态时,基于预设概率在经过该拥塞状态的交换机传输的待转数据包标注拥塞通知标识,以使该交换机依据下一接收设备转发的待转数据包中有一部分携带拥塞通知标识,另一部分未携带拥塞通知标识。例如,图1的S1交换机中,S1需将R1和S2发送的原始数据源转发给其他接收设备,并将其他发送设备发送的数据转发给S1和S2,若在预设时间段内接收到待转数据包为10个,预设概率为30%,则对其中3个待转数据包标注拥塞通知标识,其他7个不标注拥塞通知标识。
Figure BDA0002302613710000191
本实施例所提供的面向分布式机器学习的数据传输方法中,在待转数据包的下一接收设备为中间交换机发送给接收方服务器时,在待转数据包携带拥塞通知标识时,确定目标数据流的当前传输进度不大于交换机对应的平均传输进度时,删除拥塞通知标识,使得接收方服务器接收到的当前数据包为不携带拥塞通知标识的待转数据包,从而不会形成拥塞通知包,使得接收方服务器提高目标传输速率,以达到调节传输时间的目的。
为了验证本发明实施例所提供的面向分布式机器学习的数据传输方法可较好地平衡数据传输过程中的传输时间,基于图1和图2的数据中心网络拓扑结构的进行仿真试验,即在Fat-tree和BCube这两个数据中心网络拓扑结构进行仿真试验。Fat-tree中,有8台服务器,每台服务器向其他服务器发送的原始数据流包括10000个原始数据包,其链路带宽为40Gbps。BCube中,有9台服务器,每台服务器向其他服务器发送的原始数据流包括8888个原始数据包,其链路带宽为40Gbps。由于BCTP-switch和BCTP-NIC的性能相近,仅展示BCTP-switch与DCQCN进行仿真试验的对比结果。为了简化表示,后文使用“BCTP”表示BCTP-switch。
图6示出在Fat-tree中完成网络传输的仿真试验结果。DCQCN下,那些瓶颈数量较多的原始数据流之间会相互作用,相互抑制对方的发送。因此,每个原始数据流的传输速率有较大差异,具体表现为:瓶颈数量较多的原始数据流所分配到的传输速率要小于瓶颈数量少的原始数据流。在BCTP中,原始数据流的传输速率并不受瓶颈数量的影响,每个原始数据流所分配到的传输速率基本一致,原始数据流的完成时间也相对同步。下表中统计两种协议下所有原始数据流最终完成时间。
DCQCN花费时间 BCTP花费时间 缩短时间百分比
206.041ms 139.892ms 32.10%
图7示出在Fat-tree中各原始数据流的完成时间,由图7可知,BCTP中各原始数据流完成时间较均衡,传输时间差异较小。图8中示出在Fat-tree中各原始数据流完成时间的累计分布函数(Cumulative Distribution Function,CDF),由图8所示,BCTP能大幅缩短最慢流的完成时间,原始数据流大致在同一短时间内完成,而DCQCN则会有个别长时间的流滞后。
图9示出在BCube中完成一次网络传输的仿真试验结果。DCQCN仍然会导致原始数据流速率分配不均匀的情况发生,但并没有Fat-Tree如此严重,这是因为BCube是以服务器为中心的网络拓扑结构,相比于以交换机为中心的Fat-Tree拓扑更不易产生瓶颈数量相差很大的流。下表统计两种协议下所有原始数据流最终完成时间。
DCQCN花费时间 BCTP花费时间 缩短时间百分比
467.430ms 353.824ms 24.30%
图10示出在Fat-tree中各原始数据流的完成时间,由图10可知,BCTP中各原始数据流完成时间较均衡,传输时间差异较小。图11中示出在Fat-tree中各原始数据流完成时间的累计分布函数(Cumulative Distribution Function,CDF),由图11所示,BCTP能大幅缩短最慢流的完成时间,原始数据流大致在同一短时间内完成,而DCQCN则会有个别长时间的流滞后。
由上述仿真试验结果可知,本发明实施例提供的面向分布式机器学习的数据传输方法,在面向分布式机器学习的数据中心网络资源配置和传输优化过程,不仅能获得较高的吞吐量,还可以减少数据流的完成时间,以达到降低DML任务的网络通信时延的目的。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (9)

1.一种面向分布式机器学习的数据传输方法,其特征在于,包括发送方服务器执行的如下步骤:
获取待传输数据,基于所述待传输数据形成至少两个原始数据流,每一所述原始数据流包括至少两个原始数据包;
基于数据中心网络拓扑结构和速率分配模型,获取每一所述原始数据流对应的目标传输速率;
基于每一所述原始数据流对应的目标传输速率,同步将至少两个所述原始数据流中的原始数据包通过交换机发送给对应的接收方服务器;
实时监控预设时间段内,能否接收到接收方服务器通过交换机发送的拥塞通知包,获取拥塞监控结果;
基于所述拥塞监控结果进行传输速率调节,更新每一所述原始数据流对应的目标传输速率,重复执行所述基于每一所述原始数据流对应的目标传输速率,同步将至少两个所述原始数据流中的原始数据包通过交换机发送给对应的接收方服务器;
其中,所述速率分配模型为
Figure FDA0003878560160000011
f(ri)=ni×Si/ri
Figure FDA0003878560160000012
其中,K为原始数据流的数量,i为原始数据流的序号,ri为分配给第i个原始数据流的目标传输速率,Si为第i个原始数据流的传输量,ni为第i个原始数据流在数据中心网络拓扑结构中最短传输路径的跳数,s.t.为约束条件,j为数据中心网络拓扑结构中链路的序号,aij为1或0的常数,aij=1表示第i个原始数据流使用第j个链路,aij=0表示第i个原始数据流没有使用第j个链路,Cj为第j个链路的带宽,s为数据中心网络拓扑结构中交换机的序号,Qs为交换机s的最大队列长度,Inq(s)为到达第s个交换机的数据包数量,Deq(s)为离开第s个交换机的数据包数量。
2.如权利要求1所述的面向分布式机器学习的数据传输方法,其特征在于,所述基于所述拥塞监控结果进行传输速率调节,更新每一所述原始数据流对应的目标传输速率,包括:
若所述拥塞监控结果为在预设时间段内接收到所述原始数据流对应的拥塞通知包,则基于所述拥塞通知包确定对应的目标数据流,将所述目标数据流对应的目标传输速率和预设调节速率的差值,更新为所述目标数据流对应的目标传输速率;
若所述拥塞监控结果为在预设时间段内未接收到所述原始数据流对应的拥塞通知包,则将所述目标传输速率和预设调节速率的和值,更新为所述原始数据流对应的目标传输速率。
3.一种面向分布式机器学习的数据传输方法,其特征在于,包括接收方服务器执行的如下步骤:
接收交换机发送的当前数据包,基于所述当前数据包确定对应的目标数据流和网络状态标识,其中,所述当前数据包为当前时刻接收到的发送方服务器基于每一原始数据流对应的目标传输速度,同步发送的至少两个所述原始数据流中的原始数据包;
更新所述目标数据流对应的当前传输进度,获取所述接收方服务器上已接收数据流对应的平均传输进度;
若所述网络状态标识为携带拥塞通知标识且所述当前传输进度大于所述平均传输进度,则生成与所述目标数据流相对应的拥塞通知包,将所述拥塞通知包通过所述交换机发送给发送方服务器,更新所述接收方服务器上已接收数据流对应的平均传输进度。
4.如权利要求3所述的面向分布式机器学习的数据传输方法,其特征在于,在所述更新所述目标数据流对应的当前传输进度,获取所述接收方服务器上已接收数据流对应的平均传输进度之后,所述面向分布式机器学习的数据传输方法还包括:
若所述网络状态标识为未携带所述拥塞通知标识,或者所述网络状态标识为携带所述拥塞通知标识且所述当前传输进度不大于所述平均传输进度,则更新所述接收方服务器上已接收数据流对应的平均传输进度。
5.如权利要求3所述的面向分布式机器学习的数据传输方法,其特征在于,获取所述接收方服务器上已接收数据流对应的平均传输进度,包括:
统计系统当前时间之前所述接收方服务器上所有历史数据包对应的第一数据包数量,确定所有所述历史数据包所属的已接收数据流对应的第一数据流数量;
基于所述第一数据包数量和所述第一数据流数量,获取所述接收方服务器上已接收数据流对应的平均传输进度。
6.一种面向分布式机器学习的数据传输方法,其特征在于,包括交换机执行的如下步骤:
接收待转数据包,确定所述待转数据包对应的下一接收设备,其中,所述待转数据包为系统当前时间接收到的发送方服务器基于每一原始数据流对应的目标传输速度,同步发送的至少两个所述原始数据流中的原始数据包;
若所述下一接收设备为接收方服务器,基于所述待转数据包确定对应的目标数据流,更新所述目标数据流对应的当前传输进度;
获取所述交换机已接收数据流对应的平均传输进度;
若所述当前传输进度不大于所述平均传输进度,则删除所述待转数据包上的拥塞通知标识,更新所述交换机上已接收数据流对应的平均传输进度,向所述接收方服务器转发所述待转数据包。
7.如权利要求6所述的面向分布式机器学习的数据传输方法,其特征在于,在所述确定所述待转数据包对应的下一接收设备之后,所述面向分布式机器学习的数据传输方法还包括:
若所述下一接收设备不为接收方服务器,则实时检测所述交换机的当前网络状态;
若所述当前网络状态为拥塞状态,则基于预设概率给所述待转数据包标注拥塞通知标识,向下一接收设备转发所述待转数据包。
8.如权利要求6所述的面向分布式机器学习的数据传输方法,其特征在于,所述获取所述交换机已接收数据流对应的平均传输进度,包括:
统计系统当前时间之前所述交换机已接收的第二历史数据包对应的第二数据包数量,确定所有所述第二历史数据包对应的第二数据流数量;
基于所述第二数据包数量和所述第二数据流数量,获取所述交换机上已接收数据流对应的平均传输进度。
9.一种面向分布式机器学习的数据传输系统,包括发送方服务器、接收方服务器、与所述发送方服务器和所述接收方服务器通信相连的交换机,所述发送方服务器、所述接收方服务器和所述交换机均包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述发送方服务器的处理器执行所述计算机程序时实现如权利要求1至2任一项所述面向分布式机器学习的数据传输方法,所述接收方服务器的处理器执行所述计算机程序时实现如权利要求3至5任一项所述面向分布式机器学习的数据传输方法,所述交换机的处理器执行所述计算机程序时实现如权利要求6至8任一项所述面向分布式机器学习的数据传输方法。
CN201911227383.5A 2019-12-04 2019-12-04 面向分布式机器学习的数据传输方法及系统 Active CN111211988B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911227383.5A CN111211988B (zh) 2019-12-04 2019-12-04 面向分布式机器学习的数据传输方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911227383.5A CN111211988B (zh) 2019-12-04 2019-12-04 面向分布式机器学习的数据传输方法及系统

Publications (2)

Publication Number Publication Date
CN111211988A CN111211988A (zh) 2020-05-29
CN111211988B true CN111211988B (zh) 2022-12-02

Family

ID=70789799

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911227383.5A Active CN111211988B (zh) 2019-12-04 2019-12-04 面向分布式机器学习的数据传输方法及系统

Country Status (1)

Country Link
CN (1) CN111211988B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112434817B (zh) * 2021-01-26 2021-05-28 鹏城实验室 构建通信算法数据库的方法、装置和计算机存储介质
CN113705826B (zh) * 2021-07-19 2023-07-14 哈尔滨工业大学(深圳) 面向分布式机器学习的参数同步组播方法
CN115174432B (zh) * 2022-06-30 2024-02-13 苏州浪潮智能科技有限公司 Rdma网络状态监测方法、装置、设备及可读存储介质
CN117952506B (zh) * 2024-03-18 2024-06-18 青岛山科人工智能有限公司 一种模块化输送线系统的拓扑结构更新方法、介质及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6188671B1 (en) * 1997-07-03 2001-02-13 At&T Corp Traffic management for frame relay switched data service

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206285B2 (en) * 2001-08-06 2007-04-17 Koninklijke Philips Electronics N.V. Method for supporting non-linear, highly scalable increase-decrease congestion control scheme

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6188671B1 (en) * 1997-07-03 2001-02-13 At&T Corp Traffic management for frame relay switched data service

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于速率的BLUE改进方法;张顺亮等;《计算机研究与发展》;20040416(第04期);全文 *

Also Published As

Publication number Publication date
CN111211988A (zh) 2020-05-29

Similar Documents

Publication Publication Date Title
CN111211988B (zh) 面向分布式机器学习的数据传输方法及系统
CN106533970B (zh) 面向云计算数据中心网络的差分流传输控制方法及装置
US11558302B2 (en) Data transmission method and apparatus
US10091675B2 (en) System and method for estimating an effective bandwidth
CN108768876B (zh) 一种面向机器学习框架的流量调度方法
US20220210026A1 (en) Network Parameter Configuration Method and Apparatus, Computer Device, and Storage Medium
CN112887217B (zh) 控制数据包发送方法、模型训练方法、装置及系统
WO2018233425A1 (zh) 网络拥塞的处理方法、装置及系统
CN110855737B (zh) 一种一致性级别可控的自适应数据同步方法和系统
CN114374647B (zh) 一种对时敏业务流和路由联合调度的规划方法及装置
CN112422443A (zh) 一种拥塞算法的自适应控制方法、存储介质、设备及系统
WO2019012392A1 (en) OPTIMIZING NETWORK PARAMETERS TO ENABLE NETWORK CODING
CN112910789A (zh) 拥塞控制方法以及相关设备
CN111740922B (zh) 数据传输方法、装置、电子设备及介质
CN110086870A (zh) 面向数据中心网络的多路径并行可靠传输方法
CN112714081B (zh) 一种数据处理方法及其装置
WO2022166348A1 (zh) 路由方法、路由装置、控制器和计算机可读存储介质
CN110750486A (zh) Rdma数据流控方法、系统、电子设备及可读存储介质
CN114448838B (zh) 系统可靠度评估方法
WO2024119513A1 (en) Device and method for agent for dynamically adapting explicit congestion notification configuration in network system
Zuo et al. An elephant flows scheduling method based on feedforward neural network
CN114650257B (zh) 一种基于rtt的sdn网络拥塞控制系统与方法
CN113705826B (zh) 面向分布式机器学习的参数同步组播方法
Yang et al. Traffic Management for Distributed Machine Learning in RDMA-enabled Data Center Networks
KR102322451B1 (ko) 네트워크 하이퍼바이저 및 이를 이용한 컨트롤 채널 대역폭 할당 방법

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