CN116382599A - 一种面向分布式集群的任务执行方法、装置、介质及设备 - Google Patents
一种面向分布式集群的任务执行方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN116382599A CN116382599A CN202310669715.5A CN202310669715A CN116382599A CN 116382599 A CN116382599 A CN 116382599A CN 202310669715 A CN202310669715 A CN 202310669715A CN 116382599 A CN116382599 A CN 116382599A
- Authority
- CN
- China
- Prior art keywords
- sample data
- bandwidth
- delay
- local
- computing node
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000003860 storage Methods 0.000 claims abstract description 151
- 238000012549 training Methods 0.000 claims abstract description 147
- 238000004590 computer program Methods 0.000 claims description 16
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 21
- 230000005540 biological transmission Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000006872 improvement Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000005055 memory storage Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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
- G06N3/098—Distributed learning, e.g. federated learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书公开了一种面向分布式集群的任务执行方法、装置、介质及设备。所述面向分布式集群的任务执行方法包括:获取样本数据,根据磁盘带宽和本地延迟,以及网络带宽和网络延迟,对样本数据的数量进行划分,将第一样本数量的样本数据存储在各计算节点的本地磁盘,将第二样本数量的样本数据存储在存储节点,针对每个计算节点,将该计算节点的本地磁盘中指定数量的样本数据与其他计算节点的本地磁盘中的样本数据进行交换,得到更新后样本数据,以及,从所述存储节点中读取远端样本数据,根据更新后本地样本数据和远端样本数据,在该计算节点上执行当前训练周期针对目标模型的训练任务。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种面向分布式集群的任务执行方法、装置、介质及设备。
背景技术
随着深度学习在诸如图像识别、音频识别和自然语言处理等领域的广泛应用,深度神经网络的训练已经成为分布式系统上越来越重要的工作负载。研究表明,随着硬件加速器和加速算法带来的性能提升,以及通信基础设施的完善,模型训练过程中集群的性能瓶颈主要转移到训练样本的输入/输出(Input/Output,I/O)上。
然而,目前在模型训练过程中样本数据的输入、输出方式较为单一,并没有全面的利用不同渠道的存储资源以及传输优势,对于一些样本数据的数据量较为庞大的训练任务,无法实现模型训练过程中系统性能的最大化,导致样本数据在输入、输出的过程中耗费较长时间,严重降低了训练效率。
因此,如何有效利用不同渠道的存储资源以及优势,提高分布式系统在模型训练过程中的性能,进一步提高训练效率,是一个亟待解决的问题。
发明内容
本说明书提供一种面向分布式集群的任务执行方法、装置、介质及设备,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种面向分布式集群的任务执行方法,包括:
获取对目标模型进行训练的样本数据;
根据计算集群中计算节点的本地磁盘所对应的磁盘带宽和本地延迟,以及计算节点与存储集群中存储节点之间网络带宽和网络延迟,对所述样本数据的数量进行划分,得到第一样本数量以及第二样本数量;
将所述第一样本数量的样本数据存储在各计算节点的本地磁盘,将所述第二样本数量的样本数据存储在所述存储节点;
针对每个计算节点,在接收到当前训练周期的训练请求后,将该计算节点的本地磁盘中指定数量的样本数据,与其他计算节点的本地磁盘中所述指定数量的样本数据进行交换,得到该计算节点中的更新后样本数据;
访问所述存储节点,从所述存储节点中读取所述训练请求所需的样本数据,作为远端样本数据;
根据所述更新后样本数据和所述远端样本数据,在该计算节点上执行所述当前训练周期针对所述目标模型的训练任务。
可选地,根据计算集群中计算节点的本地磁盘所对应的磁盘带宽和本地延迟,以及计算节点与存储集群中存储节点之间网络带宽和网络延迟,对所述样本数据的数量进行划分,具体包括:
根据样本数据的总数量、预设的带宽权重、预设的延迟权重,所述磁盘带宽和所述本地延迟,确定所述第一样本数量,以及,根据所述样本数据的总数量、所述带宽权重、所述延迟权重,所述网络带宽和所述网络延迟,确定所述第二样本数量。
可选地,所述带宽权重大于所述延迟权重。
可选地,根据计算集群中计算节点的本地磁盘所对应的磁盘带宽和本地延迟,以及计算节点与存储集群中存储节点之间网络带宽和网络延迟,对所述样本数据的数量进行划分,具体包括:
根据所述磁盘带宽以及所述网络带宽,分别对所述磁盘带宽和所述网络带宽进行归一化处理,得到归一化磁盘带宽和归一化网络带宽,以及,根据所述本地延迟以及所述网络延迟,分别对所述本地延迟和所述网络延迟进行归一化处理,得到归一化本地延迟和归一化网络延迟;
根据所述归一化磁盘带宽、所述归一化网络带宽、所述归一化本地延迟以及所述归一化网络延迟,对所述样本数据进行划分。
可选地,在接收到训练请求之前,所述方法还包括:
针对每个计算节点,定义该计算节点对应的数据加载接口;
根据所述更新后样本数据和所述远端样本数据,在该计算节点上执行所述当前训练周期针对所述目标模型的训练任务,具体包括:
通过所述数据加载接口,合并所述更新后样本数据和所述远端样本数据,得到目标样本数据,并向该计算节点返回所述目标样本数据。
可选地,所述方法还包括:
若所述训练请求所需的样本数据的索引小于存储在该计算节点的本地磁盘中的样本数据的数量,则不从所述存储节点中读取所述远端样本数据。
可选地,所述方法还包括:
针对该计算节点对所述目标模型的每个训练周期,在该训练周期的训练开始后随机生成该训练周期所对应的数据访问序列;
根据所述数据访问序列,确定所述存储节点中各远端样本数据对应的访问次序,并按照所述访问次序将该训练周期对应的各远端样本数据存储在所述存储节点的缓存中;
在接收到下一批次的训练请求后,按照所述各远端样本数据对应的访问次序,对存储在所述缓存中的各远端样本数据进行替换。
本说明书提供了一种面向分布式集群的任务执行装置,包括:
获取模块,获取对目标模型进行训练的样本数据;
划分模块,根据计算集群中计算节点的本地磁盘所对应的磁盘带宽和本地延迟,以及计算节点与存储集群中存储节点之间网络带宽和网络延迟,对所述样本数据的数量进行划分,得到第一样本数量以及第二样本数量;
存储模块,将所述第一样本数量的样本数据存储在各计算节点的本地磁盘,将所述第二样本数量的样本数据存储在所述存储节点;
交换模块,针对每个计算节点,在接收到当前训练周期的训练请求后,将该计算节点的本地磁盘中指定数量的样本数据,与其他计算节点的本地磁盘中所述指定数量的样本数据进行交换,得到该计算节点中的更新后样本数据;
访问模块,访问所述存储节点,从所述存储节点中读取所述训练请求所需的样本数据,作为远端样本数据;
读取模块,根据所述更新后样本数据和所述远端样本数据,在该计算节点上执行所述当前训练周期针对所述目标模型的训练任务。
可选地,所述划分模块具体用于,根据样本数据的总数量、预设的带宽权重、预设的延迟权重,所述磁盘带宽和所述本地延迟,确定所述第一样本数量,以及,根据所述样本数据的总数量、所述带宽权重、所述延迟权重,所述网络带宽和所述网络延迟,确定所述第二样本数量。
可选地,所述带宽权重大于所述延迟权重。
可选地,所述划分模块具体用于,根据所述磁盘带宽以及所述网络带宽,分别对所述磁盘带宽和所述网络带宽进行归一化处理,得到归一化磁盘带宽和归一化网络带宽,以及,根据所述本地延迟以及所述网络延迟,分别对所述本地延迟和所述网络延迟进行归一化处理,得到归一化本地延迟和归一化网络延迟;根据所述归一化磁盘带宽、所述归一化网络带宽、所述归一化本地延迟以及所述归一化网络延迟,对所述样本数据进行划分。
可选地,在接收到训练请求之前,所述划分模块还用于,针对每个计算节点,定义该计算节点对应的数据加载接口;
所述读取模块具体用于,通过所述数据加载接口,合并所述更新后样本数据和所述远端样本数据,得到目标样本数据,并向该计算节点返回所述目标样本数据。
可选地,所述读取模块还用于,若所述训练请求所需的样本数据的索引小于存储在该计算节点的本地磁盘中的样本数据的数量,则不从所述存储节点中读取所述远端样本数据。
可选地,所述装置还包括:
缓存模块,用于针对该计算节点对所述目标模型的每个训练周期,在该训练周期的训练开始后随机生成该训练周期所对应的数据访问序列;根据所述数据访问序列,确定所述存储节点中各远端样本数据对应的访问次序,并按照所述访问次序将该训练周期对应的各远端样本数据存储在所述存储节点的缓存中;在接收到下一批次的训练请求后,按照所述各远端样本数据对应的访问次序,对存储在所述缓存中的各远端样本数据进行替换。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述面向分布式集群的任务执行方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述面向分布式集群的任务执行方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的面向分布式集群的任务执行方法中,获取样本数据,根据磁盘带宽和本地延迟,以及网络带宽和网络延迟,对样本数据的数量进行划分,将第一样本数量的样本数据存储在各计算节点的本地磁盘,将第二样本数量的样本数据存储在所述存储节点,针对每个计算节点,将该计算节点的本地磁盘中指定数量的样本数据与其他计算节点的本地磁盘中的样本数据进行交换,得到更新后样本数据,以及,从所述存储节点中读取远端样本数据,合并更新后样本数据和远端样本数据得到目标样本数据,根据目标样本数据,在该计算节点执行目标模型的训练任务。
从上述方法可以看出,本方案能够基于磁盘带宽和本地延迟,以及网络带宽和网络延迟,对样本数据进行划分,并分别将样本数据存储在计算节点的本地磁盘和远端的存储节点中,这样一来,可以有效利用本地磁盘存储资源以及远端存储节点的存储资源,并充分利用本地磁盘的传输优势以及存储节点的存储优势,从而提高分布式系统在模型训练过程中的性能,进一步提高训练效率。另外,本方案能够在当前训练周期的训练前将各计算节点的本地磁盘中存储的部分样本数据进行交换,保证模型更好的泛化,进一步提高模型精度。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种面向分布式集群的任务执行方法的流程示意图;
图2为本说明书中提供的一种计算集群与存储集群之间的数据传输方式示意图;
图3为本说明书中提供的一种样本数据的划分方式示意图;
图4为本说明书中提供的一种各计算节点本地磁盘中的样本数据交换过程示意图;
图5为本说明书中提供的一种样本数据的后端存储系统示意图;
图6为本说明书中提供的一种面向分布式集群的任务执行装置的示意图;
图7为本说明书中提供的一种对应于图1的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
目前流行的方案之一是使用内存存储集群中的存储节点存储样本数据,来加速对样本数据集后端存储(如并行文件系统)的访问。该方案较好的利用了内存和网络性能,其不足之处在于,没有在训练精度与随机访问之间做相应的权衡,没有全面利用集群的性能如计算节点本地磁盘的性能。
目前流行的方案另外一个方案是,将数据集分发到计算节点的本地存储,这种方案较好的利用了多计算节点的性能。然而随着神经网络模型训练数据集不断增大,超过了计算节点本地磁盘的容量,简单将整个数据集存储在本地磁盘存储的常见加速方式变得不可行,并且磁盘的IO带宽有限,无法匹配内存带宽和不断提升的DNN加速器的计算能力。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的一种面向分布式集群的任务执行方法的流程示意图,包括以下步骤:
S101:获取对目标模型进行训练的样本数据。
深度神经网络(Deep-Learning Neural Network,DNN)的训练过程主要包括执行DNN的计算,跨节点同步更新的通信,以及提供训练数据的I/O。其中,随机梯度下降(Stochastic Gradient Descent SGD)是训练DNN最常用的算法。每个训练周期(Epoch)中SGD以随机访问的方式迭代处理数据样本中的输入数据集,这给I/O子系统带来了巨大的压力。对输入样本数据的随机访问是分布式集群系统 I/O 性能不佳的主要原因之一。
基于此,本说明书提供了一种面向分布式集群的任务执行方法,在本说明书中,分布式集群可以包含有计算集群以及存储集群,计算集群中包含有多个计算节点,在执行针对目标模型的训练任务的过程中,每个计算节点从本地磁盘以及远端存储节点读取各自对应的样本数据以在各计算节点上对目标模型进行训练。存储集群中可以包含有多个存储节点,用于对样本数据进行存储,计算集群的各计算节点与存储集群中的存储节点之间通过网络进行数据传输。
需要说明的是,在本说明书中计算集群内的每个计算节点的配置(如磁盘带宽、本地延迟以及网卡带宽等)可以相同,需要指出的是,计算和存储只是逻辑上的概念,在一些情况下,存储节点也可以同时作为计算节点。
在本说明书中,用于实现一种面向分布式集群的任务执行方法的执行主体可以是分布式集群的服务器等指定设备,为了便于描述,本说明书仅以服务器是执行主体为例,对本说明书提供的面向分布式集群的任务执行方法进行说明。
其中,服务器可以获取对目标模型进行训练的全部样本数据,在实际应用中,目标模型可以为诸如图像识别模型以及自然语言处理模型等,相应的,上述样本数据可以为图像数据、文本数据或是音频数据,当然,还可以包含有其他模型以及其他类型的样本数据,本说明书对此不做具体限定。
S102:根据计算集群中计算节点的本地磁盘所对应的磁盘带宽和本地延迟,以及计算节点与存储集群中存储节点之间网络带宽和网络延迟,对所述样本数据的数量进行划分,得到第一样本数量以及第二样本数量。
在本说明书中,计算节点的本地磁盘可以包括计算节点上的机械硬盘(Hard DiskDriver,HDD)以及固态硬盘(Solid State Drive,SSD),当然,还可以包含有诸如混合硬盘(Hybrid Hard Drive,HHD)等其他类型的本地磁盘,本说明书对此不做具体限定。
在实际应用中,机械硬盘(HDD)的带宽一般在100 MB/s左右,对磁盘本地数据的访问延迟(本地延迟)在几毫秒到十几毫秒之间。目前较为流行的固态硬盘(SSD)带宽可以达到500 MB/s或更高,本地延迟通常在几微秒到几毫秒之间。高速固态硬盘NVMe SSD带宽可以达到几GB/s,本地延迟通常在几微秒到几百微秒之间。
当数据存储在远端存储集群中的存储节点时,计算节点可以通过网卡与存储节点之间建立网络连接并进行数据传输,目前计算节点上的主流网卡型号包括1GbE网卡,10GbE网卡,25GbE网卡,40GbE网卡,100GbE网卡等。实际带宽一般为理论值的90%左右。另外还有高性能的Infini Band网卡,常见IB网卡的带宽根据型号带宽在56Gbps-400Gbps不等。
由以上数据可以看出,内存带宽一般大于网络带宽,本地延迟则远小于网络延迟,而内存存储集群访的本地延迟主要由计算节点与存储节点之间的网络延迟决定,访问带宽主要由网络带宽决定。
其中,网络带宽可以根据计算节点的网卡带宽进行确定,服务器可以根据网络配置工具查看计算节点的本地网卡的详细信息,然后根据网卡接口的名称,使用lspci命令(Linux系统)查看网卡的详细信息,包括型号、厂商等。然后,可以在厂商的网站或者网络设备的规格书中查找本地网卡的带宽信息。另外,服务器也可以通过网络性能测试工具(例如iperf、Netperf)来测试计算节点本地网卡或者计算节点与存储节点之间的带宽。这些工具可以在本地计算节点和远端存储节点之间进行数据传输测试并提供详细的带宽测试结果。
网卡的实际可用带宽大小可能会受到多种因素的影响,比如docker对网络带宽同节点现有任务的影响。计算节点磁盘带宽的获取途径和网络带宽的获取方式类似,本说明书在此处不做过多赘述。
在本说明书中,服务器可以假设网络无拥塞,集群节点及内存资源充足,内存存储集群的内存容量足够。各节点网络带宽相同或接近,磁盘IO带宽相同或接近。为了便于理解,本说明书提高了一种计算集群与存储集群之间的数据传输方式示意图,如图2所示。
图2为本说明书中提供的一种计算集群与存储集群之间的数据传输方式示意图。
其中,假设各计算节点可以同时连接到存储集群中的各存储节点,每个计算节点可以分别从不同的存储节点中获取所需样本数据,对任意一个计算节点i,计算节点i和任意一个存储节点j之间的最大网络带宽可以表示为B_i_j,最大网络延迟可以表示为L_i_j。
在本说明书中,计算集群中单个计算节点和存储集群中存储节点之间的平均网络带宽可以表示为,平均网络延迟记为/>,各计算节点平均磁盘带宽(I/O带宽)可以表示为/>, 平均本地延迟可以表示为/>计算节点个数可以表示为N,存储节点的个数可以表示为M,样本数据的总数量可以表示为S。
进一步的,服务器可以根据磁盘带宽以及网络带宽,分别对磁盘带宽和网络带宽进行归一化处理,得到归一化磁盘带宽和归一化网络带宽,以及,根据本地延迟以及网络延迟,分别对本地延迟和网络延迟进行归一化处理,得到归一化本地延迟和归一化网络延迟。
需要说明的是,为了方便后续计算,此处将网络延迟和本地延迟之间的分子进行了互换。
另外,服务器可以设置带宽(包括磁盘带宽以及网络带宽)对应的权重以及延迟(包括本地延迟以及网络延迟)对应的权重,其中,带宽权重大于延迟权重,在本说明书中,带宽权重可以设置为90%,延迟权重/>可以设置为10%。
服务器可以根据上述归一化磁盘带宽、归一化网络带宽、归一化本地延迟以及、归一化网络延迟、带宽权重以及延迟权重,对样本数据的数量进行划分。
从上述公式可以看出,磁盘带宽越大以及本地延迟越小,分配在本地磁盘中的样本数据的数量越多,网络带宽越大以及网络延迟越小,分配在存储节点中的样本数据的数量越多。
需要说明的是,上述第一样本数量的样本数据所占用的空间小于或等于所有计算节点本地磁盘的存储空间之和。
当然,服务器也可以不对磁盘带宽、本地延迟、网络带宽以及网络延迟进行归一化处理,而是直接根据样本数据的总数量、预设的带宽权重、预设的延迟权重,磁盘带宽和本地延迟,确定第一样本数量,以及,根据样本数据的总数量、带宽权重、延迟权重,网络带宽和网络延迟,确定第二样本数量。
S103:将所述第一样本数量的样本数据存储在各计算节点的本地磁盘,将所述第二样本数量的样本数据存储在所述存储节点。
服务器可以根据第一样本数量以及第二样本数量,对原有的样本数据进行划分,将第一样本数量的样本数据分发到每个计算节点的本地磁盘中进行存储,将第二样本数量的样本数据分发到每个存储节点中进行存储。
另外,服务器还可以定制开发AI 框架访问数据集的数据加载接口(dataloader),该接口访问的样本数据有两个来源,分别是存储集群中的存储节点和计算集群的本地磁盘,返回值为本地磁盘和存储节点读取到的样本数据进行合并的结果。
对于自定义dataloader接口,可以以pytorch 为例对要点进行说明。为了便于理解,本说明书提供了一种样本数据的划分方式示意图,如图3所示。
图3为本说明书中提供的一种样本数据的划分方式示意图。
其中,S1为本地磁盘中样本数据的数量,S2为存储节点中样本数据的数量,服务器可以先创建自定义Data Set, 重载getitem和len方法。len返回本地磁盘数据集和内存节点数据集总大小,getitem方法对index小于等于len S1时只从本地磁盘中根据index返回样本数据,index大于len S1时访问存储集群中的存储节点并根据index-len(S1)返回样本数据。换句话说,若模型的训练请求所需的样本数据的索引(单个计算节点看到的训练数据由两部分组成,本地磁盘和内存存储集群。单个计算节点看到的总训练数据量一定是大于存储在本地磁盘上的训练数据量)。小于存储在该计算节点的本地磁盘中的样本数据的数量,则不从存储节点中读取所述远端样本数据,若大于本地磁盘中的样本数量则需要从存储节点获取样本数据。
需要说明的是,存储集群如alluxio的批量文件访问接口是支持并行的,能够尽量的利用网络带宽。PyTorch的数据加载器可以通过设置num_workers参数来指定使用多少个进程来读取数据,提高从文件系统加载数据的性能。
实际可以在实现中通过观察加速器资源利用率,以及dataset访问代码中添加metric记录文件系统和存储集群的实际网络带宽。以确认是否存在样本数据加载速度不能匹配加速器的性能导致的数据等待情况。如存在等待情况,则可以分析存储节点和本地磁盘文件系统的实际访问延迟,根据带宽和延迟权重比例做适当调整优化。
另外,本方案中的一个计算节点中可以设置有多个本地磁盘以及多个网卡,但对样本数据进行划分的方式与上述方式相同,本说明书对此不做过多赘述。
S104:针对每个计算节点,在接收到当前训练周期的训练请求后,将该计算节点的本地磁盘中指定数量的样本数据,与其他计算节点的本地磁盘中所述指定数量的样本数据进行交换,得到该计算节点中的更新后样本数据。
S105:访问所述存储节点,从所述存储节点中读取所述训练请求所需的样本数据,作为远端样本数据。
模型的训练过程通常由多个训练周期构成,每个训练周期即为一个训练Epoch。每个训练Epoch的访问训练数据次序是不同的。每个训练Epoch包含多个mini-batch(如32)数据的读取和训练。
在每个计算节点对目标模型进行训练的过程中,对于其中任意一个计算节点,在每个训练周期(Epoch)开始前会交换本次磁盘中指定比例的数据,增加本地数据访问的随机性,以保证模型训练的精度。在一个Epoch开始后,在模型训练的同时,异步进行样本的交换。在当前Epoch结束后,下一个Epoch开始前,将本地已发送的样本替换为收到的样本。然后开始下一个Epoch的训练。数据样本交换比例过小影响模型的精度,比例过大造成磁盘空间的浪费,参考交换比例为0.3。为了便于理解,本说明书提供了一种各计算节点本地磁盘中的样本数据交换过程示意图,如图4所示。
图4为本说明书中提供的一种各计算节点本地磁盘中的样本数据交换过程示意图。
其中,针对每个计算节点,当该计算节点接收到当前批次的训练请求后,会将该计算节点的本地磁盘中指定数量(如第一样本数量的30%)的样本数据,与其他计算节点的本地磁盘中所述指定数量的样本数据进行交换,得到该计算节点中的更新后样本数据并对其进行读取。
需要说明的是,在每个训练Epoch开始前,也可能会是pipeline的处理,比如交换和训练同时进行,只有最后的替换保存阶段不进行训练。对于其中任意一个计算节点,在每个训练周期(Epoch)开始前会交换本次磁盘中指定比例的数据,增加本地数据访问的随机性,以保证模型训练的精度。在一个Epoch开始后,在模型训练的同时,异步进行样本的交换。在当前Epoch结束后,下一个Epoch开始前,将本地已发送的样本替换为收到的样本。然后开始下一个Epoch的训练。
与此同时,计算节点可以访问远端存储集群中的存储节点,并从存储节点中读取训练请求所需的另一部分样本数据,作为远端样本数据。
针对不同的训练Epoch,特定计算节点访问内存存储系统的样本数据可以是不同的。因此,在本说明书中,服务器可以为每个训练Epoch产生一个随机数,将该随机数分发到每个计算节点。服务器可以利用该随机数产生长度为S_memcluster的随机序列。从而是不同的计算节点按照该随机序列从存储集群的存储节点中读取当前批次所需的远端样本数据。
在实际应用中,通过存储集群访问的样本数据大小可能超过存储集群总内存大小,此时服务器可以启用相应的缓存替换策略。
上述缓存替换策略可以包括多种,例如,针对该计算节点对目标模型进行的每个训练周期(Epoch)的训练,在服务器接收到该批次对应的训练请求后服务器可以随机生成该批次对应的数据访问序列,根据该数据访问序列确定存储节点中各远端样本数据对应的访问次序,并按照访问次序将该训练周期(Epoch)对应的各远端样本数据存储在存储节点的缓存中,在服务器接收到下一批次的训练请求后,可以按照各远端样本数据对应的访问次序,对存储在缓存中的各远端样本数据进行替换,将访问次序作为替换顺序,也就是说,最先被访问的远端样本数据会在下一批次训练时最先被下一批次的远端样本数据所替换。
再例如,服务器也可以采用简单的缓存策略,样本数据的访问特点是,一个训练Epoch中每个样本数据只访问一次,但不同Epoch的访问次序不同。在这种场景下,普通的LRU替换策略反而会带来缓存颠簸。因此缓存满之后可以不进行缓存替换,直接作为代理访问后端文件存储即可,使得下一训练Epoch可以直接从存储节点缓存中读取上述远端样本数据。
S106:根据所述更新后样本数据和所述远端样本数据,在该计算节点上执行所述当前训练周期针对所述目标模型的训练任务。
获取到更新后样本数据以及远端样本数据后,服务器可以将更新后样本数据以及远端样本数据进行合并,得到目标样本数据,进而通过目标样本数据,在该计算节点上执行针对目标模型的训练任务。为了便于理解,本说明书提供了一种样本数据的存储系统示意图,如图5所示。
图5为本说明书中提供的一种样本数据的后端存储系统示意图。
其中,服务器可以对样本数据进行划分,并分别存储在本地磁盘和远端存储节点,远端存储节点和各计算节点的本地磁盘共同构成了样本数据的后端存储系统。
例如,对于该计算节点对图像识别模型的训练,上述目标样本数据可以为图像数据,服务将图像数据输入目标模型后,可以得到该图像数据的预测结果(如图像类别或各类别的概率),进而以最小化图像数据的实际标签与上述预测结果之间的偏差为优化目标,对目标模型进行训练。
而后服务器可以将训练完成后的目标模型进行部署,当部署好的目标模型接收到目标图像数据时,可以对该目标图像数据进行图像识别。
从上述方法可以看出,本方案能够基于磁盘带宽和本地延迟,以及网络带宽和网络延迟,对样本数据进行划分,并分别将样本数据存储在计算节点的本地磁盘和远端的存储节点中,这样一来,可以有效利用本地磁盘存储资源以及远端存储节点的存储资源,并充分利用本地磁盘的传输优势(带宽大,速度快)以及存储节点的存储优势(内存容量大),从而提高分布式系统在模型训练过程中的性能,进一步提高训练效率。另外,本方案能够在训练前将各计算节点的本地磁盘中存储的部分样本数据进行交换,从而防止模型的过拟合化,进一步提高模型精度。
其中,对训练数据进行交换是为了减少模型对数据顺序的敏感性,并且确保模型能够更好地泛化。减少模型对数据顺序的敏感性:在训练过程中,模型的更新是基于当前训练样本的梯度计算,然后通过优化算法进行参数调整。如果训练数据按照固定顺序排列,那么模型可能会对相邻样本之间的相关性进行学习,从而导致模型在面对未见过的数据时表现较差。通过训练数据的交换操作,可以打乱样本的顺序,让模型无法预测下一个样本是什么,从而减少对顺序的依赖性,增强模型的泛化能力。
另外,数据交换操作可以使每个训练周期使用的样本顺序都是不同的,这增加了训练的随机性。这对于模型的收敛和泛化都是有益的,因为模型可以在不同的训练批次中观察到更多的样本组合,从而更好地探索整个数据分布,减少对特定样本分布的过拟合。
此外,数据交换操作还可以防止训练批次之间的相关性:深度学习通常使用批次(batches)进行训练,每个批次包含多个样本。如果批次之间的样本顺序是固定的,模型可能会对批次之间的相关性进行学习,而不是对单个样本的特征进行建模。通过训练数据的交换操作,可以破坏批次之间的相关性,让每个批次都包含来自不同部分的样本,从而帮助模型更好地学习样本的特征。
以上为本说明书的一个或多个实施面向分布式集群的任务执行方法,基于同样的思路,本说明书还提供了相应的面向分布式集群的任务执行装置,如图6所示。
图6为本说明书中提供的一种面向分布式集群的任务执行装置的示意图,包括:
获取模块601,用于获取对目标模型进行训练的样本数据;
划分模块602,用于根据计算集群中计算节点的本地磁盘所对应的磁盘带宽和本地延迟,以及计算节点与存储集群中存储节点之间网络带宽和网络延迟,对所述样本数据的数量进行划分,得到第一样本数量以及第二样本数量;
存储模块603,用于将所述第一样本数量的样本数据存储在各计算节点的本地磁盘,将所述第二样本数量的样本数据存储在所述存储节点;
交换模块604,针对每个计算节点,在接收到当前训练周期的训练请求后,将该计算节点的本地磁盘中指定数量的样本数据,与其他计算节点的本地磁盘中所述指定数量的样本数据进行交换,得到该计算节点中的更新后样本数据;
访问模块605,用于访问所述存储节点,从所述存储节点中读取所述训练请求所需的样本数据,作为远端样本数据;
读取模块606,根据所述更新后样本数据和所述远端样本数据,在该计算节点上执行所述当前训练周期针对所述目标模型的训练任务。
可选地,所述划分模块602具体用于,根据样本数据的总数量、预设的带宽权重、预设的延迟权重,所述磁盘带宽和所述本地延迟,确定所述第一样本数量,以及,根据所述样本数据的总数量、所述带宽权重、所述延迟权重,所述网络带宽和所述网络延迟,确定所述第二样本数量。
可选地,所述带宽权重大于所述延迟权重。
可选地,所述划分模块602具体用于,根据所述磁盘带宽以及所述网络带宽,分别对所述磁盘带宽和所述网络带宽进行归一化处理,得到归一化磁盘带宽和归一化网络带宽,以及,根据所述本地延迟以及所述网络延迟,分别对所述本地延迟和所述网络延迟进行归一化处理,得到归一化本地延迟和归一化网络延迟;根据所述归一化磁盘带宽、所述归一化网络带宽、所述归一化本地延迟以及所述归一化网络延迟,对所述样本数据进行划分。
可选地,在接收到训练请求之前,所述划分模块602还用于,针对每个计算节点,定义该计算节点对应的数据加载接口;
所述读取模块606具体用于,通过所述数据加载接口,合并所述更新后样本数据和所述远端样本数据,得到目标样本数据,并向该计算节点返回所述目标样本数据。
可选地,所述读取模块606还用于,若所述训练请求所需的样本数据的索引小于存储在该计算节点的本地磁盘中的样本数据的数量,则不从所述存储节点中读取所述远端样本数据。
可选地,所述装置还包括:
缓存模块607,用于针对该计算节点对所述目标模型的每个训练周期,在该训练周期的训练开始后随机生成该训练周期所对应的数据访问序列;根据所述数据访问序列,确定所述存储节点中各远端样本数据对应的访问次序,并按照所述访问次序将该训练周期对应的各远端样本数据存储在所述存储节点的缓存中;在接收到下一批次的训练请求后,按照所述各远端样本数据对应的访问次序,对存储在所述缓存中的各远端样本数据进行替换。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种面向分布式集群的任务执行方法。
本说明书还提供了图7所示的一种对应于图1的电子设备的示意结构图。如图7所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的面向分布式集群的任务执行方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(ProgrammableLogic Device, PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(HardwareDescription Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(AdvancedBoolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(JavaHardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby HardwareDescription Language)等,目前最普遍使用的是VHDL(Very-High-Speed IntegratedCircuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (16)
1.一种面向分布式集群的任务执行方法,其特征在于,包括:
获取对目标模型进行训练的样本数据;
根据计算集群中计算节点的本地磁盘所对应的磁盘带宽和本地延迟,以及计算节点与存储集群中存储节点之间网络带宽和网络延迟,对所述样本数据的数量进行划分,得到第一样本数量以及第二样本数量;
将所述第一样本数量的样本数据存储在各计算节点的本地磁盘,将所述第二样本数量的样本数据存储在所述存储节点;
针对每个计算节点,在接收到当前训练周期的训练请求后,将该计算节点的本地磁盘中指定数量的样本数据,与其他计算节点的本地磁盘中所述指定数量的样本数据进行交换,得到该计算节点中的更新后样本数据;
访问所述存储节点,从所述存储节点中读取所述训练请求所需的样本数据,作为远端样本数据;
根据所述更新后样本数据和所述远端样本数据,在该计算节点上执行所述当前训练周期针对所述目标模型的训练任务。
2.如权利要求1所述的方法,其特征在于,根据计算集群中计算节点的本地磁盘所对应的磁盘带宽和本地延迟,以及计算节点与存储集群中存储节点之间网络带宽和网络延迟,对所述样本数据的数量进行划分,具体包括:
根据样本数据的总数量、预设的带宽权重、预设的延迟权重,所述磁盘带宽和所述本地延迟,确定所述第一样本数量,以及,根据所述样本数据的总数量、所述带宽权重、所述延迟权重,所述网络带宽和所述网络延迟,确定所述第二样本数量。
3.如权利要求2所述的方法,其特征在于,所述带宽权重大于所述延迟权重。
4.如权利要求1所述的方法,其特征在于,根据计算集群中计算节点的本地磁盘所对应的磁盘带宽和本地延迟,以及计算节点与存储集群中存储节点之间网络带宽和网络延迟,对所述样本数据的数量进行划分,具体包括:
根据所述磁盘带宽以及所述网络带宽,分别对所述磁盘带宽和所述网络带宽进行归一化处理,得到归一化磁盘带宽和归一化网络带宽,以及,根据所述本地延迟以及所述网络延迟,分别对所述本地延迟和所述网络延迟进行归一化处理,得到归一化本地延迟和归一化网络延迟;
根据所述归一化磁盘带宽、所述归一化网络带宽、所述归一化本地延迟以及所述归一化网络延迟,对所述样本数据进行划分。
5.如权利要求1所述的方法,其特征在于,在接收到训练请求之前,所述方法还包括:
针对每个计算节点,定义该计算节点对应的数据加载接口;
根据所述更新后样本数据和所述远端样本数据,在该计算节点上执行所述当前训练周期针对所述目标模型的训练任务,具体包括:
通过所述数据加载接口,合并所述更新后样本数据和所述远端样本数据,得到目标样本数据,并向该计算节点返回所述目标样本数据。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述训练请求所需的样本数据的索引小于存储在该计算节点的本地磁盘中的样本数据的数量,则不从所述存储节点中读取所述远端样本数据。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
针对该计算节点对所述目标模型的每个训练周期,随机生成该训练周期所对应的数据访问序列;
根据所述数据访问序列,确定所述存储节点中各远端样本数据对应的访问次序,并按照所述访问次序将该训练周期对应的各远端样本数据存储在所述存储节点的缓存中;
在接收到下一批次的训练请求后,按照所述各远端样本数据对应的访问次序,对存储在所述缓存中的各远端样本数据进行替换。
8.一种面向分布式集群的任务执行装置,其特征在于,包括:
获取模块,获取对目标模型进行训练的样本数据;
划分模块,根据计算集群中计算节点的本地磁盘所对应的磁盘带宽和本地延迟,以及计算节点与存储集群中存储节点之间网络带宽和网络延迟,对所述样本数据的数量进行划分,得到第一样本数量以及第二样本数量;
存储模块,将所述第一样本数量的样本数据存储在各计算节点的本地磁盘,将所述第二样本数量的样本数据存储在所述存储节点;
交换模块,针对每个计算节点,在接收到当前训练周期的训练请求后,将该计算节点的本地磁盘中指定数量的样本数据,与其他计算节点的本地磁盘中所述指定数量的样本数据进行交换,得到该计算节点中的更新后样本数据;
访问模块,访问所述存储节点,从所述存储节点中读取所述训练请求所需的样本数据,作为远端样本数据;
读取模块,根据所述更新后样本数据和所述远端样本数据,在该计算节点上执行所述当前训练周期针对所述目标模型的训练任务。
9.如权利要求8所述的装置,其特征在于,所述划分模块具体用于,根据样本数据的总数量、预设的带宽权重、预设的延迟权重,所述磁盘带宽和所述本地延迟,确定所述第一样本数量,以及,根据所述样本数据的总数量、所述带宽权重、所述延迟权重,所述网络带宽和所述网络延迟,确定所述第二样本数量。
10.如权利要求9所述的装置,其特征在于,所述带宽权重大于所述延迟权重。
11.如权利要求8所述的装置,其特征在于,所述划分模块具体用于,根据所述磁盘带宽以及所述网络带宽,分别对所述磁盘带宽和所述网络带宽进行归一化处理,得到归一化磁盘带宽和归一化网络带宽,以及,根据所述本地延迟以及所述网络延迟,分别对所述本地延迟和所述网络延迟进行归一化处理,得到归一化本地延迟和归一化网络延迟;根据所述归一化磁盘带宽、所述归一化网络带宽、所述归一化本地延迟以及所述归一化网络延迟,对所述样本数据进行划分。
12.如权利要求8所述的装置,其特征在于,在接收到训练请求之前,所述划分模块还用于,针对每个计算节点,定义该计算节点对应的数据加载接口;
所述读取模块具体用于,通过所述数据加载接口,合并所述更新后样本数据和所述远端样本数据,得到目标样本数据,并向该计算节点返回所述目标样本数据。
13.如权利要求8所述的装置,其特征在于,所述读取模块还用于,若所述训练请求所需的样本数据的索引小于存储在该计算节点的本地磁盘中的样本数据的数量,则不从所述存储节点中读取所述远端样本数据。
14.如权利要求8所述的装置,其特征在于,所述装置还包括:
缓存模块,用于针对该计算节点对所述目标模型的每个训练周期,在该训练周期的训练开始后随机生成该训练周期所对应的数据访问序列;根据所述数据访问序列,确定所述存储节点中各远端样本数据对应的访问次序,并按照所述访问次序将该训练周期对应的各远端样本数据存储在所述存储节点的缓存中;在接收到下一批次的训练请求后,按照所述各远端样本数据对应的访问次序,对存储在所述缓存中的各远端样本数据进行替换。
15.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~7任一项所述的方法。
16.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310669715.5A CN116382599B (zh) | 2023-06-07 | 2023-06-07 | 一种面向分布式集群的任务执行方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310669715.5A CN116382599B (zh) | 2023-06-07 | 2023-06-07 | 一种面向分布式集群的任务执行方法、装置、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116382599A true CN116382599A (zh) | 2023-07-04 |
CN116382599B CN116382599B (zh) | 2023-08-29 |
Family
ID=86966093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310669715.5A Active CN116382599B (zh) | 2023-06-07 | 2023-06-07 | 一种面向分布式集群的任务执行方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116382599B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116822657A (zh) * | 2023-08-25 | 2023-09-29 | 之江实验室 | 一种模型训练加速的方法、装置、存储介质及电子设备 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5909681A (en) * | 1996-03-25 | 1999-06-01 | Torrent Systems, Inc. | Computer system and computerized method for partitioning data for parallel processing |
US20140229806A1 (en) * | 2013-02-14 | 2014-08-14 | Lsi Corporation | Systems and Methods for Distributed Low Density Parity Check Decoding |
US20190138934A1 (en) * | 2018-09-07 | 2019-05-09 | Saurav Prakash | Technologies for distributing gradient descent computation in a heterogeneous multi-access edge computing (mec) networks |
KR20200013146A (ko) * | 2018-07-17 | 2020-02-06 | 한국전력공사 | 경험모델 기반 예측 알고리즘의 최적화 방법 |
CN111709533A (zh) * | 2020-08-19 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 机器学习模型的分布式训练方法、装置以及计算机设备 |
CN111831418A (zh) * | 2020-07-14 | 2020-10-27 | 华东师范大学 | 一种基于延迟调度技术的大数据分析作业性能优化方法 |
US20200356815A1 (en) * | 2019-05-07 | 2020-11-12 | International Business Machines Corporation | Parallel training of machine learning models |
CN112699906A (zh) * | 2019-10-22 | 2021-04-23 | 杭州海康威视数字技术股份有限公司 | 获取训练数据的方法、装置及存储介质 |
CN112732444A (zh) * | 2021-01-12 | 2021-04-30 | 北京工业大学 | 一种面向分布式机器学习的数据划分方法 |
CN114169427A (zh) * | 2021-12-06 | 2022-03-11 | 北京百度网讯科技有限公司 | 基于端到端自适应的分布式训练方法、装置、设备 |
WO2022134809A1 (zh) * | 2020-12-24 | 2022-06-30 | 深圳壹账通智能科技有限公司 | 模型训练处理方法、装置、计算机设备及介质 |
CN114862656A (zh) * | 2022-05-18 | 2022-08-05 | 北京百度网讯科技有限公司 | 基于多gpu的分布式深度学习模型训练代价的获取方法 |
CN115292044A (zh) * | 2022-08-09 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN115878989A (zh) * | 2021-09-26 | 2023-03-31 | 华为技术有限公司 | 模型训练方法、装置及存储介质 |
CN116167463A (zh) * | 2023-04-26 | 2023-05-26 | 之江实验室 | 一种模型训练的方法、装置、存储介质及电子设备 |
-
2023
- 2023-06-07 CN CN202310669715.5A patent/CN116382599B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5909681A (en) * | 1996-03-25 | 1999-06-01 | Torrent Systems, Inc. | Computer system and computerized method for partitioning data for parallel processing |
US20140229806A1 (en) * | 2013-02-14 | 2014-08-14 | Lsi Corporation | Systems and Methods for Distributed Low Density Parity Check Decoding |
KR20200013146A (ko) * | 2018-07-17 | 2020-02-06 | 한국전력공사 | 경험모델 기반 예측 알고리즘의 최적화 방법 |
US20190138934A1 (en) * | 2018-09-07 | 2019-05-09 | Saurav Prakash | Technologies for distributing gradient descent computation in a heterogeneous multi-access edge computing (mec) networks |
US20200356815A1 (en) * | 2019-05-07 | 2020-11-12 | International Business Machines Corporation | Parallel training of machine learning models |
CN112699906A (zh) * | 2019-10-22 | 2021-04-23 | 杭州海康威视数字技术股份有限公司 | 获取训练数据的方法、装置及存储介质 |
CN111831418A (zh) * | 2020-07-14 | 2020-10-27 | 华东师范大学 | 一种基于延迟调度技术的大数据分析作业性能优化方法 |
CN111709533A (zh) * | 2020-08-19 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 机器学习模型的分布式训练方法、装置以及计算机设备 |
WO2022134809A1 (zh) * | 2020-12-24 | 2022-06-30 | 深圳壹账通智能科技有限公司 | 模型训练处理方法、装置、计算机设备及介质 |
CN112732444A (zh) * | 2021-01-12 | 2021-04-30 | 北京工业大学 | 一种面向分布式机器学习的数据划分方法 |
CN115878989A (zh) * | 2021-09-26 | 2023-03-31 | 华为技术有限公司 | 模型训练方法、装置及存储介质 |
CN114169427A (zh) * | 2021-12-06 | 2022-03-11 | 北京百度网讯科技有限公司 | 基于端到端自适应的分布式训练方法、装置、设备 |
CN114862656A (zh) * | 2022-05-18 | 2022-08-05 | 北京百度网讯科技有限公司 | 基于多gpu的分布式深度学习模型训练代价的获取方法 |
CN115292044A (zh) * | 2022-08-09 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN116167463A (zh) * | 2023-04-26 | 2023-05-26 | 之江实验室 | 一种模型训练的方法、装置、存储介质及电子设备 |
Non-Patent Citations (4)
Title |
---|
JINPENG WANG 等: "Towards Cluster-wide Deduplication Based on Ceph", 《2019 IEEE INTERNATIONAL CONFERENCE ON NETWORKING, ARCHITECTURE AND STORAGE (NAS)》 * |
杨博;王亚东;苏小红;唐降龙;: "基于Agent和数据切片的分布式神经网络协同学习研究", 计算机研究与发展, no. 12 * |
杨志刚;吴俊敏;徐恒;尹燕;: "基于虚拟化的多GPU深度神经网络训练框架", 计算机工程, no. 02 * |
程稳 等: "面向Lustre集群存储的错误日志分析及系统优化", 《计算机科学》, vol. 49, no. 10 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116822657A (zh) * | 2023-08-25 | 2023-09-29 | 之江实验室 | 一种模型训练加速的方法、装置、存储介质及电子设备 |
CN116822657B (zh) * | 2023-08-25 | 2024-01-09 | 之江实验室 | 一种模型训练加速的方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116382599B (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lin et al. | Pagraph: Scaling gnn training on large graphs via computation-aware caching | |
CN106990915B (zh) | 一种基于存储介质类型和加权配额的存储资源管理方法 | |
US9405711B2 (en) | On-chip traffic prioritization in memory | |
US11263529B2 (en) | Modifying machine learning models to improve locality | |
US10152434B2 (en) | Efficient arbitration for memory accesses | |
CN116382599B (zh) | 一种面向分布式集群的任务执行方法、装置、介质及设备 | |
Biookaghazadeh et al. | Toward multi-fpga acceleration of the neural networks | |
KR20110028211A (ko) | 자율 메모리 아키텍처 | |
CN113590508B (zh) | 动态可重构的内存地址映射方法及装置 | |
US11809953B1 (en) | Dynamic code loading for multiple executions on a sequential processor | |
US11176449B1 (en) | Neural network accelerator hardware-specific division of inference into groups of layers | |
US20110320722A1 (en) | Management of multipurpose command queues in a multilevel cache hierarchy | |
US20200409846A1 (en) | Dual controller cache optimization in a deterministic data storage system | |
CN113311994A (zh) | 一种基于高并发的数据缓存方法 | |
Chen et al. | Data prefetching and eviction mechanisms of in-memory storage systems based on scheduling for big data processing | |
Cui et al. | Scalable deep learning on distributed GPUs with a GPU-specialized parameter server | |
HeydariGorji et al. | In-storage processing of I/O intensive applications on computational storage drives | |
CN117015767A (zh) | 存储器信道控制器的芯片上互连 | |
CN111666253B (zh) | 向具有共享存储器的共享处理元件的系统传递可编程数据 | |
Subedi et al. | Rise: Reducing i/o contention in staging-based extreme-scale in-situ workflows | |
HeydariGorji et al. | Leveraging Computational Storage for Power-Efficient Distributed Data Analytics | |
CN116126546B (zh) | 一种性能调优的方法、装置、电子设备及介质 | |
CN117035123B (zh) | 一种并行训练中的节点通信方法、存储介质、设备 | |
US11797280B1 (en) | Balanced partitioning of neural network based on execution latencies | |
US11079951B2 (en) | Multi-tier storage and mirrored volumes |
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 |