一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种超算中心间的大文件分片传输方法和传输架构与流程

2022-10-26 18:28:36 来源:中国专利 TAG:


1.本发明涉及超级计算机的资源管理技术领域,尤其涉及一种超算中心间的大文件分片传输方法和传输架构。


背景技术:

2.超算中心间需要传输的文件一般为大文件,大文件在传输过程中为防止传输中断引发的整体重传,需要加入分片传输的功能。如果能对大文件分片传输机制进行良好优化,无疑将提升超算中心间数据通信的整体性能。
3.目前较为常见的文件分片策略为固定大小分片,发送方与接收方提前约定好文件分片大小,然后发送方将文件进行分片并对分片进行逐个传输,如果在分片传输过程中遇到网络不稳定导致分片传输失败,则发送方重传此分片。固定分片策略存在一个明显问题:无法根据实际需求动态调整分片大小。分片过小会使得接收方频繁地对分片进行校验并回复确认信息,最终导致文件传输系统的效率降低,而分片过大时,一旦分片传输失败,后续重传此分片依旧可能失败,重传此分片的代价变得非常高,导致系统网络资源的浪费。
4.因此,需要一种大文件分片策略来解决上述技术方案中存在的问题。


技术实现要素:

5.为了解决现有技术中存在的上述技术问题,本发明提出了一种超算中心间的大文件分片传输方法和传输架构,用于提升超算中心间大文件的传输效率,降低对超算中心网络带宽的消耗,其具体技术方案如下:一种超算中心间的大文件分片传输方法,包括以下步骤:步骤一,收集超算中心间传包的文件数据并统计计算平均发包速率,对其中作为发送方的超算中心进行初始化工作;步骤二,完成初始化工作后,发送方的超算中心获取初始状态,利用强化学习算法,动态调整文件数据的分片大小,后根据分片大小进行文件数据分片后传输给作为接收方的超算中心;步骤三,接收方的超算中心根据其接收状态,发送传输反馈给发送方的超算中心,并根据传输结果计算超算中心间的平均发包速率;步骤四,更新并判断剩余的文件数据的大小,以此判断文件数据是否传输完毕,若未传输完毕,则重复步骤二至步骤四,直至整个文件数据传输完成。
6.进一步的,所述初始化工作的具体内容为:初始化状态集{s}、分片集{c}、期望奖励q(s,c)、奖励机制r、折扣因子γ、模型学习率α及采样阈值;所述状态集{s}的状态包括:网络运行状态、数据剩余大小、发送方资源负载、接收方资源负载;所述分片集{c}为可采用的分片大小的集合,支持多种分片策略;所述期望奖励q(s,c)是指在各个状态s下依据分片大小c进行分片后的期望奖励;
所述奖励机制r设置如下:设r为即时奖励反馈,若当前状态下采用分片策略后,计算得到平均发包速率为,那么r=-,为步骤一中统计计算得到的平均发包速率;所述折扣因子γ,用于削弱未来状态对当前状态的奖励反馈,即如果未来状态与当前状态的时间间隔越大,在奖励值相同情况下,奖励反馈越小;所述模型学习率α初始化设定为:0<α<1;所述采样阈值采用贪婪策略阈值,初始化设定为:0<
ϵ
<1。
7.进一步的,所述多种分片策略包括:等差排列:用户可以指定最大的分片大小、最小的分片大小以及分片间间隔大小,系统自动生成介于最大的分片大小和最小的分片大小之间的,并按所述分片间间隔大小,从小到大排列的分片集;等比排列:用户可以指定最大的分片大小、最小的分片大小以及分片间增长比例,系统自动生成介于最大的分片大小和最小的分片大小之间的,并按上述分片间增长比例,从小到大排列的分片集;用户自定义:用户指定最大的分片大小、最小的分片大小和用户自定义函数,系统根据用户自定义函数生成介于最大的分片大小和最小的分片大小之间的整数值作为分片集;用户自定义分片大小:即支持用户手动输入各个分片大小。
8.进一步的,所述步骤二,具体包括以下子步骤:步骤2.1,完成初始化工作后,作为发送方的超算中心开始获取当前状态,得到文件大小t
t
、发送方资源负载、网络运行状态、接受方资源负载;步骤2.1,采用q-learning强化学习算法,动态调整文件数据的分片大小,具体为:发送方的超算中心的系统模型随机产生[0,1]范围内的数x;若x》,则根据 ,获取能够产生最优期望奖励的分片大小作为下一个分片的大小;若存在多个最优分片大小,则从中随机选择一个作为下一个分片的大小c
t
,其中表示在状态下采用切片大小c
t
后得到的期望奖励大小,表示对于状态s
t
,采用切片大小c后,切换为状态s
t 1
,得到的状态s
t 1
的最大期望奖励;若x≤,则需要从分片集{c}中随机选择一个分片大小作为下一个分片的大小;步骤2.3,发送方的超算中心按照分片大小c
t
进行文件数据分片后传输至接收方的超算中心。
[0009]
进一步的,所述步骤三具体为:若接收方的超算中心成功接收到数据,则接收方的超算中心反馈接收成功给发送方的超算中心;若接收方的超算中心校验数据错误,则接收方的超算中心反馈接收失败给发送方的超算中心;若发送方的超算中心长期未收到反馈,即产生timeout超时错误,则按照接收方的超算中心反馈接收失败处理;其中,当传输失败时,则当前平均发包速率为=0;当传输成功时,则记录发送初始时间t
n1
和发送结束时间
t
n2
,计算平均发包速率为=(t
n2-t
n1
)/c
t

