APP下载

一种基于DSPSR和GPU的脉冲星相干消色散基带数据处理技术

2021-10-30李浩罗近涛潘之辰孙鹏飞姜金辰

时间频率学报 2021年3期
关键词:共享内存脉冲星色散

李浩,罗近涛,潘之辰,孙鹏飞,姜金辰,5

一种基于DSPSR和GPU的脉冲星相干消色散基带数据处理技术

李浩1,2,罗近涛1,3,潘之辰4,孙鹏飞1,姜金辰4,5

(1. 中国科学院 国家授时中心,西安 710600;2. 中国科学院大学,北京 100049; 3. 中国科学院 精密导航定位与定时技术重点实验室,西安 710600;4. 中国科学院 国家天文台,北京 100101;5. 北京大学,北京 100871)

相比于非相干消色散,相干消色散具有色散消除更彻底、可保留原始数据相位、时间分辨率信息等优势,但同时具有运算量大、数据处理耗时长等问题。为实现脉冲星基带数据相干消色散处理,对数据处理流程进行加速,开发一种以DSPSR(digital signal processing software for pulsar)和GPU(graphics processing unit)为数据处理核心的脉冲星数据处理技术。利用高速共享内存实现对环形缓存区两路极化基带数据的读取,结合图形处理器高性能计算技术,使用DSPSR对基带数据进行相干消色散处理。数据处理结果表明,相比于多线程非相干消色散系统,此数据处理技术在数据处理速度方面具有更好的优越性,并可获得更精细的脉冲轮廓。

脉冲星;相干消色散;脉冲星数字信号处理程序包;图形处理器;脉冲星分布式采集和数据分析处理软件

0 引言

脉冲星信号在传播过程中由于受到星际介质(interstellar medium,ISM)影响产生色散现象,导致观测到的脉冲轮廓展宽,需采用消色散技术对脉冲星数据进行处理。脉冲星消色散方法主要分为非相干消色散和相干消色散两种。非相干消色散在时域进行,多通道滤波器将脉冲星信号等分为若干通道的窄带信号,再将每个通道的信号经过平方检波后在时域上对齐相加,补偿因色散而产生的时间延迟,但是同一通道内色散无法消除[1]。相干消色散核心算法为快速傅里叶变换,将时域数字信号变换到频域,再使用星际介质传输函数进行处理,消除整个通带内的色散。相比于非相干消色散,相干消色散可消除带内色散,效果更彻底,并能够保留原始数据的相位关系、时间分辨率。已有学者研究表明,在一定的观测频率之内,相干消色散的效果优于非相干消色散[2]。

目前主流脉冲星数字终端系统由现场可编程门阵列(field programmable gate array,FPGA)、图形处理器(graphics processing unit,GPU)、中央处理器(central processing unit,CPU)三部分组成,FPGA平台主要用于ADC(analog to digital converter)控制、数据流控制和信号预处理,GPU负责消色散等核心算法的完成,CPU用于数据传输、逻辑控制和文件读写[3]。FPGA端输出的基带数据可保留脉冲星信号原始信息,结合相干消色散技术可开展超高时间分辨率脉冲星辐射特性研究,对于持续时间极短的快速射电暴(fast radio burst,FRB)搜寻以及脉冲星超短时标脉冲等研究有着重要意义。以中国FAST 500 m望远镜①http://www.cas.cn/zt/kjzt/fast/、澳大利亚Parkes 64 m望远镜[4]、德国100 m口径Effelsberg望远镜[5]等为代表的大口径射电望远镜以脉冲星观测为主要科学目标,宽带宽、超高时间分辨率和高频率分辨率数字终端技术成为发展趋势。

