本发明涉及数据处理,特别涉及一种基于宽度优先搜索的任务执行方法、装置、设备及介质。
背景技术:
1、矩阵乘法操作是科学计算中的一个基本操作,在过程控制、图像处理、数字信号处理等领域广泛存在,并且通常为计算过程中最为耗时的关键操作。当前,对于三角矩阵的并行计算通常基于intel mkl(intel math kernel library,英特尔数学核心函数库)来实现trmm(triangular matrix-matrix multiplication,三角矩阵-矩阵乘法)以及trsm(triangular matrix-solution matrix,求解三角矩阵方程),存在并行性不足的问题。
2、针对该问题,ali charara等人在文献:charara a, keyes d, ltaief h. aframework for dense triangular matrix kernels on various manycorearchitectures[j].concurrency and computation: practice and experience, 2017,29(15):e4187中实现了一个高性能的多核架构上稠密三角矩阵计算的框架kblas。采用二分递归的方法实现了缓存无关,即不指定缓存架构上的任何参数,例如缓存级别的数量、每个级别的缓存大小或每对连续级别之间的块传输大小。然而其算法为深度优先搜索实现,由于有限的并行导致硬件占用较低。因此,在实际应用中,对于三角矩阵的并行计算提高其并行性的实现方式效果并不理想。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种基于宽度优先搜索的任务执行方法、装置、设备及介质,能够实现三角矩阵并行计算的递归求解,提升并行性。其具体方案如下:
2、第一方面,本技术公开了一种多核架构中基于宽度优先搜索的任务执行方法,包括:
3、获取多核架构中的与目标三角矩阵对应的目标计算任务;
4、基于预设划分规则对所述目标三角矩阵进行递归划分,以得到每次划分后的两个三角矩阵和一个方形矩阵;
5、根据所述目标计算任务,确定与所述三角矩阵和所述方形矩阵对应的各个子计算任务;
6、将所述目标计算任务作为根节点、所述子计算任务作为叶节点,以分治的方式构建二叉分治树,然后利用所述多核架构中的各处理器并基于宽度优先搜索遍历执行所述二叉分治树以得到所述目标计算任务的处理结果。
7、可选的,所述获取多核架构中的与目标三角矩阵对应的目标计算任务,包括:
8、获取多核架构中的与目标三角矩阵对应的第一计算任务;所述第一计算任务为执行所述目标三角矩阵与其他的矩阵的乘法操作的任务;如果是左乘,则b=a*op(a)*b;如果是右乘,则b=a*b*op(a);
9、和/或,获取多核架构中的与目标三角矩阵对应的第二计算任务;所述第二计算任务为求解所述目标三角矩阵的方程的任务;如果是左乘,则op(a)*x=a*b;如果是右乘,则x*op(a)=a*b;
10、其中,a是一个标量,x和b是一个大小为
