论文部分内容阅读
从20世纪60年代以来,随着天文学的发展,产生了很多重要的科学发现和成果。重大的天文学突破越来越依赖大型天文望远镜的运行以及对天文大数据的处理和分析。由宏伟科学目标驱动的SKA(Square Kilometre Array)射电望远镜是我国参与的最大的天文领域国际合作大科学工程。SKA射电望远镜形成从地基设备到空间卫星(以及空间站)的观测条件和可见光、X射线、γ射线、射电、红外线、紫外线等的全波段观测能力,推动天文科学研究进入指数增长的大数据时代。目前天文观测数据规模处于PB量级,随着天文望远镜等设备的发展和进步,很快天文数据规模将达到EB量级。如此大规模的数据将产生严重的存储问题,需要进行近实时的数据处理,其对目前计算设备的数据处理能力提出了巨大的挑战。除了计算性能要求,为了降低SKA项目的运行成本,对功率预算进行了严格的限制,计算功耗也是数据处理平台选择非常重要的因素。另外在天文科学数据分析中,除了考虑处理性能和功耗之外,运算结果的精度也是需要考虑的重要指标,一些科学计算应用需要更高水平的数值计算精度。提高运算精度可以通过简单使用更大位宽的精度类型来实现,但是如果能够改进现有的浮点运算单元,使其在相同数据位宽的情况下提高数值计算精度,可以有效降低数据存储和通信的开销。目前,浮点运算单元设计采用IEEE浮点标准——IEEE 754。由于IEEE 754浮点数组成位串的各部分位宽是固定的,导致在表达精度较高而数量级较小的数据,或者精度较低数量级较大的数据时,存在一些比特位未被充分利用的情况。为改善IEEE 754固定精度带来的比特位未充分利用的不足,在John L.Gustafson提出的可变精度计算理论的基础上,本文提出了可变精度浮点运算逻辑,并且根据应用需求确定了合适的参数配置,在FPGA上对可变精度浮点运算单元进行了研究和设计,其扩展了现有的浮点运算IP核。我们对两者的精度表示、动态范围和运算性能进行了比较和分析。结果表明,与IEEE754 IP核相比,我们设计的可变精度浮点运算单元能够提供更高的精度和更大的动态范围,可以有效提升科学数据分析等精度敏感型应用的数值分析结果。通过对实现的进一步优化,可变精度浮点运算单元可以作为浮点IP核的较优选择。考虑数据处理性能,现有的基于CPU和GPU的高性能解决方案不能同时满足SKA科学数据处理的性能要求和功率预算。考虑到硬件加速器的高能效和原型设计的灵活性和成本,我们选择FPGA作为硬件加速平台,以天文数据处理中的关键算法W-projection degridding和K-means聚类算法为例对其FPGA原型进行了研究和设计。通过对degridding算法的行为和瓶颈的分析,本文提出了针对degridding算法的存储结构和访存方式,并且根据degridding硬件系统的片外数据读取带宽,提出和设计了与带宽相匹配的并行计算逻辑,实现最优的处理性能和资源消耗的平衡,最后通过分析degridding处理中多个频谱通道样本点计算时所需数据的相关性,提出了相邻频谱通道样本点计算时的数据重用方式,进一步提升了整体处理性能。我们在目标FPGA板上验证了设计的功能和性能,并且将其与CPU和GPU平台上的标准测试程序进行了对比,结果表明基于FPGA的degridding计算原型比单核CPU的性能提高了13.75倍,比基于MPI的CPU基准程序和基于CUDA的GPU基准程序在对应硬件上的最大性能分别提高了2.74倍和2.03倍,能效分别提高了7.64倍和7.42倍。在K-means算法软硬件协同设计优化中,通过分析不同数据集和簇类别的情况下K-means聚类三个步骤的计算量占比,选择只在FPGA上实现前两个操作步骤:距离计算块和最小距离查找块,在CPU上完成聚类中心的更新操作。在距离计算块设计中我们对比了两种并行化策略,按列读取的方式可以降低所读取数据的冗余度,完成相同功能比按行一次性读取样本点所有维度元素需要读取的样本元素减少了1/3。我们根据目标FPGA上的资源情况例化了4个目标K-means核并且进行了性能测试,由于对K-means处理的主要计算量在FPGA上的优化,计算部分所需的时间在算法整体时间的占比已经很小,大部分的时间是在完成设备初始化以及数据传输,FPGA的执行时间随着数据集规模的增长变化很小,并没有随着数据集规模的增加线性增长。单个计算节点的吞吐率受限于有限的计算资源,分布式计算集群可以提供比单个节点数倍乃至数十倍的性能提升。Apache Spark是一种高效的用于大数据处理的分布式计算框架,它支持基于RDDs(Resilient Distributed Dataset)的内存计算,并提供了可重用性、容错和实时流处理机制。但是,基于Spark计算框架的任务默认只能在CPU上执行,CPU的低并行度和低能效会限制集群的性能和可扩展性。针对分布式计算框架Spark只能支持通用处理器CPU导致的低并行度和能效的不足,为了利用FPGA等异构硬件来提升分布式计算的性能,本文提出了异构分布式计算框架,将FPGA加速器集成到原生的Spark计算框架中,能够有效提升分布式应用的性能和能效。我们以前文研究的K-means算法作为异构分布式加速实例,为了降低异构分布式框架的通信开销,我们提出了异构分布式环境中的性能优化方法,能够为其他应用的设计优化提供指导。最后对提出的异构分布式计算框架进行了性能验证,实验结果表明,K-means算法在基于FPGA的Spark框架集群的计算性能比原生基于CPU的Spark框架集群的计算性能提升了3.5倍。本文从浮点运算单元、算法软硬件协同设计以及异构分布式计算框架几个方面从底层到上层对面向天文大数据处理的高效能计算系统设计和优化进行了研究,并且根据研究过程和实验结果,利用性能分析模型对系统性能进行了建模和分析,进一步对面向天文大数据处理的高效能计算系统设计优化策略进行更深入的分析和总结。本文中设计的原型系统和优化策略能够为SKA科学数据处理计算系统的设计提供较好的参考和优化方向选择。