缓存部署与任务调度方法、终端和计算机可读存储介质与流程

文档序号:24068597发布日期:2021-02-26 14:06阅读:74来源:国知局
缓存部署与任务调度方法、终端和计算机可读存储介质与流程

[0001]
本申请涉及计算机网络技术领域,尤其涉及一种缓存部署与任务调度方法、终端和计算机可读存储介质。


背景技术:

[0002]
随着大数据技术的应用和发展,大量实际应用中的数据量已经超过了传统单机的存储和计算能力,因此,分布式水平扩展就成为了大数据系统的解决方案。hdfs(分布式文件系统)旨在解决大数据的分布式存储问题,并已广泛应用于各行各业的大数据系统中,作为底层的文件存储系统,hdfs支持非常丰富的应用程序场景,例如复杂查询分析、交互式分析、详细订单查询、键值对存储和查询、迭代计算等。hdfs作为通用的分布式存储系统,向上支撑了丰富的应用场景,其中,人工智能应用场景具有训练集数量固定,读多写少,训练集很少修改,各训练集访问热度随时间变化不大的特点。同时,训练集多为图像文本等小文件,hdfs不能高效地处理大量小文件的读写操作,对集群网络、io等具有较大压力。而传统的优化方法很少考虑上层应用的特点,仅针对hdfs本身,如网络协议,元数据结构等,进行优化。也即,目前针对hdfs性能优化的研究多停留在其自身,忽略了上层业务的特点,导致实际应用时,或是难以解决上层应用的痛点,或是优化效果不佳。


技术实现要素:

