论文部分内容阅读
当前宽带脉冲星观测中,普遍采用万兆以太网作为底层网络环境来进行数据的采集和传输,而传统的基于SOCKET的网络编程模式已经不能满足后端对海量高速观测数据包的实时接收、解析和处理的性能要求。本论文主要研究基于用户空间态的网络IO以及NUMA架构下GPU/CPU异构并行技术,来提高脉冲星观测的数据采集和处理的效率。采用用户态空间的网络IO技术,实现基于用户态的高效精简的TCP/IP网络协议栈,并结合当前普遍采用的基于通用CPU/GPU计算平台的脉冲星数据处理管线模式,充分运用多核环境和GPU环境的并行计算能力,来解决观测数据的采集、解码等实时处理的实际需求。然后在上述研究的基础上,构建一个针对脉冲星万兆以太网观测环境下数据包的数据采集、处理和传输的通用框架,从而屏蔽底层实现细节,为天文学家提供高效易用的编程模式。本人的主要工作和创新点如下:1.对Linux系统下基于TCP/IP协议栈的网络数据报文的接收处理流程进行分析,从Linux内核、网络驱动、系统架构等方面入手,对高IO下影响和限制数据包可靠接收的瓶颈因素进行了逐一归纳;2.在分析内核协议栈报文处理流程的基础上深入研究用户态、零拷贝等新思想和新技术,分析其原理。对目前主流的用户态、零拷贝技术进行横向测试对比,选用其中较为流行而且成熟的DPDK技术进行深入研究;3.基于DPDK技术进行编码,实现了高效可靠的脉冲星观测数据接收存储系统。同时实现了基于用户态的高效精简的协议栈;4.在数据无丢失接收的基础上,使用零拷贝内存地址映射避免数据包在CPU/GPU之间的拷贝,以及使用DPDK+CUDA协同工作,对DPDK观测数据使用CUDA进行实时处理。5.对基于DPDK+CUDA的脉冲星观测数据接收处理系统进行性能测试,并分别与基于Linux内核协议栈的数据包接收和基于CPU的处理进行性能比较与分析,论证其性能优势。同时也为下一步工作制定计划。