一种基于龙芯3A的线性方程求解函数的并行化处理方法技术

技术编号:9829063 阅读:244 留言:0更新日期:2014-04-01 18:09
本发明专利技术公开了一种基于龙芯3A的线性方程求解函数的并行化处理方法,其特征在于:所述并行化方法是指利用变量代换方法或流水更新与数据划分方法分别对于线性方程求解函数进行并行化处理。本发明专利技术能直接编译出LAPACK的多核库,统一了函数库的结构和接口,从而达到在龙芯3A平台上线性方程求解函数并行化的高效实现。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种基于龙芯3A的线性方程求解函数的并行化处理方法,其特征在于:所述并行化方法是指利用变量代换方法或流水更新与数据划分方法分别对于线性方程求解函数进行并行化处理。本专利技术能直接编译出LAPACK的多核库,统一了函数库的结构和接口,从而达到在龙芯3A平台上线性方程求解函数并行化的高效实现。【专利说明】—种基于龙芯3A的线性方程求解函数的并行化处理方法
本专利技术属于数值计算和工程科学
,具体地说是一种基于龙芯3A的线性方程求解函数的并行化处理方法。
技术介绍
龙芯3A是中国第一个具有完全自主知识产权的四核中央处理器(CPU)。在高性能计算领域,龙芯3A需要线性代数函数库的支持。龙芯3A上能够使用的较优的基础线性代数函数库是以BLAS库为基础,用Fortran语言编写而成的LAPACK。LAPACK的设计目标主要是为了适应高性能向量机,高性能超标量工作站和共享存储的多处理器上的高性能计算。LAPACK提供了功能丰富的一系列矩阵操作的函数,同时具有高效性和良好的可移植性,已被移植到多种平台上。龙芯3A高性能处理器集成了四个64位超标量处理器核、4MB的二级Cache、两个DDR2/3内存控制器、两个高性能HyperTransport控制器、一个PCI/PCIX控制器以及LPC、SP1、UART, GPIO等低速I/O控制器。多核/众核处理器是计算机发展的主流,也是必然趋势,因而LAPACK库提供对于多核平台的支持也是大势所趋。目前,基于LAPACK实现的多核数值计算库包括ScalLAPACK、PLASMA等。然而,ScaLAPACK相对于LAPACK来说,虽然层次结构上的巨大差异,但都实现了相同的功能,然而函数名和接口却都大相径庭。PLASMA相对于LAPACK来说,层次结构不同,函数库的结构、接口不同;另外它的实现并不与初衷吻合,它不支持带状矩阵、没有解决特征值/奇异值问题。对于已经熟练使用LAPACK库的用户,为了使用多核调用LAPACK函数进行数值计算,需要去学习和理解与LAPACK结构相差很大的ScaLAPACK和PLASMA,从而为用户使用函数库带来了不便。用户更倾向于使用直接基于LAPACK本身层次结构的多核编译版本,因为他们不需要去进行任何额外的学习,只需设定核数重新编译出LAPACK的多核库。所以这种直接基于LAPACK本身层次结构的多核编译版本的实现,有着很重要的理论意义和现实意义。
技术实现思路
本专利技术是为避免上述现有技术所存在的不足之处,提供一种基于龙芯3A的线性方程求解函数的并行化方法,能直接编译出LAPACK的多核库,统一了函数库的结构和接口,从而达到在龙芯3A平台上线性方程求解函数并行化的高效实现。本专利技术为解决以上技术问题采用如下方案:本专利技术一种基于龙芯3A的线性方程求解函数的并行化处理方法的特点是:利用变量代换方法或流水更新与数据划分方法对于线性方程求解函数进行并行化处理;所述变量代换方法为:对于线性方程函数中的双层循环函数,定义双层循环的外部变量为kk,外层循环控制变量为j,内层循环控制变量为i,内层循环中的局部变量为k ;并有:所述内层循环控制变量i与所述外层循环控制变量j满足函数关系i = f\(j);所述外部变量kk与所述外层循环控制变量j满足函数关系kk = f2 (j);所述局部变量k与所述内层循环控制变量i和所述外部变量kk满足函数关系k=f3(i, kk);贝U,利用所述函数关系i= fi(j)、kk = f2(j)和k = f3(i, kk)得出局部变量k满足函数关系:k = f4(j);在函数关系k = f4(j)和kk = f2(j)中,将所述局部变量k与外部变量kk使用外层循环控制变量j进行代换,消除所述局部变量k与外部变量kk,实现外层循环并行化,即完成双层循环函数的并行化处理;所述流水更新与数据划分方法为:对于线性方程函数中的多层循环函数,定义多层循环的外层循环控制变量为I,内层循环控制变量为J ;定义多层循环函数输入参数为矩阵A ,所述矩阵A为上三角矩阵;M为矩阵A的行数、N为矩阵A的列数,M、N为自然数;对矩阵A中第I列的元素值a 以所述内层循环控制变量J由I到M依次更新每一行的值;对矩阵A中第J行的元素值a 以所述外层循环控制变量I由I到N依次更新每一列的值;根据四核划分策略获取所述矩阵A中四个行区间,各个行区间分别为:【权利要求】1.一种基于龙芯3A的线性方程求解函数的并行化处理方法,其特征在于:是利用变量代换方法或流水更新与数据划分方法对于线性方程求解函数进行并行化处理; 所述变量代换方法为: 对于线性方程函数中的双层循环函数,定义双层循环的外部变量为kk,外层循环控制变量为j,内层循环控制变量为i,内层循环中的局部变量为k ;并有: 所述内层循环控制变量i与所述外层循环控制变量j满足函数关系i = f\(j); 所述外部变量kk与所述外层循环控制变量j满足函数关系kk = f2 (j); 所述局部变量k与所述内层循环控制变量i和所述外部变量kk满足函数关系k =f3(i, kk); 贝1J,利用所述函数关系i = fi (j)、kk = f2(j)和k = f3(i, kk)得出局部变量k满足函数关系:k = f4(j); 在函数关系k = f4(j)和kk = f2(j)中,将所述局部变量k与外部变量kk使用外层循环控制变量j进行代换,消除所述局部变量k与外部变量kk,实现外层循环并行化,即完成双层循环函数的并行化处理; 所述流水更新与数据划分方法为: 对于线性方程函数中的多层循环函数,定义多层循环的外层循环控制变量为I,内层循环控制变量为J ; 定义多层循环函数输入参数为矩阵A ,所述矩阵A为上三角矩阵;M为矩阵A的行数、N为矩阵A的列数,M、N为自然数; 对矩阵A中第I列的元素值a 以所述内层循环控制变量J由I到M依次更新每一行的值; 对矩阵A中第J行的元素值a 以所述外层循环控制变量I由I到N依次更新每一列的值; 根据四核划分策略获取所述矩阵A中四个行区间,各个行区间分别为:\\,Ν-Sn I?),[N-彻 I Ι,Ν-Sn 11), [Ν-4ιΝΙ2,ΝΙ2), [N η,Ν\' 由龙芯 3Α 中四个处理器分别对各个行区 间实现并行化处理,完成多层循环函数的并行化处理。【文档编号】G06F9/38GK103678252SQ201310689830【公开日】2014年3月26日 申请日期:2013年12月16日 优先权日:2013年12月16日 【专利技术者】顾乃杰, 江国荐, 任开新 申请人:合肥优软信息技术有限公司本文档来自技高网
...

【技术保护点】
一种基于龙芯3A的线性方程求解函数的并行化处理方法,其特征在于:是利用变量代换方法或流水更新与数据划分方法对于线性方程求解函数进行并行化处理;所述变量代换方法为:对于线性方程函数中的双层循环函数,定义双层循环的外部变量为kk,外层循环控制变量为j,内层循环控制变量为i,内层循环中的局部变量为k;并有:所述内层循环控制变量i与所述外层循环控制变量j满足函数关系i=f1(j);所述外部变量kk与所述外层循环控制变量j满足函数关系kk=f2(j);所述局部变量k与所述内层循环控制变量i和所述外部变量kk满足函数关系k=f3(i,kk);则,利用所述函数关系i=f1(j)、kk=f2(j)和k=f3(i,kk)得出局部变量k满足函数关系:k=f4(j);在函数关系k=f4(j)和kk=f2(j)中,将所述局部变量k与外部变量kk使用外层循环控制变量j进行代换,消除所述局部变量k与外部变量kk,实现外层循环并行化,即完成双层循环函数的并行化处理;所述流水更新与数据划分方法为:对于线性方程函数中的多层循环函数,定义多层循环的外层循环控制变量为I,内层循环控制变量为J;定义多层循环函数输入参数为矩阵A[1...M][1...N],所述矩阵A为上三角矩阵;M为矩阵A的行数、N为矩阵A的列数,M、N为自然数;对矩阵A中第I列的元素值a[J][I]以所述内层循环控制变量J由1到M依次更新每一行的值;对矩阵A中第J行的元素值a[J][I]以所述外层循环控制变量I由1到N依次更新每一列的值;根据四核划分策略获取所述矩阵A中四个行区间,各个行区间分别为:由龙芯3A中四个处理器分别对各个行区间实现并行化处理,完成多层循环函数的并行化处理。FDA0000438820790000011.jpg,FDA0000438820790000012.jpg...

【技术特征摘要】

【专利技术属性】
技术研发人员:顾乃杰江国荐任开新
申请(专利权)人:合肥优软信息技术有限公司
类型:发明
国别省市:安徽;34

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

1