国内脉冲星数字化终端系统的研制已取得一系列进展。中国科学院新疆天文台依托25 m射电望远镜和VLBI记录终端MK5A系统,开展脉冲星相干消色散观测系统研究[6]。中国科学院云南天文台以ROACH2平台和脉冲星数字信号处理程序包(digital pulsar signal processing for pulsars,DSPSR)为数据处理核心构建相干消色散观测系统[7]。中国科学院上海天文台65 m射电望远镜配备脉冲星数字化终端(digital backend system,DIBAS),同时具备相干与非相干消色散功能[3]。中国科学院国家天文台面向FAST开发了基于ROACH2平台的非相干数字化脉冲星终端[8]。中国科学院国家授时中心40 m射电望远镜HRT脉冲星观测系统使用FPGA+GPU架构,可实现非相干消色散与相干消色散两种观测模式[9]。国际上,美国NRAO(National Radio Astronomy Observatory)在GUPPI(green bank ultimate pulsar processing instrument)系统的基础上,研制硬件平台和性能指标更为先进的VEGAS(versatile GBT astronomical spectrometer),基本系统由ADC,ROACH系列FPGA平台与GPU处理集群组成②http://www.cas.cn/zt/kjzt/fast/。德国Effelsberg射电望远镜PSRIX后端采用ROACH系列平台实现,GPU集群进行数据处理[10]。澳大利亚Parkes射电望远镜的BPSR(Berkeley Parkes Swinburne Recorder)脉冲星数字终端系统采用FPGA平台和CPU+GPU架构,数据处理后端采用开源软件PSRDADA(processing software for pulsar distributed acquisition and data analysis)实现数据缓冲区、DSPSR实现实时相干消色散和RFI处理[11]。

结合相干消色散脉冲星观测系统发展趋势,本文基于CPU+GPU架构,开发一种以GPU和DSPSR为数据处理核心的相干消色散基带数据处理技术。利用高速共享内存原理实现最高两路极化基带数据输入,后续解码、消色散、折叠等数据处理流程采用脉冲星数字信号处理程序包DSPSR结合GPU加速技术进行处理。数据处理结果以PSRFITS格式存储。面向FAST脉冲星观测系统海量数据相干消色散处理需求,将此数据处理流程在FAST基带数据服务器集群上进行部署测试,验证流程的正确性与可行性,为后续宽带实时相干消色散脉冲星观测系统的开发提供技术储备。

1 相干消色散原理

2 DSPSR+GPU数据处理技术

脉冲星数据进行相干消色散处理需进行大量的浮点运算,相比于非相干消色散算法,对计算机的性能和运算能力要求更高,随着图形处理器高性能计算的发展,数字化相干消色散脉冲星终端技术研究成为新的趋势。本文构建的相干消色散数据处理流程如图1所示,利用高速共享内存,即环形缓存区(ringbuffer)实现基带数据的读写,包括数据输入、数据处理、数据输出3个部分。

图1 数据处理流程

首先从磁盘中读取基带数据、header文件并写入环形缓存区,环形缓存区由两部分组成:Data buffer和Header buffer,Data buffer用于存放基带数据,Header buffer用于存放观测信息以及基带数据基本信息。然后DSPSR从环形缓存区读取基带数据和对应的信息,进行相干消色散、折叠等后续处理,并将处理结果存入磁盘。

2.1 共享内存技术

共享内存是Unix系统下一种高效的多进程间通信(inter-process communication,IPC)方式,多用于同一程序不同进程间的数据传输。进程可直接对内存进行访问、读写,不需要进行数据拷贝,是连接到共享内存的多个进程间共享和传递数据的有效方式。

共享内存中的数据可被连接到此共享内存的所有进程读取,此时进程间数据传输不再通过内核,可有效减少系统调用时间,提高数据传输效率。主流的共享内存实现方式有跨进程间通讯的基于SYS V的共享内存、基于POSIX mmap文件映射共享内存和基于DMABUF框架,可跨设备间通讯的共享内存两大类[14]。

脉冲星终端更宽带宽、更高时间分辨率的发展趋势,面临海量数据高速传输技术难题。FAST 19波束接收机在8 bits采样下基带数据数据量为38 Gbit/s,PSRFITS格式数据量为3 040 Mbit/s(4 k通道, 50 μs,8 bits)[3],海量数据快速处理成为基带数据处理难题,共享内存高效数据传输的优势,是解决海量基带数据处理的途径。

2.2 PSRDADA简介

PSRDADA是用于脉冲星基带记录的开源软件项目,提供灵活且易于管理的环形缓存区(ringbuffer)实现数据读写。可通过基于文本的套接字接口来控制读、写程序,以实现从ringbuffer中将数据写入磁盘阵列、将数据发送到节点阵列以及直接在ringbuffer中处理数据③http://psrdada.sourceforge.net/。