[0003]
本申请实施例通过提供一种缓存部署与任务调度方法、终端和计算机可读存储介质,旨在解决目前针对hdfs性能优化的研究多停留在其自身,忽略了上层业务的特点,从而难以解决上层应用的痛点以及优化效果不佳的问题。
[0004]
为实现上述目的,本申请一方面提供一种缓存部署与任务调度方法,所述缓存部署与任务调度方法包括以下步骤:
[0005]
获取训练集的增益矩阵,基于所述增益矩阵中的缓存增益将所述训练集部署至各缓存节点中;
[0006]
接收任务调度指令,获取任务中使用的训练集和第一处理器数量,所述第一处理器数量为所述训练集所需的处理器数量;
[0007]
根据所述使用的训练集和所述第一处理器数量遍历部署矩阵以确定缓存节点,将所述任务调度至所述缓存节点中。
[0008]
可选地,所述基于所述增益矩阵中的缓存增益将所述训练集部署至各缓存节点中的步骤包括:
[0009]
获取所述增益矩阵中的最大增益值;
[0010]
当所述最大增益值满足设定条件时,确定所述各缓存节点中最小缓存收益值;
[0011]
将所述最大增益值的训练集副本部署至所述最小缓存收益值对应的第一缓存节点中。
[0012]
可选地,所述根据所述使用的训练集和所述第一处理器数量遍历部署矩阵以确定
缓存节点的步骤包括:
[0013]
获取所述各缓存节点分别对应的第二处理器数量,所述第二处理器数量为所述缓存节点当前可用的处理器数量;
[0014]
根据所述使用的训练集和所述第一处理器数量遍历所述部署矩阵,以获取所述第二处理器数量大于或等于所述第一处理器数量对应的第二缓存节点。
[0015]
可选地,所述获取所述增益矩阵中的最大增益值的步骤之后,还包括:
[0016]
当所述最大增益值未满足设定条件时,对所述各缓存节点的缓存矩阵分别进行遍历,生成遍历结果;
[0017]
根据所述遍历结果确定所述各缓存节点分别缓存的所述训练集副本。
[0018]
可选地,所述将所述最大增益值的训练集副本部署至所述最小缓存收益值对应的第一缓存节点中的步骤包括:
[0019]
获取所述第一缓存节点的第一缓存空间以及所述训练集的大小;
[0020]
当所述第一缓存空间大于所述训练集的大小且所述缓存节点的缓存为设定值时,将所述最大增益值的训练集副本部署至所述第一缓存节点中。
[0021]
可选地,所述基于所述匹配结果确定所述第二处理器数量大于或等于所述第一处理器数量的第二缓存节点的步骤之后,包括:
[0022]
获取所述第二缓存节点的第二缓存空间;
[0023]
当所述第二缓存空间满足设定条件时,则执行将所述任务调度至所述缓存节点中的步骤;或者,
[0024]
当所述第二缓存空间未满足设定条件时,则遍历所述各缓存节点以确定满足约束条件的缓存节点,所述约束条件为所述缓存节点的处理器数量大于所述第一处理器数量。
[0025]
可选地,所述将所述任务调度至所述缓存节点中的步骤之后,还包括:
[0026]
在完成所述任务后,向任务调度中心发送反注册信息;
[0027]
基于所述反注册信息更新所述第二缓存节点的缓存空间以及所述处理器数量。
[0028]
可选地,所述获取训练集的增益矩阵的步骤之前,还包括:
[0029]
设置所述约束条件;
[0030]
统计操作日志时长以及各训练集的总访问次数,根据所述操作日志时长以及总访问次数计算所述各训练集分别对应的增益参数。
[0031]
此外,为实现上述目的,本申请另一方面还提供一种终端,所述终端包括存储器、处理器及存储在存储器上并在处理器上运行的缓存部署与任务调度程序,所述处理器执行所述缓存部署与任务调度程序时实现如上所述缓存部署与任务调度方法的步骤。
[0032]
此外,为实现上述目的,本申请另一方面还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有缓存部署与任务调度程序,所述缓存部署与任务调度程序被处理器执行时实现如上所述缓存部署与任务调度方法的步骤。
[0033]
本实施例通过获取训练集的增益矩阵,基于增益矩阵中的缓存增益将训练集部署至各缓存节点中;接收任务调度指令,获取任务中使用的训练集和第一处理器数量,第一处理器数量为训练集所需的处理器数量;根据使用的训练集和第一处理器数量遍历部署矩阵以确定缓存节点,将任务调度至缓存节点中。解决了目前针对hdfs性能优化的研究多停留在其自身,忽略了上层业务的特点,从而难以解决上层应用的痛点以及优化效果不佳的技
术问题,提高了人工智能应用场景下的计算节点缓存利用率和命中率,降低了hdfs集群网络、i/o口压力和深度学习任务数据的加载时间,提高了深度学习任务的执行效率。
附图说明
[0034]
图1为本申请实施例方案涉及的硬件运行环境的终端结构示意图;
[0035]
图2为本申请缓存部署与任务调度方法第一实施例的流程示意图;
[0036]
图3为本申请缓存部署与任务调度方法第二实施例的流程示意图;
[0037]
图4为本申请缓存部署与任务调度方法中基于所述增益矩阵中的缓存增益将所述训练集部署至各缓存节点中的流程示意图;
[0038]
图5为本申请缓存部署与任务调度方法中根据所述使用的训练集和所述第一处理器数量遍历部署矩阵以确定缓存节点的流程示意图;
[0039]
图6为本申请缓存部署与任务调度方法的操作流程示意图。
[0040]
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0041]
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
[0042]
本申请实施例的主要解决方案是:获取训练集的增益矩阵,基于所述增益矩阵中的缓存增益将所述训练集部署至各缓存节点中;接收任务调度指令,获取任务中使用的训练集和第一处理器数量,所述第一处理器数量为所述训练集所需的处理器数量;根据所述使用的训练集和所述第一处理器数量遍历部署矩阵以确定缓存节点,将所述任务调度至所述缓存节点中。
[0043]
由于目前针对hdfs性能优化的研究多停留在其自身,忽略了上层业务的特点,导致实际应用时,或是难以解决上层应用的痛点,或是优化效果不佳。本申请通过获取训练集的增益矩阵,基于增益矩阵中的缓存增益将训练集部署至各缓存节点中;接收任务调度指令,获取任务中使用的训练集和第一处理器数量,第一处理器数量为训练集所需的处理器数量;根据使用的训练集和第一处理器数量遍历部署矩阵以确定缓存节点,将任务调度至缓存节点中,使得提高了人工智能应用场景下的计算节点缓存利用率和命中率,降低了hdfs集群网络、i/o口压力和深度学习任务数据的加载时间,提高了深度学习任务的执行效率。
[0044]
如图1所示,图1为本申请实施例方案涉及的硬件运行环境的终端结构示意图。
[0045]
如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0046]
可选地,终端还可以包括摄像头、rf(radio frequency,射频)电路,传感器、遥控器、音频电路、wifi模块、检测器等等。当然,所述终端还可配置陀螺仪、气压计、湿度计、温
度传感器等其他传感器,在此不再赘述。
[0047]
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0048]
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及缓存部署与任务调度程序。
[0049]
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中缓存部署与任务调度程序,并执行以下操作:
[0050]
获取训练集的增益矩阵,基于所述增益矩阵中的缓存增益将所述训练集部署至各缓存节点中;
[0051]
接收任务调度指令,获取任务中使用的训练集和第一处理器数量,所述第一处理器数量为所述训练集所需的处理器数量;
[0052]
根据所述使用的训练集和所述第一处理器数量遍历部署矩阵以确定缓存节点,将所述任务调度至所述缓存节点中。
[0053]
参考图2,图2为本申请缓存部署与任务调度方法第一实施例的流程示意图。
[0054]
本申请实施例提供了缓存部署与任务调度方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0055]
缓存部署与任务调度方法包括:
[0056]
步骤s10,获取训练集的增益矩阵,基于所述增益矩阵中的缓存增益将所述训练集部署至各缓存节点中;
[0057]
本实施例提供的方法的应用环境为应用在人工智能应用场景中,在人工智能应用场景下,基于四个阶段完成hdfs文件系统的性能优化,其中,hdfs文件系统为分布式文件系统,hdfs采用了在系统中保存多个副本的方式保存数据,且同一个数据块的多个副本会存放在不同节点上;其中,采用多副本可以让客户从不同的数据块中读取数据,加快传输速度;因为hdfs的datanode之间通过网络传输数据,如果采用多个副本可以判断数据传输是否出错;多副本可以保证某个datanode失效的情况下,不会丢失数据。
[0058]
终端在获取训练集的增益矩阵之前,需要先初始化系统的约束条件,即完成第一阶段,包括:初始化缓存空间,流行度参数;获取各训练集的大小,各计算节点中gpu数量;测试平均网络带宽,基于该平均带宽计算各训练集传输时间。具体地,在m个计算节点上开辟本地缓存空间,每个缓存空间大小为v0,所述计算节点主要用于接收服务器任务、转发任务与计算结果、监控计算模块是都正常等,其中,计算节点上有缓存,也称缓存节点;针对n个训练集样本,结合其本身流行度,定义初始参数λ

