一种分布式计算方法、系统、存储介质和电子设备技术方案

技术编号:36514998 阅读:29 留言:0更新日期:2023-02-01 15:45
本申请提供一种分布式计算方法、系统、存储介质和电子设备,涉及分布式计算领域,包括:获取分布式计算任务;将分布式计算任务进行任务分解,得到子任务,并分配至各个计算节点;在每个计算节点中,利用训练线程训练子任务得到训练结果并存至第一缓存,利用通信线程获取当前全局数据存储至第二缓存;完成一次迭代后,交换第一缓存和第二缓存中的数据;在下一次迭代时,将当前全局数据作为下一次训练的初始值;迭代预设次数后得到计算节点对应的局部解;聚合各局部解,得到分布式计算任务的训练结果。本申请可以使得各计算节点训练得到的局部解更精确,还可以减少计算节点处理子任务的时间开销,提高分布式计算效率。提高分布式计算效率。提高分布式计算效率。

【技术实现步骤摘要】
一种分布式计算方法、系统、存储介质和电子设备


[0001]本申请涉及分布式计算领域,特别涉及一种分布式计算方法、系统、存储介质和电子设备。

技术介绍

[0002]目前,现有基于分布式深度学习模型训练节点间通信方法大致可以分为基于多线程方法、基于线程池方法、事件驱动技术、以及远程过程调用方法。
[0003]但上述方法均存在算法逻辑复杂且计算量大使得算法性能受限的问题。深度学习问题的有效解决方案通常依赖于大数据集和大模型的支撑。然而,已有研究已经证明低效的通信方式训练神经网络模型至少花费数周的时间,因而对于时间敏感型任务场景难以适用。
[0004]因此,如何提高分布式计算效率是本领域技术人员亟需解决的技术问题。

技术实现思路