在PSRDADA的逻辑中,环形缓冲区通常有一个指向ringbuffer中可读数据的读指针和一个指向可写缓存区的写指针,通过控制读、写指针实现缓冲区数据的输入和输出。在PSRDADA的具体实现中,写程序创建并锁定环形缓存区后,未被程序读取的数据区域定义为使用区域,通过将已读取数据区域标记为已清除,成为新的未使用区域且可被写程序识别,来构成逻辑上的循环。

2.3 脉冲星数字信号处理程序包

DSPSR是一款开源、面向对象的数字信号处理软件包,可以选择性地利用多核处理器和通用图形处理单元进行射电脉冲星数字信号处理,旨在提高算法和数据的可移植性[13],支持CPSR,FITS,Mark5等多种数据格式。DSPSR还可实现多种模块化算法:如相干消色散、生成滤波器组、全极化检测、格式转换等。数据结果以PSRFITS格式输出,可用于PSRCHIVE等软件进行后续数据处理。

DSPSR通过共享内存区,可直接从RAM中读取脉冲星数据。并可结合GPU加速特性进行并行运算,提升消色散等数据处理效率。

2.4 GPU加速技术

GPU即图形处理器,配备有高速内存以及大量算术逻辑单元(arithmetic and logic unit,ALU),是专为执行大量几何计算而设计的一种高度并行化多核处理器。相比于CPU采用串行架构,功能模块较多,能适应复杂运算环境的特点,GPU可执行大规模并发计算,拥有更强大的浮点运算能力。

CUDA(compute unified device architecture)是NVIDIA公司推出的软硬件通用计算设备架构[15],采用标准C语言的拓展作为编程语言,提供大量高性能计算指令。利用CUDA进行编程可采用新的计算架构来使用GPU提供的硬件资源,使线程的创建和调度所占用的开销大大减少,从而提升程序的运算效率。

GPU的逻辑架构包括thread,block和grid三个部分,如图2所示,GPU执行计算可调用的最小单位为thread,数个thread共同组成一个block,一个block中的thread共用同一块共享内存,并可快速实现数据同步。在物理层,GPU硬件的核心组件为流式多处理器(streaming multiprocessor,SM)。SM资源主要包括CUDA核、共享内存、寄存器、乘加器等,可以并行执行数百个线程,资源数量越多则GPU的并行计算能力越高。

图2 GPU线程结构

脉冲星数据处理流程中,消色散所需时间占比最大,是影响数据处理效率最主要的因素[16]。随着GPU的可编程能力及并行处理能力不断提高,应用范围迅速扩展,可利用GPU高性能并行计算特性来满足海量基带数据的实时处理需求。本文利用DSPSR结合GPU加速技术对相干消色散算法进行加速,提高数据处理效率。

3 数据处理

本流程对基带数据的处理可分为基带数据的读取与写入、调用DSPSR读取数据、相干消色散处理、折叠、PSRFITS格式输出等5个步骤。基带数据的读写通过编写程序实现,通过在编译时添加相应的数据格式来实现DSPSR对ringbuffer中数据的读取,相干消色散、折叠等处理通过调用DSPSR实现,数据处理结果由DSPSR以PSRFITS格式保存。为提高数据处理速度,使用GPU对DSPSR的数据处理进行加速。

3.1 数据处理原理

在本数据处理流程中,环形缓存区为基带数据读写的接口,包含指针、唯一标识符(KEY)、内存块大小、内存块数量4个参数。这4个参数中,指针指向未使用的环形缓冲区句柄,通过此指针来实现对共享内存的访问,ringbuffer的大小由内存块大小和内存块数量共同决定。程序通过指定命令及以上参数来对ringbuffer进行创建、连接、锁定、读取、重置等操作。如图3所示,对ringbuffer的使用以及数据处理流程步骤如下:

① 创建ringbuffer,通过设置内存块大小以及内存块数量来控制ringbuffer大小,并为其指定唯一标识符‘KEY’。

② 写程序通过唯一标识符‘KEY’连接并锁定ringbuffer,此时ringbuffer仅允许当前写程序进行访问。

③ 写程序通过命令行参数所指定的路径与文件名,读取header文件与基带数据文件,并对ringbuffer进行写操作。

④ 写程序通过判断是否读取到文件末尾以保证文件的连续读取,直至所有文件读取完毕。

