littlebot
Published on 2025-04-17 / 5 Visits
0

【源码】基于C语言MPI框架的PerfHound性能分析工具

项目简介

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】