项目简介
PerfHound是一款用于并行代码性能分析以及超算集群性能波动探测的工具,它基于C语言和MPI(Message Passing Interface)框架开发。通过代码插桩方式读取性能计数器,支持自定义插桩位置标注,同时运用rdtsc(x86)和多种计时器计时。
项目的主要特性和功能
- 代码插桩:借助代码插桩读取性能计数器。
- 自定义标注:支持对代码插桩位置进行自定义标注,方便分析和优化特定代码段。
- 多计时器支持:采用rdtsc(x86)和多种计时器计时,提升计时精度与灵活性。
- 并行处理:利用MPI框架开展并行处理,提高数据收集和分析效率。
- 性能数据收集:可收集处理器事件数据,如指令退休数、微操作分发数等,用于性能分析与优化。
- 数据输出:将性能数据输出为CSV文件,便于后续数据分析和可视化。
安装使用步骤
环境准备
确保已安装MPI和C语言编译环境,如GCC或Clang。
编译与安装
- 复制项目代码:
bash git clone https://git.computing.sjtu.edu.cn/keymorrislane/perfhound cd perfhound/src
- 编译PerfHound API:
bash make
- 编译并加载内核模块(根据架构选择x86或ARMv8)。
运行测试
- 修改被测代码,例如
stream_mpi.c
。 - 编译并运行测试代码:
bash cd samples && make
- 运行后,进入数据文件夹
./ph_data
,可获取收集到的性能数据。
性能数据分析
使用pfh_interval2csv.py
等工具处理和分析性能数据,生成CSV文件或进行可视化展示。
清理
在测试和分析完成后,清理生成的临时文件和输出文件。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】