⑤ DSPSR通过唯一标识符‘KEY’连接并锁定到ringbuffer,对基带数据进行读取并进行后续相干消色散、折叠等处理,并输出结果文件。此时ringbuffer仅允许当前读程序(DSPSR)进行访问。

⑥ 全部数据处理完成后,写程序会返回写入ringbuffer中基带数据文件总数、总大小以及平均传输速度到屏幕,然后通过对ringbuffer进行刷新,以释放内存。

图3 数据读取原理

处理两路基带数据时,需保证两路数据文件的数量、每个文件大小分别对应相等,目前实现两路极化各2 048个文件输入,根据服务器内存配置,可调整文件输入数量上限。在数据处理服务器内存容量允许的情况下,可通过指定不同的标识符‘KEY’创建多个ringbuffer来同时进行不同数据的读写操作。

2001-2012年海南省国际旅游外汇收入除2003年和2009年下降外,总体呈波动上升趋势。期间,2003年受亚洲“非典”公共危机事件影响,2008-2009年受全球金融危机影响出现下滑。其国际旅游外汇收入从2001年的1.06亿美元上升到2012年的3.48亿美元。12年间的平均国际旅游外汇收入为2.21亿美元,约占全国的0.65%,排名在二十一位名上下波动。2001-2012年海南省国际旅游外汇收入一直低于全国平均值,差距越来越大。

3.2 数据处理方式

根据pipeline处理数据要求,使用ringbuffer前,需创建脉冲星观测信息文本文件,文件中包括观测频率、射电源名称、观测模式、极化、通道、带宽、中心频率、采样比特数、台站信息、数据大小等参数信息,并对参数信息根据实际观测情况进行修改,再将基带数据文件名按照指定格式保存到文本文件中。

依据3.1节数据处理原理,首先创建指定大小的ringbuffer,写程序根据‘KEY’值使用指定命令连接到ringbuffer,将header文件及数据分别写入header buffer和data buffer中,并输出header文件内容到屏幕。然后使用DSPSR相关命令读取ringbuffer中数据,进行相干消色散、分通道、折叠以及PSRFITS格式输出等处理。通过修改DSPSR命令参数调整图形处理器以及中央处理器线程数的使用,并对通道数、输出文件名及路径、积分时间等数据处理信息进行调整。所使用的脉冲星历文件由Psrcat软件生成,采用Tempo2生成预报多项式进行折叠。最后刷新ringbuffer,清空共享内存区中数据。

为测试、验证数据处理流程的可行性与准确性,在FAST基带数据服务器集群上安装配置此流程,并使用FAST对脉冲星PSR J0534+2200、PSR J1939+2134观测所得的基带数据进行测试处理。

4 结果分析

本文所处理的基带数据观测信息为:中心频率1 250 MHz、带宽500 MHz、双极化、8比特采样。首先,分别采用3.2节的数据处理方式和DSPSR CPU多线程方式对数据进行处理,记录处理1 s观测时长的数据量所需时间,结果如表1所示。根据FAST基带数据服务器集群配置信息,本文介绍的数据处理流程处理8比特采样、观测时长1 s的双极化基带数据,所需时间大约为0.8 s,与CPU模式下调用32线程处理时间5 s相比,速度提升约6.25倍。FAST基带数据服务器配置信息如表2所示。

表1 数据处理信息和所需时间

表2 FAST基带数据GPU配置信息

其次,使用3.2节的数据处理方式对PSR J0534+2200和PSR J1939+2134的总观测时长基带数据进行相干消色散处理,处理结果如图4至图7所示。同时对PSR J1939+2134基带数据进行非相干消色散处理,结果如图8所示。PSR J0534+2200和PSR J1939+2134经过相干消色散处理后的数据信噪比分别为16.677和1 270.176,可以利用Tempo2和PSRCHIVE对数据进行计时等研究工作。

图4 PSR J0534+2200相干消色散脉冲轮廓图(中心频率1 250 MHz,带宽500 MHz,双极化)

从图4中可清晰看到PSR J0534+2200脉冲轮廓的两个主成分:分别位于相位0.3和0.7附近的主脉冲和中间脉冲。从图5的频率—相位图中可以看到经过相干消色散处理不同的通道已经对齐,消除了色散效应的影响。图6为PSR J1939+2134经过相干消色散处理后得到的脉冲轮廓图,可看到位于相位0.2附近主脉冲的精细结构,在频域图中也可看到该结构。图7显示各频率通道也已经对齐。

