多处理器系统的三角线性方程组求解的方法和装置制造方法及图纸

技术编号:4317531 阅读:291 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种多处理器系统的三角线性方程组求解的方法和装置。其中该多处理器系统包括至少一个核心处理器以及多个加速器。该方法包括:按照预定的子矩阵大小,将要进行三角线性方程组求解的矩阵划分为多个子矩阵;迭代地对该多个子矩阵进行计算更新;其中,在每一次迭代中包括:从该多个子矩阵中还未进行计算更新的子矩阵开始,按照行方向并且按照为上述多个加速器预先确定的先后顺序,向该多个加速器各分配一个子矩阵;使该多个加速器并行地对各自的子矩阵进行计算更新。本发明专利技术通过逐个子矩阵地分配要进行求解的矩阵,能够使多个加速器的负载达到平衡,从而充分利用这多个加速器的计算能力来达到计算更新的峰值性能。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,具体地,涉及多处理器系统的三角线性方 程组求解的方法和装置。LAPACK (Linear Algebra PACKage,线性代数包)是Oak Ridge国 家实验室、加州大学Davis分校和Illinois大学等联合开发的非常有效、强 大且广泛使用的线性代数函数库,用于在不同高性能计算环境上高效求解 数值线性代数问题,其已经有效地为HPC( High Performance Computing, 高性能计算)和计算科学组织工作了 20多年的时间。关于LAPACK的详 细内容,可参见http:〃netlib.amss.ac.cn/lapack/index.html0作为专业的线性代数库,LAPACK提供了各种线性代数的子程序,其 中包括按照下述矩阵方程(l)、 (2)、 (3)或(4)进行三角线性方程组求解的例 程(LAPACK代数库中,该三角线性方程组求解的函数名为TRSM):其中,alpha是标量;X和B是mXn矩阵;A是单位或非单位的上三角 或下三角矩阵。图l是以A是下三角矩阵、alpha=l,即上述矩阵方程(l)成为A*X=B 的情况为例对TRSM函数的三角线性方程组求解的含义的图示说明。从图1可以看出,按照上述矩阵方程(1)或(2)使用TRSM函数进行三皆景技术A*X=alpha*B X* A=alpha*B AT*X=alpha*B X* AT=alpha*B(1)(2)(3)(4)角线性方程组求解的例程,对于给定的m x n矩阵B,在给定的标量alpha 以及单位或非单位的上三角或下三角矩阵A下,求解出mxn矩阵x,并 且,所求解出的矩阵X被复写在矩阵B上。Cell宽频引擎(Cell Broadband Engine, CBE)是一种单芯片多处理 器系统。如图2所示,CBE系统具有在一个共享的、相干的存储器上进行 操作的9个处理器,其中包括一个主处理器(Power Processing Unit, PPU) 和8个协处理器(Synergistic Processing unit, SPU)。在这样的系统结构 下,CBE能够提供杰出的计算能力。具体来说,Cell处理器在时钟频率 3.2GHz的情况下能够达到204G浮点运算数/秒。在这样高的计算能力的支 持下,对于具有高计算任务量的LAPACK中的例程来说,CBE是一个理 想的执行平台。但是,如果要在CBE这样的多处理器系统上执行LAPACK中的例程, 则由于多个处理器的存在,需要进行例程的并行性设计。上述用于使用TRSM函数实现三角线性方程组求解的例程针对CBE 这样的多处理器系统的一种现有的并行性实现方案是,首先将给定矩阵B 划分为多个64 x 64大小的子矩阵;然后按列将子矩阵分配给多个处理器, 使多个处理器并行地对其各自分配到的列的子矩阵进行计算更新。也就是i兌,由于对于一个子矩阵的计算更新仅依赖于该子矩阵上方的 子矩阵更新后的数据,处于一列上的子矩阵需要按照顺序进行处理,而在 各列之间是可以并行地进行计算更新的,所以上述并行性实现方案通过按 列分配子矩阵,使每一个处理器负责对分配给它的那一列的子矩阵依次进 行计算更新,来实现多个处理器的并行性。图3是上述现有的并行性实现方案的示例性图示说明,其示出的是多 处理器系统使用5个SPU对被划分为8行x6列个子矩阵的矩阵B使用 TRSM函数进行三角线性方程组求解的情况。从图3可以看出,在该示例性情况下,在才艮据上述并行性实现方案的 求解过程中,首先对5个SPU、即SPU0-SPU4按顺序各分配一列的子矩 阵,使SPU0-SPU4并行地对各自的列的子矩阵依次进行计算更新;然后,8在SPU0-SPU4完成其各自的第一列的子矩阵的计算更新之后,由于矩阵B 中还有最后一列子矩阵未处理,所以仅继续采用SPUO来完成该最后一列 子矩阵的计算更新,而其余的SPU1-SPU4则成为空闲状态。这样,在所 有6列的子矩阵的计算更新均完成时,SPUO共处理了两列、16个子矩阵, 而SPU1-SPU4则X3l处理了一列、8个子矩阵。这样,在整个求解过程中, SPU0-SPU4的负载是不平衡的。可以想象,如果矩阵B的行数远远大于列 数,则负载不平衡的状况将加剧。这样,在上述并行性实现方案中,由于按列分配给定矩阵中的子矩阵, 而存在着因列的数量与处理器的数量不匹配而导致多个处理器所分配到的 负载不平衡的可能性。从而,由于多个处理器的负载不平衡,所以在负载 高的处理器进行工作时,负载低的处理器必然在一段时间内是空闲的,这 样,这多个处理器的计算能力就不能得到同时充分地利用来达到峰值性能。
技术实现思路
鉴于上述问题,本专利技术提供了一种在多处理器系统上进行三角线性方 程组求解的方法和装置,以确保在求解过程中向多个处理器分配的负载达 到平衡,从而充分利用这多个处理器的计算能力来达到峰值性能。根据本专利技术的一个方面,提供了一种在多处理器系统上进行三角线性 方程组求解的方法,其中该多处理器系统包括至少一个核心处理器以及多 个加速器(accelerator),该方法包括按照预定的子矩阵大小,将要进 行三角线性方程组求解的矩阵划分为多个子矩阵;以及迭代地对上述多个 子矩阵进行计算更新;其中,在每一次迭代中包括从上述多个子矩阵中 还未进行计算更新的子矩阵开始,按照行方向并且按照为上述多个加速器预先确定的先后顺序,向该多个加速器各分配一个子矩阵;以及使上述多个加速器并行地对各自的子矩阵进行计算更新。根据本专利技术的另 一个方面,提供了 一种在多处理器系统中进行三角线 性方程组求解的装置,其中该多处理器系统包括至少 一个核心处理器以及 多个加速器,该装置使上述多个加速器迭代地对要进行三角线性方程组求解的矩阵进行计算更新,其包括矩阵划分单元,用于按照预定的子矩阵 大小,将要进行三角线性方程组求解的矩阵划分为多个子矩阵;以及子矩 阵分配单元,用于在每一次迭代中,从上述多个子矩阵中还未进行计算更新的子矩阵开始,按照行方向并且按照为上述多个加速器预先确定的先后 顺序,向该多个加速器各分配一个子矩阵;以及计算更新^f莫块,用于在每 一次迭代中,使上述多个加速器并行地对各自的子矩阵进行计算更新。附图说明相信通过以下结合附图对本专利技术具体实施方式的说明,能够使人们更 好地了解本专利技术上述的特点、优点和目的。图1是以A是下三角矩阵、alpha=l的情况为例使用TRSM函数的三 角线性方程组求解的图示说明;图2是CBE的系统框图3是现有的使用TRSM函数的三角线性方程组求解的并行性实现方 案的示例性图示i兌明;图4是才艮据本专利技术实施例的在多处理器系统上进行三角线性方程组求 解的方法的流程图5是图4的方法的示例性图示说明;图6是以一个加速器为例、图4的方法中多个加速器并行地对各自分 配到的子矩阵进行计算更新的步骤的详细流程图; 图7是图6的过程的示例性图示i兌明;图8是根据本专利技术实施例的在多处理器系统中进行三角线性方程组求 解的装置的方框图;以及图9是图8的装置中计算更新模块的详细方框图。具体实施例方式下面就结合附图对本专利技术的各个优选实施例进行详细说明。图4是4艮据本专利技术实施例的在多处理器系统上进行三角线性方程组求解的方法的流程本文档来自技高网
...

【技术保护点】
一种多处理器系统的三角线性方程组求解的方法,其中该多处理器系统包括至少一个核心处理器以及多个加速器(accelerator),该方法包括:    按照预定的子矩阵大小,将要进行三角线性方程组求解的矩阵划分为多个子矩阵;以及    迭代地对上述多个子矩阵进行计算更新;    其中,在每一次迭代中包括:    从上述多个子矩阵中还未进行计算更新的子矩阵开始,按照行方向并且按照为上述多个加速器预先确定的先后顺序,向该多个加速器各分配一个子矩阵;以及    使上述多个加速器并行地对各自的子矩阵进行计算更新。

【技术特征摘要】

【专利技术属性】
技术研发人员:魏琼彭红波刘航王佰玲
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1