n
;获取n个训练集样本大小v
n
;获取m个计算节点gpu数量,为g
m
,其中,gpu为图像处理器,在一个计算节点中存在多个gpu;计算n个训练集样本平均占用时间t
n
,计算方法如(1)所示:
[0059][0060]
其中b为本地缓存平均带宽,可通过测试得出;τ
n
为当前训练集平均训练时长,可根据日志和经验取得。
[0061]
在完成第一阶段的初始化后,进入第二阶段(数据处理阶段),通过操作日志统计出集群中个训练集样本的访问次数,最终计算出每个训练集样本的增益参数λ
n
;其中,日志文件通常会记录下用户操作的一些相关内容,例如,用户对系统进行了ipc探测,系统就会在安全日志里迅速地记下探测者探测时所用的ip、时间、用户名等,当用ftp探测后,则会在ftp日志中记下ip、时间、探测所用的用户名等。具体地,统计日志记录时长t;统计n个训练集在t时间内的各自访问次数c
n
;为简化问题,各训练集在单位时间(平均占用时间)t
n
内的访问次数符合泊松分布,其概率密度函数如(2)所示。
[0062][0063]
泊松分布的参数λ是单位时间(或单位面积)内随机事件的平均发生次数,泊松分布适合于描述单位时间内随机事件发生的次数。其中,参数λ
n
计算方法如(3)式所示。
[0064][0065]
其中,加权参数α取0.5,λ

