Ubuntu下Fortran程序性能分析实用指南
一 基础准备与快速计时
二 工具链与选择建议
| 工具 | 作用与输出 | 适用场景 | 关键要点 |
|---|---|---|---|
| gprof | 函数级“Flat profile”“Call graph”、调用次数、累计/自身时间 | 串行或简单并行(不含MPI/多进程) | 编译加 -pg;多文件需每个文件都加 -pg;运行生成 gmon.out;对内核态/库内耗时覆盖有限 |
| perf | 硬件/软件事件统计、热点函数、调用栈、火焰图 | CPU 瓶颈、缓存/分支预测、系统级视角 | 安装 linux-tools;常用:perf stat、perf record -g、perf report;可生成火焰图 |
| Valgrind Massif | 堆内存分配峰值、分配调用栈 | 内存分配与缓存友好性、内存膨胀定位 | 使用 –tool=massif;ms_print 查看;会显著变慢,适合小数据集或短作业 |
| eBPF/bpftrace/bcc | 内核/系统调用/网络等系统级追踪 | 系统调用开销、I/O 瓶颈、调度抖动 | 轻量动态追踪;需较新内核与工具链 |
| Intel 工具链 | 针对 Intel 架构的高级分析 | 使用 Intel 编译器/库的生产环境 | 可用 Intel VTune 等做热点与硬件事件分析(需安装 Intel 工具) |
| 上述工具在 Ubuntu 均可获得;gprof/Valgrind 偏用户态,perf/eBPF 偏系统与硬件视角,可按问题选择组合使用。 |
三 逐步操作示例
四 并行与常见问题处理