[0005]本申请的目的是提供一种分布式计算方法、系统、存储介质和电子设备,能够有效降低计算节点之间的通信开销,提高计算节点间的通信效率,从而提高分布式计算的整体效率。
[0006]为解决上述技术问题,本申请提供一种分布式计算方法,具体技术方案包括:获取分布式计算任务;将所述分布式计算任务进行任务分解,得到子任务,并将所述子任务分配至各个计算节点;在每个计算节点中,利用训练线程训练所述子任务得到训练结果并存至第一缓存,利用通信线程获取当前全局数据存储至第二缓存;所述训练线程和所述通信线程均完成一次迭代后,交换所述第一缓存和所述第二缓存中的数据;在下一次迭代时,将所述当前全局数据作为所述训练线程下一次训练的初始值;所述训练结果用于作为所述计算节点本次迭代的中间数据;直至迭代预设次数后得到计算节点对应的局部解;聚合各所述局部解,得到所述分布式计算任务的训练结果。
[0007]可选的,将所述分布式计算任务进行任务分解,得到子任务包括:将所述分布式计算任务进行数据分解,得到子数据任务。
[0008]可选的,将所述分布式计算任务进行任务分解,得到子任务包括:将所述分布式计算任务进行模型分解,得到子模型任务。
[0009]可选的,将所述分布式计算任务进行数据分解,得到子数据任务包括:将所述分布式计算任务进行数据与模型的并行分解,得到子计算任务。
[0010]可选的,利用训练线程训练所述子任务得到训练结果并存至第一缓存包括:利用包含优化算法的训练线程训练所述子任务得到训练结果并存至第一缓存。
[0011]可选的,若所述优化算法为梯度优化算法,则所述利用包含优化算法的训练线程
训练所述子任务得到训练结果并存至第一缓存包括:在所述训练线程中利用一阶优化算法或高阶优化算法训练所述子任务得到训练结果并存至第一缓存。
[0012]可选的,若所述子任务包含不可求导函数或偏导数,所述利用包含优化算法的训练线程训练所述子任务得到训练结果并存至第一缓存包括:在所述训练线程中利用非梯度类优化算法训练所述子任务得到训练结果并存至第一缓存。
[0013]可选的,利用训练线程训练所述子任务得到训练结果并存至第一缓存时,还包括:确定各所述计算节点的执行前向传播计算和反向传播计算的并行流水线;按照所述并行流水线执行各所述计算节点的迭代计算;其中,所述并行流水线中各所述计算节点在同一时刻执行不同迭代计算过程。
[0014]可选的,所述确定各所述计算节点的执行前向传播计算和反向传播计算的并行流水线包括:确定第一次迭代计算过程中的前向传播计算过程和反向传播计算过程;在每个计算节点完成所述第一次迭代计算过程中的前向传播计算过程后,依次启动第二次迭代计算过程、第三次迭代计算过程和第四次迭代计算过程;其中,第一次迭代计算过程、第二次迭代计算过程、第三次迭代计算过程和第四次迭代计算过程之间计算执行优先级递减;所述计算节点执行计算时,按照所述计算执行优先级判断自身是否存在迭代计算过程中的计算任务;若是,执行所述计算任务;若否,令所述计算节点闲置。
[0015]可选的,聚合各所述局部解,得到所述分布式计算任务的训练结果包括:为各所述计算节点赋权,并根据所有各所述计算节点的权重值和对应的局部解求加权和,将所述加权和作为所述分布式计算任务的训练结果。
[0016]可选的,聚合各所述局部解,得到所述分布式计算任务的训练结果包括:确定计算效率满足数量阈值的目标计算节点;聚合所述目标计算节点的局部解得到所述分布式计算任务的训练结果。
[0017]可选的,聚合各所述局部解,得到所述分布式计算任务的训练结果包括:利用深度神经网络模型聚合各所述局部解,得到所述分布式计算任务的训练结果。
[0018]本申请还提供一种分布式计算系统,包括:获取模块,用于获取分布式计算任务;分解模块,用于将所述分布式计算任务进行任务分解,得到子任务,并将所述子任务分配至各个计算节点;训练模块,用于在每个计算节点中,利用训练线程训练所述子任务得到训练结果并存至第一缓存,利用通信线程获取当前全局数据存储至第二缓存;所述训练线程和所述通信线程均完成一次迭代后,交换所述第一缓存和所述第二缓存中的数据;并下一次迭代时,将所述当前全局数据作为所述训练线程下一次训练的初始值;所述训练结果用于作为
所述计算节点本次迭代的中间数据;直至迭代预设次数后得到计算节点对应的局部解数据聚合模块,用于聚合各所述局部解,得到所述分布式计算任务的训练结果。
[0019]本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
[0020]本申请还提供一种电子设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
[0021]本申请提供一种分布式计算方法,包括:获取分布式计算任务;将所述分布式计算任务进行任务分解,得到子任务,并将所述子任务分配至各个计算节点;在每个计算节点中,利用训练线程训练所述子任务得到训练结果并存至第一缓存,利用通信线程获取当前全局数据存储至第二缓存;所述训练线程和所述通信线程均完成一次迭代后,交换所述第一缓存和所述第二缓存中的数据;在下一次迭代时,将所述当前全局数据作为所述训练线程下一次训练的初始值;所述训练结果用于作为所述计算节点本次迭代的中间数据;直至迭代预设次数后得到计算节点对应的局部解;聚合各所述局部解,得到所述分布式计算任务的训练结果。
[0022]本申请获取到分布式计算任务后,先对分布式计算任务进行任务分解得到若干子任务,从而利用若干计算节点分配处理子任务。在计算节点处理子任务时,配置训练线程和通信线程,训练线程和通信线程可以并行执行各自的任务,以确保每次计算节点在即将执行下一迭代时,均可以采用当前全局数据,一方面可以使得各计算节点训练得到的局部解更精确,另一方面可以减少计算节点处理子任务的时间开销,从而提高分布式计算效率。
[0023]本申请还提供一种分布式计算系统、存储介质和电子设备,具有上述有益效果,此处不再赘述。
附图说明
[0024]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式计算方法,其特征在于,包括:获取分布式计算任务;将所述分布式计算任务进行任务分解,得到子任务,并将所述子任务分配至各个计算节点;在每个计算节点中,利用训练线程训练所述子任务得到训练结果并存至第一缓存,利用通信线程获取当前全局数据存储至第二缓存;所述训练线程和所述通信线程均完成一次迭代后,交换所述第一缓存和所述第二缓存中的数据;在下一次迭代时,将所述当前全局数据作为所述训练线程下一次训练的初始值;所述训练结果用于作为所述计算节点本次迭代的中间数据;直至迭代预设次数后得到计算节点对应的局部解;聚合各所述局部解,得到所述分布式计算任务的训练结果。2.根据权利要求1所述的分布式计算方法,其特征在于,将所述分布式计算任务进行任务分解,得到子任务包括:将所述分布式计算任务进行数据分解,得到子数据任务。3.根据权利要求1所述的分布式计算方法,其特征在于,将所述分布式计算任务进行任务分解,得到子任务包括:将所述分布式计算任务进行模型分解,得到子模型任务。4.根据权利要求1所述的分布式计算方法,其特征在于,将所述分布式计算任务进行数据分解,得到子数据任务包括:将所述分布式计算任务进行数据与模型的并行分解,得到子计算任务。5.根据权利要求1

4任一项所述的分布式计算方法,其特征在于,利用训练线程训练所述子任务得到训练结果并存至第一缓存包括:利用包含优化算法的训练线程训练所述子任务得到训练结果并存至第一缓存。6.根据权利要求5所述的分布式计算方法,其特征在于,若所述优化算法为梯度优化算法,则所述利用包含优化算法的训练线程训练所述子任务得到训练结果并存至第一缓存包括:在所述训练线程中利用一阶优化算法或高阶优化算法训练所述子任务得到训练结果并存至第一缓存。7.根据权利要求5所述的分布式计算方法,其特征在于,若所述子任务包含不可求导函数或偏导数,所述利用包含优化算法的训练线程训练所述子任务得到训练结果并存至第一缓存包括:在所述训练线程中利用非梯度类优化算法训练所述子任务得到训练结果并存至第一缓存。8.根据权利要求1所述的分布式计算方法,其特征在于,利用训练线程训练所述子任务得到训练结果并存至第一缓存时,还包括:确定各所述计算节点的执行前向传播计算和反向传播计算的并行流水线;按照所述并行流水线执行各所述计算节点的迭代计算;其中,所述并行流水线中各所述计算节点在同一时刻执行不同迭代计算过程。9.根据权利要求8所述的分布式计算方法,其特征在于,所述确定各所述计算节点的执行前...

【专利技术属性】
技术研发人员:闫瑞栋郭振华赵雅倩刘璐金良徐聪
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1