一种基于OpenMP对天文学软件Gridding的优化方法技术

技术编号:11074276 阅读:158 留言:0更新日期:2015-02-25 13:08
本发明专利技术公开了一种基于OpenMP对天文学软件Gridding的优化方法,其具体实现过程为:通过将计算数据预先排序,随后将排序后的数据依次分配给不同的线程,保证不同线程间具有相同元素的数据的计算序列不同,最后对核心计算部分进行向量化。该一种基于OpenMP对天文学软件Gridding的优化方法与现有技术相比,避免了原Gridding软件中的数据依赖性问题,及由此导致的访存冲突,及难以向量化的问题;采用本发明专利技术的方法,Gridding的性能提升为原软件的5.5倍。

【技术实现步骤摘要】
一种基于OpenMP对天文学软件Gridding的优化方法
本专利技术涉及计算机信息
,具体地说是一种实用性强、基于OpenMP对天文学软件Gridding的优化方法。
技术介绍
Gridding软件是天文学中非常重要的一个软件。以即将建成的世界上最大的天文射电望远镜-平方公里阵列(SKA)项目为例,Gridding的计算量占总计算量的25%左右。SKA产生的数据量非常庞大,完全处理这些数据需要百亿亿次级(Exa-scale)的超级计算机,计算量是目前世界上最快的超级计算机天河2号(广州,中国)的20倍。可以看到,如果在优化后Gridding软件的计算性能能成倍的增长,则可节省庞大的计算量,这对SKA项目,及世界天文学界是非常有意义的。本专利技术提供一种基于OpenMP实现的针对天文学软件Gridding的高性能优化方法,该方法通过排序有效的改进了访存命中率,同时通过数据在OpenMP线程间的分块,有效的避免了线程间的数据依赖性,并通过向量化指令,使得核心计算部分完全向量化,这些手段极大的提升了Gridding程序的性能。
技术实现思路
本专利技术的技术任务是针对以上不足之处,提供一种实用性强、基于OpenMP对天文学软件Gridding的优化方法。一种基于OpenMP对天文学软件Gridding的优化方法,其具体实现过程为:一、首先将计算数据预先排序,这里的计算数据是Gridding软件中随机生成的,排序即为将具有相同值的数据元素聚集在一起,使无序的数据序列变为有序;二、将排序后的数据分配给不同的线程,保证不同线程间具有相同元素的数据的计算序列不同:将数据分割为若干块,各块的大小相同,每一个OpenMP线程根据自身的线程编号分得其对应的一块;三、对核心计算部分OpenMP进行向量化:通过IntelAVX指令,将核心计算部分OpenMP分块,数据块的长度匹配向量化处理单元VPU的线宽,利用硬件资源使向量化处理单元VPU发挥其性能。所述预先排序过程采用快速排序算法,该快速排序算法的过程为:按列输入数据,然后按照由小到大的次序对其进行排序,输出排序后的结果。所述核心计算部分进行向量化之前,核心计算的OpenMP先进行并行化,其过程为:在开始计算之前,启动OpenMP线程;随后各个线程照步骤二得到各自的数据块;最后各线程针对各自的数据块进行计算。所述步骤三中IntelXeonCPU中VPU的线宽为256位,IntelXeonPhi中VPU的线宽为512位。本专利技术的一种基于OpenMP对天文学软件Gridding的优化方法,具有以下优点:该专利技术的一种基于OpenMP对天文学软件Gridding的优化方法具有高扩展性、高效率、易于编程的特点;通过对计算数据的排序,避免了内存内的数据跳跃访问,从而有效的降低了访存缺失,最大程度的利用硬件资源,提升Gridding代码的性能;该方法避免了原Gridding软件中的数据依赖性问题,及由此导致的访存冲突,及难以向量化的问题,Gridding的性能提升为原软件的5.5倍,实用性较强,适用范围广泛,易于推广。附图说明附图1为未排序的计算数据在各个线程之间的分配图。附图2为排序后的计算数据在各个线程之间的分配图。具体实施方式下面结合附图和具体实施例对本专利技术作进一步说明。本专利技术提供一种基于OpenMP对天文学软件Gridding的优化方法,该方法是一种可获得多倍性能加速的基于OpenMP实现的针对天文学软件Gridding的高性能的优化方法。其具体过程为:通过将计算数据预先排序,随后将排序后的数据依次分配给不同的线程,保证不同线程间具有相同元素的数据的计算序列不同,最后对核心计算部分进行向量化。该方法避免了原Gridding软件中的数据依赖性问题,及由此导致的访存冲突,及难以向量化的问题。对计算数据的预先排序是该方法的基础,原Gridding软件中计算数据是随机生成的,这就使得具有相同值的数据元素可能出现在数据序列的不同位置,当经过排序后,这些值相同的数据将会聚集在一起。这样可极大的提升访存的连续性,从而可显著的提升程序的性能。尽管排序算法本身会消耗部分计算时间,但是这与其带来的性能的提升而言是非常值得的。为了进一步的降低排序过程的时间消耗,本方法采用了快速排序算法。排序后的数据需要依次分配给不同的线程,这是本方法的核心。数据分配后将使得不同的线程间拥有的大部分数据是不同的,同时也保证了具有线程间的相同值的数据在CPU计算中处于不同的时刻,这就保证了计算中不会出现多个线程同时访问一个数据的情况,也就避免了由于数据依赖性带来的访存冲突。进一步的,其具体实现过程为:一、首先将计算数据预先排序,由于对计算数据的排序将引入额外的计算时间,为了将该部分时间降至最低,本专利技术采用了当前性能最好的快速排序算法将内存中无需的数据序列变为有序,该算法的具体内容为:对于一列输入数据,算法按照由小到大的次序对其进行排序,输出为排序后的结果。该算法不增加额外的内存。二、由于计算数据序列中存在着多个具有相同值的数据元素,线程之间的访存冲突,即多个线程同时访问具有相同值的数据元素,这些数据元素指向同一内存地址,如果多个线程对同一内存地址进行操作,将导致计算的不确定,从而导致计算失效。为了避免线程之间的访存冲突,需要设计数据在OpenMP各个线程之间的分配过程。将排序后的数据分配给不同的线程,保证不同线程间具有相同元素的数据的计算序列不同:将数据分割为若干块,各块的大小相同,每一个OpenMP线程根据自身的线程编号分得其对应的一块。该过程与排序过程结合在一起,即可避免线程之间的访存冲突问题。下面将结合附图1与图2讲述其原理。在图1中给出了未排序的计算数据在各个线程之间的分配,可以看到,计算数据gind中存在着一些具有相同值的元素,3、6、8、13。当将gind分配至三个线程Thread0、Thread1、及Thread2中时,可以看到元素3均出现在线程Thread0与Thread1的第一个位置,由于线程Thread0与Thread1将同时开始计算,这将导致这两个线程将对同一个内存地址进行操作(因为gind中相同的元素值指向同一内存地址),即产生了访存冲突。在图2中给出排序后的计算数据在各个线程之间的分配图,当对计算数据gind排序后,各线程之间的数据如该附图2所示。由图2可以看到,此时具有相同值的元素或者位于同一线程内,比如元素3全部位于Thread0中,元素13全部位于Thread2中;或者位于前一线程的末尾及后一线程的开端,如元素6分别位于Thread0线程的末尾及Thread1线程的开头。由于所有的线程同时开始计算,这样元素6就不会被Thread0线程及Thread1线程同时访问。对于元素3由于他们均位于Thread0线程内,线程内部一次只能访问一个元素,因此不会出现对元素3的同时访问问题,元素13于此类同。此时可以看到,通过排序及各个线程之间的依次分配数据,有效的避免了访存的冲突。三、核心计算的OpenMP先进行并行化,其过程为:在开始计算之前,启动OpenMP线程;随后各个线程照步骤二得到各自的数据块;最后各线程针对各自的数据块进行计算。四、对核心计算部分OpenMP进行向量化:将核心计算分块,本文档来自技高网...
一种基于OpenMP对天文学软件Gridding的优化方法