图6 PSR J1939+2134相干消色散脉冲轮廓图(中心频率1 250 MHz,带宽500 MHz,双极化)

图7 PSR J1939+2134频率—相位图

图8 PSR J1939+2134非相干消色散脉冲轮廓图(中心频率1 250 MHz,带宽500 MHz,双极化)

最后,为验证本文所论述的数据处理流程的数据处理质量,根据Australia Telescope National Facility④https://data.csiro.au/dap/public/atnf/pulsarSearch.zul的资料,与Parkes 对PSR J1939+2134在L波段观测所得到的轮廓进行比较,结果如图9所示。图9所示为Parkes的PDFB终端系统对PSR J1939+2134在1378 MHz观测数据的相干消色散处理结果,可清晰看到位于相位0.2附近的主脉冲、相位0.7附近的中间脉冲以及主脉冲的精细结构,与图6中FAST观测数据处理结果一致,证明本数据处理流程的数据处理结果是符合要求的。

图9 Parkes观测得到的PSR J1939+2134相干消色散脉冲轮廓图

5 结论

本文提出的基于DSPSR和GPU的脉冲星数据处理流程,可实现最高两路极化基带数据相干消色散处理。数据读取及处理方面结合高速共享内存技术和GPU加速技术,实现基于CPU+GPU异构系统的相干消色散基带数据处理技术,相比于非相干消色散,色散消除更彻底,可以获得更精确的脉冲轮廓。数据处理效率方面:在TITAN XP图形处理器配置下,对8 bit采样、观测时长1 s的双极化PSR J0534+2200基带数据进行处理,所需时间约为0.8 s,与CPU模式下,DSPSR采用32线程处理同样数据量的基带数据所需时间约5 s相比,本数据处理流程速度提升约6.25倍。在观测频率、带宽相近的条件下,将PSR J1939+2134数据处理结果与Parkes在L波段观测所得的轮廓图进行对比,本流程处理所得结果与Parkes处理结果相同,验证了此数据处理流程在脉冲星数据处理方面的可行性与准确性。本数据处理技术的开发,在实现相干消色散基带数据处理的基础上,提升了数据处理效率,为海量脉冲星基带数据实时处理以及国内开发相干消色散脉冲星终端提供数据处理方面的技术储备和技术参考。

在今后的工作中将继续研究DSPSR在GPU并行计算场景下的应用,进一步优化其数据处理速度,为实时宽带相干消色散的接收机做技术储备。并拓展基于PSRDADA共享内存技术的数据读写功能,如增加支撑更多数据格式,实现特定格式文件输出等。

致谢:感谢中国科学院国家天文台FAST现场工作人员对数据处理流程部署的大力支持和热情帮 助,在此深表谢意。

[1] 刘建伟, 金乘进. 基于计算机集群的脉冲星相干消色散系统研究[J]. 科学技术与工程, 2009, 9(13): 3612-3615+3620.

[2] 黄玉祥, 汪敏, 郝龙飞, 等. 脉冲星信号相干消色散与非相干消色散的比较研究[J]. 天文研究与技术, 2019, 16(1): 16-24.

[3] 张海龙, 张萌, 聂俊, 等. 脉冲星数字终端技术综述[J].中国科学(物理学 力学 天文学), 2019, 49(9): 15-28.

[4] BAILES M. Precision timing at the Parkes 64-m radio telescope[J]. Radio Pulsars, ASP Conference Proceedings, San Francisco: Astronomical Society of the Pacific, 2003: 57-60.

[5] HACHENBERG O, GRAHL B, WIELEBINSKI R. The 100-meter radio telescope at Effelsberg[J]. Proceedings of the IEEE, 1973, 61(9): 1288-1295.

[6] 刘立勇, 艾力·伊沙木丁, 张晋. 乌鲁木齐天文站建立脉冲星相干消色散观测系统[J]. 天文研究与技术, 2007, 4(1): 72-78.

[7] 徐永华, 李纪云, 张颖倩, 等. 相干消色散脉冲星观测系统的研究[J]. 天文研究与技术, 2015, 12(4): 480-486.