n
为上一周期训练集n的泊松分布参数。
[0066]
在完成第二阶段后,进入第三阶段(部署阶段),根据流行度参数,初始化各训练集的增益矩阵,进一步初始化各计算节点缓存可用空间和缓存收益,根据训练集的增益矩阵,使用贪心算法将训练集相对均匀地部署至各计算节点中。具体地,w
n,k
表示训练集n的第k个副本的缓存增益属性,如(4)式所示。
[0067][0068]
其中p
nk
代表此时的总缓存收益,为单位空间的缓存收益,p
nk
的计算方法如(5)式所示。
[0069][0070]
其中,p
n
(k)如(2)式所示
[0071]
进一步地,初始化所有训练集的增益为w
n1
,此时增益集合为:
[0072]
w=[w
11 w
21 w
31
ꢀ…ꢀ
w
n1
]
[0073]
初始化每个计算节点的缓存可用空间为:
[0074]
c=[v
0 v
0 v0ꢀ…ꢀ
v0]
[0075]
初始化每个计算节点的缓存收益为:
[0076]
g=[0 0 0
ꢀ…ꢀ
0]
[0077]
初始化每个计算节点的缓存为:
[0078]
b=[0 0 0
ꢀ…ꢀ
0]
[0079]
其中,初始化w=[w
11 w
21 w
31
ꢀ…ꢀ
w
n1
],实际上是初始化每个训练集的w
n,k
,在缓存节点未缓存副本时,则缓存每个训练集的第一个副本,即在增益矩阵中初始化每个副本的缓存增益值,其中n为训练集的个数。可用缓存空间c是用户预先设置的,在初始化计算节点的可用缓存空间时,直接采用用户预先设置的缓存空间值。每个计算节点的缓存收益为g=
∑p
nk
,表示当前计算节点缓存所有的训练集副本的增益值之和,由于每个计算节点在刚开始的时候未缓存副本,因此初始化缓存收益矩阵中的数值为0,缓存矩阵的数值也为0。基于该增益矩阵中的缓存增益将训练集部署至各缓存节点中。
[0080]
进一步地,参考图4,所述基于所述增益矩阵中的缓存增益将所述训练集部署至各缓存节点中的步骤包括:
[0081]
步骤s11,获取所述增益矩阵中的最大增益值;
[0082]
步骤s12,当所述最大增益值满足设定条件时,确定所述各缓存节点中最小缓存收益值;
[0083]
步骤s13,将所述最大增益值的训练集副本部署至所述最小缓存收益值对应的第一缓存节点中。
[0084]
终端在获取到增益矩阵w中的最大增益值时,判断该最大增益值(即最大缓存增益)是否满足设定值,如判断最大增益值是都为0,若最大增益值为0,则确定各缓存节点中的最小缓存收益值,将最大增益值的训练集副本部署至最小缓存收益对应的第一缓存节点中。具体地,步骤a,根据单位空间的缓存收益,选取增益矩阵w中最大的增益值w
n
=w
n,k
,若w
n
>0,则将各计算节点的缓存收益g从小到大排序,并依次检查各节点可用空间c。步骤b,若c
m
>v
n
且b
n
=0,即当计算节点的缓存空间大于训练集样本的大小且计算节点的缓存为0时,则减少当前节点的可用空间c
m
=c
m-v
n
,并设置b
n
=k代表当前节点存储了训练集n的第k个副本,同时设置g
m
=g
m
+p
nk
,即设置当前计算节点的缓存收益为之前的缓存收益与总缓存收益之和,设置w
n
=w
n,k
,即当前节点节点缓存了训练集n的第k个副本,在完成一个训练集的副本缓存后,继续返回执行步骤a;步骤c,若当前的计算节点为最后一个节点时,则设置w
n
=0,即设置最后一个计算节点的缓存增益为0,并返回执行步骤a;若当前的计算节点不是最后一个节点时,则将下一个节点设为当前节点,并返回执行步骤b。重复执行步骤a、步骤b、步骤c,直至增益矩阵中训练集副本的最大缓存增益值为0,则结束循环。由于在选择计算节点的缓存收益时,是按照从小到大选择的,这使得缓存对象的收益越来越小,根据这一特点,每次部署训练集副本时,先选择缓存增益高的训练集副本,再选择缓存增益低的训练集副本,每次都是将缓存增益最大的副本部署至总缓存收益最小的计算节点上,即相当于做了负载均衡,以保证每个计算节点的缓存收益比较平均。
[0085]
需要说明的是,增益矩阵中的缓存增益就是矩阵中的每个元素,也就是缓存单个训练集的第k个副本的增益;计算节点的缓存收益是指该计算节点上当前已缓存的所有训练集的增益之和,其中,增益就是缓存某个文件对整体的好处,是在0-1之间的数,在本申请的模型里把它抽象成该文件的第k个副本可能被用到的概率,概率越大,说明缓存该文件好处越大。缓存带来的好处包括高速读写、降低后端负载:后端服务器通过前端缓存降低负载;业务端使用redis降低后端mysql负载等等。
[0086]
步骤s20,接收任务调度指令,获取任务中使用的训练集和第一处理器数量,所述第一处理器数量为所述训练集所需的处理器数量;
[0087]
终端在完成第三阶段,即缓存部署后,进入第四部分(任务调度),在调度重点等待调度指令前,需要先构建训练集的部署矩阵,并初始化各计算节点gpu数量。具体地,用b
n,m
指定训练集n的第m个副本部署位置,得到部署矩阵b。
[0088][0089]
其中,
[0090]
初始化每个计算节点的可用gpu数量为:
[0091]
g=[g
1 g
2 g3ꢀ…ꢀ
g
m
]
[0092]
其中,b
n,m
中的n表示训练集的数量,m表示训练集的副本数,如b
1,2
表示当前位置部署了第1个训练集的第2个副本;如b
4,3
表示当前位置部署了第4个训练集的第3个副本。
[0093]
当调度中心接收到任务调度指令时,获取当前任务所使用的训练集n和运行所需的gpu数量。
[0094]
步骤s30,根据所述使用的训练集和所述第一处理器数量遍历部署矩阵以确定缓存节点,将所述任务调度至所述缓存节点中。
[0095]
终端根据当前任务所使用的训练集和运行所需的gpu数量遍历训练集的部署矩阵,从而确定当前任务对应的缓存节点,并将该任务调度至缓存节点上执行。
[0096]
进一步地,参考图5,所述根据所述使用的训练集和所述第一处理器数量遍历部署矩阵以确定缓存节点的步骤包括:
[0097]
步骤s31,获取所述各缓存节点分别对应的第二处理器数量,所述第二处理器数量为所述缓存节点当前可用的处理器数量;
[0098]
步骤s32,根据所述使用的训练集和所述第一处理器数量遍历所述部署矩阵,以获取所述第二处理器数量大于或等于所述第一处理器数量对应的第二缓存节点。
[0099]
终端获取各缓存节点分别对应的当前可用的gpu数量,在遍历部署矩阵时,将当前可用的gpu数量与任务所需的gpu数量进行匹配,生成匹配结果,基于该匹配结果确定可用的gpu数量大于任务所需的gpu数量对应的缓存节点。具体地,步骤一,等待任务注册与反注册,若为任务注册,则执行步骤二,获取要使用的训练集和所需的gpu数量,按顺序遍历部署矩阵中的向量b
n
,直到找到满足b
n.m
≠-1且的b
n,m
项,也即找到计算节点当前可用的gpu数量大于当前任务所需的gpu数量的向量,其中,在遍历部署矩阵时,只要遍历到满足条件的向量,则停止遍历。设置即设置当前缓存节点剩余可用的gpu数量等于当前缓存节点可用gpu的数量与任务使用的训练集所需的gpu数量之间的差值,设置s=b
n,m
;若在遍历过程中未找到满足条件的缓存节点,设置s=-1,说明当前没有可用的缓存节点。步骤三,若s>0,意为该任务在节点s部署;若s=-1,意为该任务可在任意节点部署,不使用缓存,此时遍历所有计算节点,找到任意满足g
s
≥g的节点s,设置g
s
=g
s-g。返回节点s,返回执行步骤一。步骤四,若任务为反注册,则获取注册节点s及gpu数量g,设置g
s
=g
s
+g,返回执行步骤一。
[0100]
在当前任务完成后,需要释放缓存节点占用的gpu数量,任务在所选缓存节点上独占g个gpu运行,则运行结束后释放gpu,例如,若当前g=3,则说明当前任务使用了gpu3、gpu4以及gpu5,在运行结束后释放gpu3、gpu4以及gpu5,进一步地,更新该缓存节点可用的
gpu资源数。
[0101]
本实施例通过获取训练集的增益矩阵,基于增益矩阵中的缓存增益将训练集部署至各缓存节点中;接收任务调度指令,获取任务中使用的训练集和第一处理器数量,第一处理器数量为训练集所需的处理器数量;根据使用的训练集和第一处理器数量遍历部署矩阵以确定缓存节点,将任务调度至缓存节点中。通过针对人工智能应用场景中读多写少的特点,大量使用缓存,而不用担心缓存失效;将大量请求拦截在缓存上,使用缓存来缓解hdfs高效地处理大量小文件的缺陷;其次,针对训练集数量固定,且访问热度随时间变化不大的特点,定期进行主动的缓存策略计算和部署,而不是被动的缓存替换;由于缓存策略计算和部署过程是可控的,将人工智能应用部署到离缓存较近的节点上执行,使得更有效地利用缓存,进一步提高了人工智能应用场景下的计算节点缓存利用率和命中率,降低了hdfs集群网络、i/o口压力和深度学习任务数据的加载时间,提高了深度学习任务的执行效率。
[0102]
进一步地,参考图3,提出本申请缓存部署与任务调度方法第二实施例。
[0103]
所述缓存部署与任务调度方法第二实施例与所述缓存部署与任务调度方法第一实施例的区别在于,所述获取所述增益矩阵中的最大增益值的步骤之后,还包括:
[0104]
步骤s110,当所述最大增益值未满足设定条件时,对所述各缓存节点的缓存矩阵分别进行遍历,生成遍历结果;
[0105]
步骤s111,根据所述遍历结果确定所述各缓存节点分别缓存的所述训练集副本。
[0106]
当终端从增益矩阵中获取到的最大缓存增益值为0时,即说明当前训练集副本的增益不满足大于0的条件,而w
n
=0,则说明目前已经没有副本的增益大于0,可以停止循环,开始部署结果。具体地,遍历每个计算节点的缓存矩阵b,若b
n
≥0,则说明在当前计算节点中部署训练集的第n个副本,如b1≥0,则说明在当前计算节点中部署训练集的第1个副本。进一步地,基于获取到的每个训练集副本的存储位置,构建训练集的部署矩阵;其中,缓存矩阵b为调度中心计算的每个节点该缓存的内容,调度中心会将该缓存矩阵下发到各个计算节点中,由各个计算节点遍历自己的矩阵,如果元素>0,就执行部署该副本。
[0107]
本实施例在当前增益矩阵中的最大增益值不满足设定条件时,则结束当前的循环,并基于获取到的每个训练集副本的存储位置构建训练集的部署矩阵,使得为任务调度工作做了准备。
[0108]
为了更好的说明本申请实施例的方案,缓存部署与任务调度方法包括以下步骤:
[0109]
参考图6,在深度学习的场景下,基于四个阶段实现hdfs文件系统的优化,第一阶段称为初始化阶段,包括:初始化各计算节点的缓存空间,流行度参数;获取各训练集大小,各计算节点gpu数量;测试平均网络带宽,计算各训练集传输时间。第二阶段为日志分析阶段(即数据处理阶段),包括:统计日志时长和各训练集总访问次数;计算各训练集流行度参数。第三阶段为缓存部署阶段,包括:根据流行度参数,初始化各训练集增益矩阵;初始化节点缓存可用空间及缓存收益;根据训练集增益矩阵,使用贪心算法将训练集相对均匀地部署至各节点。第四阶段为任务调度阶段,包括:构建训练集部署矩阵,初始化节点gpu数量;调度中心等待事件;在接收到任务调度指令时,遍历部署矩阵,寻找空闲的缓存节点;若不存在空闲的缓存节点,则随机分配空闲节点;在当前任务完成后,更新缓存节点可用的gpu资源数以及释放节点占用的gpu资源。
[0110]
本实施例通过缓存的主动部署和任务的主动调度,实现人工智能应用场景下的
hdfs文件系统的性能优化,提高了人工智能应用场景下的计算节点缓存利用率和命中率,降低了hdfs集群网络和i/o压力,从而降低了深度学习任务的数据加载时间,提高了深度学习任务的执行效率,降低了成本。
[0111]
此外,本申请还提供一种终端,所述终端包括存储器、处理器及存储在存储器上并在处理器上运行的缓存部署与任务调度程序,所述终端在深度学习的场景下,基于四个阶段实现hdfs文件系统的优化,第一阶段称为初始化阶段,用于初始化系统约束条件,该约束条件为当前任务所需的gpu数量小于缓存节点可用的gpu数量;第二阶段为数据处理阶段,通过操作日志统计出集群中个训练集样本的访问次数,最终计算出每个训练集样本的增益参数λ
n
。第三阶段为部署阶段,根据增益参数λ
n
,将训练集部署到个计算节点(缓存节点)的本地缓存中,使得总缓存增益较高的同时,各个计算节点的缓存增益大致相同。第四阶段为调度阶段,当任务来临时,根据各节点缓存情况,分配计算节点,并进行任务的注册与反注册。在一实施例中,终端通过网络协议,如nfs协议,将hdfs文件系统挂载到计算节点上,并利用缓存软件(如cachefilesd软件)在本地开辟缓存,每周定时分析任务日志,并生成缓存矩阵b。在每个缓存节点上先清除本地缓存,再异步地遍历各自的缓存矩阵b,并依次读取b
n
≥1的训练集n,放入本地缓存中。当有新的计算任务到来时,调用第四阶段中的注册逻辑,通过调度中心为其分配计算节点;当有计算任务完成后,调用第四阶段中的反注册逻辑,释放gpu资源。提高了人工智能应用场景下的计算节点缓存利用率和命中率,降低了hdfs集群网络和i/o压力,从而降低了深度学习任务的数据加载时间,提高了深度学习任务的执行效率,降低了成本。
[0112]
此外,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有缓存部署与任务调度程序,所述缓存部署与任务调度程序被处理器执行时实现如上所述缓存部署与任务调度方法的步骤。
[0113]
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0114]
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0115]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0116]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0117]
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本申请可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0118]
尽管已描述了本申请的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本申请范围的所有变更和修改。
[0119]
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1