【技术保护点】
一种基于OpenMP对天文学软件Gridding的优化方法,其特征在于,其具体实现过程为:一、首先将计算数据预先排序,这里的计算数据是Gridding软件中随机生成的,排序即为将具有相同值的数据元素聚集在一起,使无序的数据序列变为有序;二、将排序后的数据分配给不同的线程,保证不同线程间具有相同元素的数据的计算序列不同:将数据分割为若干块,各块的大小相同,每一个OpenMP线程根据自身的线程编号分得其对应的一块;三、对核心计算部分OpenMP进行向量化:通过Intel AVX指令,将核心计算部分OpenMP分块,数据块的长度匹配向量化处理单元VPU的线宽,利用硬件资源使向量化处理单元VPU发挥其性能。

【技术特征摘要】
1.一种基于OpenMP对天文学软件Gridding的优化方法,其特征在于,其具体实现步骤为:一、首先将计算数据预先排序,这里的计算数据是Gridding软件中随机生成的,排序即为将具有相同值的数据元素聚集在一起,使无序的数据序列变为有序;二、将排序后的数据分配给不同的线程,保证不同线程间具有相同元素的数据的计算序列不同:将数据分割为若干块,各块的大小相同,每一个OpenMP线程根据自身的线程编号分得其对应的一块;三、对OpenMP线程进行向量化:通过IntelAVX指令,将OpenMP线程分块,数据块的长度匹配向量化处理单元VPU的线宽,利用硬件资源使向量化处理单元VPU发挥其性能。2.根据权利要求1所述的一种基于OpenMP对天文学软件Gri...

【专利技术属性】
技术研发人员:吴韶华张广勇沈铂卢晓伟王亚娟吴庆张清
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

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

1