[8] 南仁东, 李会贤.FAST的进展—科学、技术与设备[J]. 中国科学(物理学 力学 天文学), 2014, 44(10): 1063-1074.

[9] LUO J T, GGAO Y P, YANG T G, et al.Pulsar timing observations with Haoping radio telescope[J]. Research in Astronomy and Astrophysics, 2020, 20(7): 187-192.

[10] LAZARUS P, KARUPPUSAMY R, GRAIKOU E, et al.Prospects for high-precision pulsar timing with the new Effelsberg PSRIX backend[J]. Monthly Notices of the Royal Astronomical Society, 2016, 458(1): 868-880.

[11] SARKISSIAN J M, CARRETTI E, STRATEN W V.The Parkes pulsar backends[J]. AIP Conference Proceedings, 2011, 1357(1): 351-352.

[12] LORMER D R, KRAMER M.Handbook of pulsar astronomy[K]. 2012.

[13] STRATEN W V, BAILES M.DSPSR: digital signal processing software for pulsar astronomy[J]. Publications of the Astronomical Society of Australia, 201l, 28(1): 1-14.

[14] Microsystems S.Shared Memory[C] // System Interface Guide, [S.l.]: Iuniverse Inc, 2001: 106-107.

[15] CHENG J, GROSSMAN M, MCKERCHER T.Professional CUDA C programming[M]. John Wiley & Sons, [S.l.]: Wrox, 2014.

[16] 李佳功, 徐永华, 李志玄, 等. 基于Mark5B+GPU脉冲星观测系统[J]. 天文研究与技术, 2014, 11(4): 335-342.

A coherent de-dispersion processing technology on pulsar baseband data based on DSPSR and GPU

LI Hao1,2, LUO Jin-tao1,3, PAN Zhi-chen4, SUN Peng-fei1, JIANG Jin-chen4,5

(1. National Time Service Center, Chinese Academy of Sciences, Xi’an 710600, China;2.University of Chinese Academy of Sciences, Beijing 101048, China; 3. Key Laboratory of Precise Navigation and Timing Technology, Chinese Academy of Sciences, Xi’an 710600, China;4. National Astronomical Observatory, Chinese Academy of Sciences, Beijing 100101, China; 5. Peking University, Beijing 100871, China)

Compared with incoherent de-dispersion, coherent de-dispersion has the advantages of more thorough dispersion elimination, and retaining the original phase information and the time resolution of the original data. However, it comes with challenges such as the massive computations and the longer data processing time. In order to realize a coherent de-dispersion processing of baseband data and accelerate the data processing, a pulsar data processing pipeline using DSPSR (the digital signal processing for pulsars) and GPU (graphics processing unit) as the data processing core is developed. Firstly, through the high-speed shared memory, the circular buffer is used to read the two-polarization baseband data. Combined with the high-performance computing technologies based on the graphics processor, the DSPSR is used to perform coherent de-dispersion, and folding process on the baseband data. Results from this pipeline show that compared with the multi-threaded incoherent de-dispersion system, this data processing technology has advantages in data processing speed and obtaining finer pulse profiles.

pulsar; coherent achromatic dispersion; digital signal processing for pulsars (DSPSR); graphics processing unit (GPU); processing software for pulsar distributed acquisition and data analysis (PSRDADA)

10.13875/j.issn.1674-0637.2021-03-0204-11

李浩, 罗近涛, 潘之辰, 等. 一种基于DSPSR和GPU的脉冲星相干消色散基带数据处理技术[J]. 时间频率学报, 2021, 44(3): 204-214.

2021-04-21;

2021-05-22

国家自然科学基金资助项目(U1931128;11973046;91736207;42030105);国家重点研发计划资助项目(2017YFA0402602)

猜你喜欢

共享内存脉冲星色散
“光的折射”“光的色散”知识巩固
“中国天眼”已发现740余颗新脉冲星
“光的折射”“光的色散”知识巩固
发现脉冲星的女天文学家——贝尔
“光的折射”“光的色散”知识巩固
『光的折射』『光的色散』随堂练
通过QT实现进程间的通信
基于PCI总线的多处理器协同机制研究
基于虚拟观测值的X射线单脉冲星星光组合导航
QNX下PEX8311多路实时数据采集的驱动设计