[0010]
进一步的,所述步骤四具体为:若接收方的超算中心成功接收到数据,即发送成功,则t
t 1
=t
t-c
t
;反之,若发送失败,则t
t 1
=t
t
,,ti表示传输i次后剩余文件数据的大小;判断文件数据是否传输完毕:若t
t 1
《=0,则表示文件数据已传输完成,结束发包流程;若t
t 1
》0,则表示未传输完毕,则比较当前平均发包速率与平均发包速率大小,计算即时反馈奖励r
t 1
=-,根据奖励机制更新期望奖励:,其中等式左边的q(s
t
,c
t
)为表示状态s
t
时采用分片大小c
t
后的期望奖励,并更新获取当前状态s
t 1
,包括剩余的文件大小t
t 1
、网络运行状态、发送方资源负载、接收方资源负载,重复步骤二至步骤四,直至整个文件传输成功。
[0011]
一种超算中心间的大文件分片传输方法的传输架构,包括发送方的超算中心和接收方的超算中心,发送方的超算中心包括学习器、分片器和发送器,接收方的超算中心包括接收器和反馈器;其中分片器用于获取文件大小及切割文件数据,输出分片数据至发送器,发送器用于接受分片器输出的分片数据,并将该数据发送给接收方的接收器,以及获取数据发送反馈并将反馈值传输给学习器;学习器用于根据发送器提供的反馈更新状态参数并计算得到下一个分片大小,将该值传输给分片器;接收器用来接受发送方的分片数据,并验证数据,将验证结果发送给反馈器;反馈器接收接收器的反馈状态后将该值发送给发送方的发送器。
[0012]
一种超算中心间的大文件分片传输装置,包括一个或多个处理器,用于实现所述的一种超算中心间的大文件分片传输方法。
[0013]
一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现所述的一种超算中心间的大文件分片传输方法。
[0014]
本发明的优势和有益效果在于:本发明方法,相比于传统的固定分片模式,具有了对外部环境的感知能力,更能够适应外部环境的变化,对分片大小做到精准调控,有效降低系统资源的浪费;当遇到网络不稳定,连续多次重传失败的情况下,本方法可以降低分片大小,快速定位到能够传输成功的分片大小,避免多次重传造成的资源浪费;当网络情况稳定时,本方法可以适当增加分片大小,快速定位到能够确保传输成功的最大分片大小,提升整体的系统效率。
附图说明
[0015]
图1为本发明的实施例的一种超算中心间的大文件分片传输架构的模块结构示意图;图2为本发明实施例的方法所适用于整体模块架构的文件分片传输流程示意图;图3为本发明的一种超算中心间的大文件分片传输方法的流程示意图;图4为本发明实施例的一种超算中心间的大文件分片传输装置的结构示意图。
具体实施方式
[0016]
为了使本发明的目的、技术方案和技术效果更加清楚明白,以下结合说明书附图和实施例,对本发明作进一步详细说明。
[0017]
如图1所示,本发明的一种超算中心间的大文件分片传输架构,主要考虑发送方和接收方2个节点,其中作为发送方的超算中心包括学习器、分片器和发送器,作为接收方的超算中心包括接收器和反馈器。
[0018]
其中分片器用于获取文件大小及切割文件数据,输出分片数据至发送器,发送器用于接受分片器输出的分片数据,并将该数据发送给接收方的接收器,以及获取数据发送反馈并将反馈值传输给学习器;学习器用于根据发送器提供的反馈更新状态参数并计算得到下一个分片大小,将该值传输给分片器;接收器用来接受发送方的分片数据,并验证数据,将验证结果发送给反馈器;反馈器接收接收器的反馈状态后将该值发送给发送方的发送器。
[0019]
如图2和图3所示,本发明实施例的一种超算中心间的大文件分片传输方法,包括以下步骤:步骤一,收集超算中心间传包的文件数据并统计计算平均发包速率,对其中作为发送方的超算中心进行初始化工作。
[0020]
其中,所述的收集超算中心间传包的数据并计算平均发包速率,在本发明实施例中,具体为:以超算中心a为发送方,超算中心b为接收方,收集超算中心a和超算中心b之间传包的大量数据,统计计算平均发包速率。
[0021]
所述的对作为发送方的超算中心进行初始化工作,其中初始化工作的具体内容为:初始化状态集{s}、分片集{c}、期望奖励q(s,c)(默认各个状态的每个动作期望为0)、奖励机制r、折扣因子γ、模型学习率α及采样阈值。
[0022]
所述状态集{s}的状态s包括:网络运行状态、数据剩余大小、发送方资源负载、接收方资源负载。
[0023]
所述分片集{c}为可采用的分片大小的集合,支持多种分片策略,所述分片策略包括:等差排列:用户可以指定最大的分片大小、最小的分片大小以及分片间间隔大小,系统自动生成介于最大的分片大小和最小的分片大小之间的,并按所述分片间间隔大小,从小到大排列的分片集;等比排列:用户可以指定最大的分片大小、最小的分片大小以及分片间增长比例,系统自动生成介于最大的分片大小和最小的分片大小之间的,并按上述分片间增长比例,从小到大排列的分片集;用户自定义:用户指定最大的分片大小、最小的分片大小和用户自定义函数,系统根据用户自定义函数生成介于最大的分片大小和最小的分片大小之间的整数值作为分片集;用户自定义分片大小:即支持用户手动输入各个分片大小。
[0024]
所述期望奖励q(s,c)是指在各个状态s下依据分片大小c进行分片后的期望奖励。
[0025]
所述奖励机制r设置如下:设r为即时奖励反馈,若当前状态s
t
下采用分片策略c
t
后,计算得到平均发包速率为,那么r=-;所述奖励机制r能够根据作为接收方的超算中心反馈的任务完成状态,指导发送方的超算中心得到最优分片方案。
[0026]
所述折扣因子γ,用于削弱未来状态对当前状态的奖励反馈,即如果未来状态与当前状态的时间间隔越大,在奖励值相同情况下,奖励反馈应该越小。
[0027]
所述模型学习率α初始化设定为:0<α<1。
[0028]
所述采样阈值采用贪婪策略阈值,初始化设定为:0<
ϵ
<1。
[0029]
步骤二,完成初始化工作后,发送方的超算中心获取初始状态,利用q-learning强化学习算法,动态调整文件数据的分片大小,后根据分片大小进行文件数据分片后传输给作为接收方的超算中心,具体包括以下子步骤:步骤2.1,完成初始化工作后,作为发送方的超算中心开始获取当前状态s
t
,得到文件大小t
t
、发送方资源负载、网络运行状态、接受方资源负载。
[0030]
步骤2.1,采用q-learning强化学习算法,动态调整文件数据的分片大小,具体为:发送方的超算中心的系统模型随机产生[0,1]范围内的数x;若x》,则根据 ,获取能够产生最优期望奖励的分片大小作为下一个分片的大小;若存在多个最优分片大小,则从中随机选择一个作为下一个分片的大小c
t
,其中q(s
t
, c
t
)表示在状态s
t
下采用切片大小c
t
后得到的期望奖励大小,表示对于状态s
t
,采用切片大小c后,切换为状态s
t 1
,得到的状态s
t 1
的最大期望奖励;若x≤,则需要从分片集{c}中随机选择一个分片大小作为下一个分片的大小。
[0031]
步骤2.3,发送方的超算中心按照分片大小进行相应大小的文件数据分片并传输至接收方的超算中心;具体的,发送方的超算中心,按照分片大小对当前文件切割一次,形成相应大小的数据分片,并传输给作为接收方的超算中心。
[0032]
步骤三,接收方的超算中心根据其接收状态,发送传输反馈给发送方的超算中心,并根据传输结果计算超算中心间的平均发包速率。
[0033]
具体的,获取时间反馈:若接收方的超算中心成功接收到数据,则接收方的超算中心通过反馈器反馈接收成功给发送方的超算中心;若接收方校验数据错误,则接收方的超算中心反馈接收失败给发送方的超算中心;若发送方的超算中心长期未收到反馈,即产生timeout超时错误,则按照接收方的超算中心反馈接收失败处理;若传输失败,则当前平均发包速率为=0,表示接收方无法接收该分片数据;若传输成功,则记录发送初始时间t
n1
和发送结束时间t
n2
,计算平均发包速率为=(t
n2-t
n1
)/c
t
,c
t
为第t次发送分片的大小;如发送10k数据使用了2s,那么平均发包速率为=10k/2s=5k/s,平均发包速率越大表示数据传输越快。
[0034]
步骤四,更新并判断剩余的文件数据的大小,以此判断文件数据是否传输完毕,若未传输完毕,则重复步骤二至步骤四,直至整个文件数据传输完成。
[0035]
具体的,更新计算剩余文件大小:若接收方的超算中心成功接收到数据,即发送成
功,则t
t 1
=t
t-c
t
;反之,若发送失败,则t
t 1
=t
t
,,ti表示传输i次后剩余文件数据的大小。
[0036]
再判断文件数据是否传输完毕:若t
t 1
《=0,则表示文件数据已传输完成,结束发包流程;若t
t 1
》0,则表示文件数据未传输完毕,需要进一步计算新分片大小并发送,比较当前平均发包速率与平均发包速率大小,计算即时反馈奖励r
t 1
=-,根据奖励机制更新期望奖励:,其中等式左边的q(s
t
,c
t
)为表示状态s
t
时采用分片大小c
t
后的期望奖励,并更新获取当前状态s
t 1
,包括剩余的文件大小t
t 1
、网络运行状态、发送方资源负载、接收方资源负载,重复上述步骤,直至整个文件传输成功。
[0037]
本发明利用q-learning强化学习算法,根据上次分片传输的网络平均时延,来决定本次文件分片大小,再根据本次传输的网络平均时延来生成奖励值,对模型进行动态调整,进而更准确合理地调整下次分片大小,从而提升大文件网络传输效率,提高分片发送成功率,进而提高网络带宽使用率。
[0038]
与前述一种超算中心间的大文件分片传输方法的实施例相对应,本发明还提供了一种超算中心间的大文件分片传输装置的实施例。
[0039]
参见图4,本发明实施例提供的一种超算中心间的大文件分片传输装置,包括一个或多个处理器,用于实现上述实施例中的一种超算中心间的大文件分片传输方法。
[0040]
本发明的一种超算中心间的大文件分片传输装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发明一种超算中心间的大文件分片传输装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0041]
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0042]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0043]
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种超算中心间的大文件分片传输方法。
[0044]
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设
备,例如所述设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、sd卡、闪存卡(flash card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
[0045]
以上所述,仅为本发明的优选实施案例,并非对本发明做任何形式上的限制。虽然前文对本发明的实施过程进行了详细说明,对于熟悉本领域的人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行同等替换。凡在本发明精神和原则之内所做修改、同等替换等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献