一种基于eBPF的并行程序在线性能数据采集方法技术

技术编号:35575122 阅读:45 留言:0更新日期:2022-11-12 16:00
本发明专利技术公开了一种基于eBPF的并行程序在线性能数据采集方法,通过利用eBPF在节点机器中嵌入eBPF并行程序性能数据采集模块,对并行程序的运行时行为进行监测,采集并行程序的性能数据;流处理模块将采集到的性能数据进行流式处理并传输;可视化模块接收到性能数据后进行可视化处理并展示,以便观测程序的运行时行为。整个过程中利用eBPF的低扰动性和可编程性来作为性能数据的采集模块,可以在不影响并行程序运行时行为的情况下,实现对并行程序的运行时监控,以便观察程序的执行状态,及时发现并行程序的异常行为,在不用重新运行程序的情况下进行性能分析。况下进行性能分析。况下进行性能分析。

【技术实现步骤摘要】
一种基于eBPF的并行程序在线性能数据采集方法


[0001]本专利技术涉及并行程序监控领域,特别是涉及一种基于eBPF技术的并行程序在线性能数据采集方法。

技术介绍

[0002]尽管超级计算机不断发展,峰值性能不断提高,然而并行程序从超级计算机上获得的实际性能提升却增长缓慢,实际性能与峰值性能的差距也越来越明显。并行程序性能不仅受到计算机系统硬件性能的限制,更受到并行程序自身设计优劣的影响,其中包括通信模式是否高效、负载是否均衡等。
[0003]并行计算并没有成熟的设计实现理论,没有成型的并行计算模型指导实现。为了获得好的性能,设计人员需要平衡处理器速度、内部网络速度和I/O速度,需要大量的经验指导。相比于串行算法,并行算法需要包含互斥机制,增加了语法和语义的复杂性;处理器间需要负载均衡才能充分释放计算性能;数据与任务都需要在进程间进行划分,以减少进程间通信。
[0004]因此,为高性能并行计算机提供有效的并行程序分析工具,对帮助用户理解并行程序行为、优化并行程序性能具有重要意义。利用性能分析工具,可以检测并定位并行程序性能问题本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于eBPF的并行程序在线性能数据采集方法,其特征在于,包括如下步骤:(1)通过eBPF编译器集合bcc编写并行程序的性能数据采集模块,并后台运行,等待并行程序的执行;(2)执行并行程序,获取并行程序中所有并行进程的进程号PID;(3)在并行程序执行过程中,性能数据采集模块利用eBPF中用户动态探针uprobe开始拦截并行程序库函数的运行,利用函数参数和返回值获取宏PT_REGS_*内置函数获取并行程序库函数执行时的参数信息,将库函数的进入和退出行为、参数信息、时间戳标记为并行程序执行行为的性能数据,利用eBPF的环形缓冲区及时地将性能数据传输给流处理模块进行处理;(4)流处理模块收集所述性能数据进行流式处理,根据并行程序库函数的不同,将性能数据写入不同的消息队列,根据执行时间和发送接收标签进行性能数据的匹配,并根据执行时间计算并行程序库函数在所有并行进程中的执行情况,识别出其中的低效操作,并传输给可视化模块;(5)可视化模块将收集到的并行程序性能数据进行在线可视化展示。2.根据权利要求1所述的基于eBPF的并行程序在线性能数据采集方法,其特征在于,所述步骤(1)具体包含以下步骤:(11)通过bcc编写bpf代码,作为插桩模块在并行程序运行时,获取并行程序执行行为的性能数据;(12)编写bcc用户代码,利用eBPF MAP接收插桩模块采集到的性能数据;(13)执行性能数据采集模块,并在后台运行,为插桩模块在并行程序库函数处进行注册。3.根据权利要求1所述的基于eBPF的并行程序在线性能数据采集方法,其特征在于,所述步骤(3)具体包含以下步骤:(31)通过性能数据采集模块获取所有并行程序中并行进程的PID和并行程序内部进程号rank,将PID和rank的关联信息保存在eBPF MAPs中;(32)利用eBPF的用户动态探针uprobe在并行程序库函数执行前,通过用户堆栈保存信息的数据结构pt_regs拦截函数的执行,利用函数参数获取宏PT_REGS_PARM内置函数从pt_regs数据结构中获取函数的参数数据,基于进程PID和rank获取并行程序库函数的开始执行状态和开始时间;(33)利用eBPF uretprobe在并行程序函数执行结束时,通过数据结构pt_regs拦截函数的完成,利用函数返回值获取宏PT_REGS_RC内置函数从pt_regs数据结构中获取函数的返回数据,基于进程PID和rank获取并行程序库函数的结束执行状态和结束时间;(34)通过采集并行程序库函数的开始和结束状态的数据,获得并行程序的性能数据,性能数据...

【专利技术属性】
技术研发人员:李云春裴俊鹏李巍
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

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

1