本发明属于天文数据高性能计算,具体涉及一种脉冲星傅立叶域加速搜索流水线并行方法和装置。
背景技术:
1、脉冲星是宇宙中致密的中子星,具有高速自转和强烈的电磁辐射特性,因其稳定的自转周期成为天文观测中的重要目标。脉冲星的发现为宇宙学和天体物理学提供了丰富的数据,帮助科学家们深入了解引力波、广义相对论等关键物理现象。然而,随着观测技术的不断进步,尤其是高灵敏度望远镜如fast(五百米口径球面射电望远镜)的投入使用,产生的数据量急剧增长,脉冲星搜索需要处理海量的观测数据,带来了前所未有的挑战,而传统的时域搜索方法虽然在一定程度上能够识别出单个脉冲星的信号,但难以应对双星系统的复杂性和快速搜索的需求,因此开发新的搜索方法至关重要。
2、为了应对上述挑战,傅立叶域加速搜索(fdas)算法应运而生。该算法通过将观测数据转换到频域进行处理,利用快速傅立叶变换(fft)等数学工具,显著提高了脉冲星搜索的效率。当前,presto项目作为fdas算法的代表性方案之一,已经在实践中展现出了其强大的搜索能力,然而其在gpu上的实现存在显著的性能瓶颈,主要问题在于:现有基于命令行的多进程方案在gpu上的执行效率并不理想,由于gpu资源的分配和管理不够高效,导致gpu利用率低下,计算延迟显著增加,整体系统的吞吐量无法达到预期;同时,由于性能波动大且资源消耗过于集中,使得搜索过程中不仅需要消耗大量计算资源,还带来了高昂的运行成本。这些问题严重限制了presto项目及其类似方案在大规模天文数据处理中的应用潜力。
3、随着异构计算技术的快速发展,尤其是cpu与gpu协同计算模式的普及,为脉冲星搜索等计算密集型任务提供了新的解决思路。然而,现有的fdas算法尚未充分利用其性能优势。当前技术在设计上没有充分结合应用层特性和底层硬件架构的优势,导致在实际运行过程中,系统性能未被最大化利用,计算效率和资源利用率仍有较大提升空间。
4、因此,为了克服现有方案中的性能瓶颈问题,充分挖掘异构计算架构的潜力,实现更高效、更经济的脉冲星搜索,有必要对fdas算法进行深入的重新设计,优化数据处理流程,提高算法的并行度和执行效率。这不仅将推动脉冲星研究的深入发展,还将为宇宙学和天体物理学的进步贡献重要力量。
技术实现思路
1、鉴于上述,本发明的目的是提供一种脉冲星傅立叶域加速搜索流水线并行方法和装置,通过设计多进程中和各进程中的多线程架构对天文数据进行并行处理,能够以若干倍性能优势的提升脉冲双星搜索进程,同时支持利用多gpu并行加速,可数几十倍的提升从fast天文数据中搜索该类型天体的速度。
2、为实现上述发明目的,本发明提供的技术方案如下:
3、第一方面,本发明实施例提供的一种脉冲星傅立叶域加速搜索流水线并行方法,包括以下步骤:
4、将接收的天文数据分配到数量可配置的多个并行进程;
5、将每个进程分为三个串行子线程,利用第一cpu子线程对分配到的天文数据进行预处理,利用gpu子线程读取预处理后的数据并在gpu上执行加速计算得到候选信号数据,利用第二cpu子线程读取候选信号数据并进行后处理和结果汇总,同时利用多个并行进程架构的队列和队列阻塞锁来同步各子线程之间的任务状态;
6、通过监控反馈动态调整处理流程中的进程数量;
7、实时记录任务状态和多个并行进程的计算结果并处理异常情况。
8、具体地,所述利用第一cpu子线程对分配到的天文数据进行预处理,包括:
9、在第一cpu子线程中,对分配到的天文数据进行包括创建并初始化谐波和子谐波信息结构体的预处理,其中,谐波和子谐波信息结构体中包括每个谐波的频域数据分布及其内存需求。
10、具体地,所述利用gpu子线程读取预处理后的数据并在gpu上执行加速计算得到候选信号数据,包括:
11、在gpu子线程中,读取第一cpu子线程预处理得到的谐波和子谐波信息结构体,根据预定义的任务参数,在gpu上分配资源并执行包括傅立叶变换和候选信号数据生成的加速计算,得到候选信号数据。
12、具体地,所述利用第二cpu子线程读取候选信号数据并进行后处理和结果汇总,包括:
13、在第二cpu子线程中,读取gpu子线程加速计算得到的候选信号数据,对候选信号数据进行包括排序和筛选的后处理并格式化输出得到结果汇总文件。
14、具体地,预定义的任务参数包括:
15、加速搜索的最大z值、加速搜索的最大w值、信号检测的阈值、加速搜索中使用的谐波数量、以及一次任务处理的数据量,其中,z值表示傅立叶窗口的宽度,w值表示加速搜索深度参数。
16、具体地,任务状态包括:
17、任务id、当前处理阶段、执行的进程id、任务的开始时间和最近活跃时间、以及任务完成的时间戳或超时状态。
18、具体地,所述通过监控反馈动态调整处理流程中的进程数量,包括:
19、在检测到任务执行超时时,将执行超时的任务重新分配到任务队列中;
20、对超时任务所在的原进程进行处理,包括:设定进程的停止标志以终止原进程,监控进程的退出状态并在设定的时间内等待进程正常退出,若进程未在预定时间内退出则强制终止进程,在原进程退出后重新创建一个新进程并将新进程加入到工作进程池中以保证工作进程池中进程数量达到指定数量。
21、具体地,所述方法还包括:
22、提供调试模式和非调试模式选择,在非调试模式下重定向标准输出除去冗余任务执行日志记录,在调试模式下保留详细的任务执行日志并根据详细的任务执行日志进行监控和排查问题。
23、第二方面,为实现上述发明目的,本发明实施例还提供了一种脉冲星傅立叶域加速搜索流水线并行装置,利用上述的脉冲星傅立叶域加速搜索流水线并行方法实现,包括:任务分配模块、任务执行模块、任务监控模块和任务记录模块;
24、所述任务分配模块用于将接收的天文数据分配到数量可配置的多个并行进程;
25、所述任务执行模块用于将每个进程分为三个串行子线程,利用第一cpu子线程对分配到的天文数据进行预处理,利用gpu子线程读取预处理后的数据并在gpu上执行加速计算得到候选信号数据,利用第二cpu子线程读取候选信号数据并进行后处理和结果汇总,同时利用多个并行进程架构的队列和队列阻塞锁来同步各子线程之间的任务状态;
26、所述任务监控模块用于通过监控反馈动态调整处理流程中的进程数量;
27、所述任务记录模块用于实时记录任务状态和多个并行进程的计算结果并处理异常情况。
28、第三方面,为实现上述发明目的,本发明实施例还提供了一种电子设备,包括存储器和一种或多种处理器,所述存储器用于存储计算机程序,所述处理器用于当执行所述计算机程序时,实现上述的脉冲星傅立叶域加速搜索流水线并行方法。
29、与现有技术相比,本发明具有的有益效果至少包括:
30、(1)通过多进程并行化处理实现隔离,使得每个进程都拥有独立的内存空间和资源,从而在多个进程之间有效地避免了线程冲突,确保了线程安全。这种隔离机制不仅提高了程序的稳定性,还为复杂数据处理提供了可靠的运行环境。
31、(2)通过在每个进程中设置多个串行子线程,并巧妙地利用流水线的工作方式,实现了gpu资源的无等待利用,这种方式使得gpu能够持续不断地接收到处理任务,从而大大提高了gpu的资源使用率。此外,流水线的方式还优化了任务分配和调度,进一步提升了整体的处理效率。
32、(3)由于天文数据结构的复杂性,只通过多进程进行复杂数据处理和交换会出现共享内存的问题,而通过本发明提供的多进程以及每个进程中采用多个子线程处理,不仅充分利用了多核处理器的并行计算能力,还通过合理的任务划分和线程间通信机制,有效地避免了共享内存的问题,从而显著提高了数据处理效率,降低了系统开销,并增强了程序的稳定性和可扩展性。
1.一种脉冲星傅立叶域加速搜索流水线并行方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的脉冲星傅立叶域加速搜索流水线并行方法,其特征在于,所述利用第一cpu子线程对分配到的天文数据进行预处理,包括:
3.根据权利要求2所述的脉冲星傅立叶域加速搜索流水线并行方法,其特征在于,所述利用gpu子线程读取预处理后的数据并在gpu上执行加速计算得到候选信号数据,包括:
4.根据权利要求1或3所述的脉冲星傅立叶域加速搜索流水线并行方法,其特征在于,所述利用第二cpu子线程读取候选信号数据并进行后处理和结果汇总,包括:
5.根据权利要求3所述的脉冲星傅立叶域加速搜索流水线并行方法,其特征在于,预定义的任务参数包括:
6.根据权利要求1所述的脉冲星傅立叶域加速搜索流水线并行方法,其特征在于,任务状态包括:
7.根据权利要求1所述的脉冲星傅立叶域加速搜索流水线并行方法,其特征在于,所述通过监控反馈动态调整处理流程中的进程数量,包括:
8.根据权利要求1所述的脉冲星傅立叶域加速搜索流水线并行方法,其特征在于,所述方法还包括:
9.一种脉冲星傅立叶域加速搜索流水线并行装置,利用权利要求1-8任一项所述的脉冲星傅立叶域加速搜索流水线并行方法实现,其特征在于,包括:任务分配模块、任务执行模块、任务监控模块和任务记录模块;
10.一种电子设备,包括存储器和一种或多种处理器,所述存储器用于存储计算机程序,其特征在于,所述处理器用于当执行所述计算机程序时,实现权利要求1-8任一项所述的脉冲星傅立叶域加速搜索流水线并行方法。
