一种天文学软件Gridding的数据处理方法及装置制造方法及图纸

技术编号:19542973 阅读:31 留言:0更新日期:2018-11-24 20:29
本发明专利技术公开了一种基于多线程并行的天文学软件Gridding的数据处理方法及装置,应用于KNL平台,该方法包括:对待处理数组进行排序;将排序后的待处理数组分割成预设数量的子数组,并通过OpenMP将每个子数组分配到各自对应的一个线程;利用每个线程对各自对应的子数组进行计算,并将计算结果存储在各自对应的局部网格数组中;利用全部线程以串行方式将各自对应的局部网格数组合并到图像网格数组中;本发明专利技术在现有MPI多进程的基础上,结合OpenMP实现了Gridding程序在KNL平台上进行的多进程和多线程的并行化计算,提高了计算性能;解决了Gridding程序中进行多线程数据处理的写冲突问题,提升了用户体验。

A Data Processing Method and Device for Astronomical Software Gridding

The invention discloses a data processing method and device based on multithreaded parallel astronomy software Gridding, which is applied to KNL platform. The method includes: sorting processing arrays; dividing sorted processing arrays into preset number of sub-arrays, and allocating each sub-array to its corresponding one through OpenMP. One thread; each thread calculates its respective subarrays and stores the calculation results in its respective local grid arrays; all threads are used to serially combine their respective local grid numbers into the image grid arrays; the invention combines OpenM with the existing MPI multi-processes. P realizes the parallel computation of multi-process and multi-threading on the KNL platform by the Gridding program, which improves the computing performance, solves the write conflict problem of multi-threading data processing in the Gridding program, and improves the user experience.

【技术实现步骤摘要】
一种天文学软件Gridding的数据处理方法及装置
本专利技术涉及计算机信息
,特别涉及一种基于多线程并行的天文学软件Gridding的数据处理方法及装置。
技术介绍
Gridding程序是SKA(SquareKilometerArray,平方公里阵列)项目中科学数据处理模块中的重要一环,是此模块中计算量最大的应用之一。作为FFT(FastFourierTransformation,快速傅里叶变换)执行前的环节,Gridding程序需要将待处理数组(Samples)的数据点转换到规则的网格点上。其实现方式是:首先将(u,v)平面的离散成像点取样,这一过程就形成了由一系列Diracdelta方程组成的成像函数,将这一函数与一个有限长度的内核做卷积,此函数就转变成为一个过滤函数,从而将离散的点转换到规则的网格点上。Gridding程序的计算量随着Samples的数据点个数的增加而增加,同时也与卷积内核函数的长度成正比。现有技术中,Gridding程序是基于MPI(MessagePassingInterface,消息传递接口)多进程实现的,并且主要是针对CPU平台实现的并行程序设计,使得Gridding程序只针对CPU平台实现了并行程度设计,且每个进程只有一个线程进行数据处理,没有充分利用处理器多线程功能。因此,在众核处理器计算性能得到高速的发展的今天,如何使Gridding程序在KNL(KnightsLanding,Intel发布的一款众核处理器代号)平台上进行多进程+多线程的并行化计算,是现今急需解决的问题。
技术实现思路
本专利技术的目的是提供一种基于多线程并行的天文学软件Gridding的数据处理方法及装置,以结合OpenMP(OpenMulti-Processing,并行程序接口名称)实现Gridding程序在KNL平台上进行多进程+多线程的并行化计算,提高Gridding程序的计算性能。为解决上述技术问题,本专利技术提供一种基于多线程并行的天文学软件Gridding的数据处理方法,应用于KNL平台,包括:对待处理数组进行排序;将排序后的待处理数组分割成预设数量的子数组,并通过OpenMP将每个所述子数组分配到各自对应的一个线程;利用每个所述线程对各自对应的子数组进行计算,并将计算结果存储在各自对应的局部网格数组中;利用全部所述线程以串行方式将各自对应的局部网格数组合并到图像网格数组中。可选的,所述对待处理数组进行排序,包括:按照所述待处理数组中的每个数据点的坐标大小,对所述待处理数组进行排序。可选的,所述利用每个所述线程对各自对应的子数组进行计算,并将计算结果存储在各自对应的局部网格数组中之前,还包括:利用每个所述线程根据各自对应的子数组中第一个数据点和最后一个数据点的垂直坐标,确定各自对应的局部网格数组的内存空间;在所述KNL平台上的MCDRAM上开辟所述内存空间。可选的,所述利用每个所述线程对各自对应的子数组进行计算,包括:利用每个所述线程利用所述KNL平台上的AVX512指令集进行向量化操作。可选的,所述利用每个所述线程对各自对应的子数组进行计算,包括:利用每个所述线程计算各自对应的子数组中的当前数据点之前,在内存中预取计算所述当前数据点之后预设数量的数据点所需的数据。此外,本专利技术还提供了一种基于多线程并行的天文学软件Gridding的数据处理装置,应用于KNL平台,包括:排序模块,用于对待处理数组进行排序;分配模块,用于将排序后的待处理数组分割成预设数量的子数组,并通过OpenMP将每个所述子数组分配到各自对应的一个线程;计算模块,用于利用每个所述线程对各自对应的子数组进行计算,并将计算结果存储在各自对应的局部网格数组中;合并模块,用于利用全部所述线程以串行方式将各自对应的局部网格数组合并到图像网格数组中。可选的,所述排序模块,包括:排序子模块,用于按照所述待处理数组中的每个数据点的坐标大小,对所述待处理数组进行排序。可选的,该装置还包括:开辟模块,用于利用每个所述线程根据各自对应的子数组中第一个数据点和最后一个数据点的垂直坐标,确定各自对应的局部网格数组的内存空间;在所述KNL平台上的MCDRAM上开辟所述内存空间。可选的,所述计算模块,包括:向量化子模块,用于利用每个所述线程利用所述KNL平台上的AVX512指令集进行向量化操作。可选的,所述计算模块,包括:预取模块,用于利用每个所述线程计算各自对应的子数组中的当前数据点之前,在内存中预取计算所述当前数据点之后预设数量的数据点所需的数据。本专利技术所提供的一种基于多线程并行的天文学软件Gridding的数据处理方法,应用于KNL平台,包括:对待处理数组进行排序;将排序后的待处理数组分割成预设数量的子数组,并通过OpenMP将每个子数组分配到各自对应的一个线程;利用每个线程对各自对应的子数组进行计算,并将计算结果存储在各自对应的局部网格数组中;利用全部线程以串行方式将各自对应的局部网格数组合并到图像网格数组中;可见,本专利技术通过OpenMP将每个子数组分配到各自对应的一个线程,在现有MPI多进程的基础上,结合OpenMP实现了Gridding程序在KNL平台上进行的多进程和多线程的并行化计算,提高了Gridding程序的计算性能;并且通过全部线程以串行方式将各自对应的局部网格数组合并到图像网格数组中,解决了Gridding程序中进行多线程数据处理的写冲突问题,提升了用户体验。此外,本专利技术还提供了一种基于多线程并行的天文学软件Gridding的数据处理装置,同样具有上述有益效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例所提供的一种基于多线程并行的天文学软件Gridding的数据处理方法的流程图;图2为本专利技术实施例所提供的一种基于多线程并行的天文学软件Gridding的数据处理方法中MPI启动多个Gridding进程的示意图;图3为Gridding程序的原始并行算法中计算网格重叠问题的示意图;图4为本专利技术实施例所提供的另一种基于多线程并行的天文学软件Gridding的数据处理方法中每个线程计算各自对应的局部网格数组的示意图;图5为本专利技术实施例所提供的另一种基于多线程并行的天文学软件Gridding的数据处理方法中的内存预取的示意图;图6为本专利技术实施例所提供的另一种基于多线程并行的天文学软件Gridding的数据处理方法中的串行合并的示意图;图7为本专利技术实施例所提供的另一种基于多线程并行的天文学软件Gridding的数据处理方法中的归约操作的示意图;图8为本专利技术实施例所提供的一种基于多线程并行的天文学软件Gridding的数据处理装置的结构图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所本文档来自技高网...

【技术保护点】
1.一种基于多线程并行的天文学软件Gridding的数据处理方法,应用于KNL平台,其特征在于,包括:对待处理数组进行排序;将排序后的待处理数组分割成预设数量的子数组,并通过OpenMP将每个所述子数组分配到各自对应的一个线程;利用每个所述线程对各自对应的子数组进行计算,并将计算结果存储在各自对应的局部网格数组中;利用全部所述线程以串行方式将各自对应的局部网格数组合并到图像网格数组中。

【技术特征摘要】
1.一种基于多线程并行的天文学软件Gridding的数据处理方法,应用于KNL平台,其特征在于,包括:对待处理数组进行排序;将排序后的待处理数组分割成预设数量的子数组,并通过OpenMP将每个所述子数组分配到各自对应的一个线程;利用每个所述线程对各自对应的子数组进行计算,并将计算结果存储在各自对应的局部网格数组中;利用全部所述线程以串行方式将各自对应的局部网格数组合并到图像网格数组中。2.根据权利要求1所述的基于多线程并行的天文学软件Gridding的数据处理方法,其特征在于,所述对待处理数组进行排序,包括:按照所述待处理数组中的每个数据点的坐标大小,对所述待处理数组进行排序。3.根据权利要求2所述的基于多线程并行的天文学软件Gridding的数据处理方法,其特征在于,所述利用每个所述线程对各自对应的子数组进行计算,并将计算结果存储在各自对应的局部网格数组中之前,还包括:利用每个所述线程根据各自对应的子数组中第一个数据点和最后一个数据点的垂直坐标,确定各自对应的局部网格数组的内存空间;在所述KNL平台上的MCDRAM上开辟所述内存空间。4.根据权利要求3所述的基于多线程并行的天文学软件Gridding的数据处理方法,其特征在于,所述利用每个所述线程对各自对应的子数组进行计算,包括:利用每个所述线程利用所述KNL平台上的AVX512指令集进行向量化操作。5.根据权利要求1至4任一项所述的基于多线程并行的天文学软件Gridding的数据处理方法,其特征在于,所述利用每个所述线程对各自对应的子数组进行计算,包括:利用每个所述线程计算各自对应的子数组中的当前数据点之前,在内存中预取计算所述当前数据点之后...

【专利技术属性】
技术研发人员:赵旭东景璐
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1