CentOS 上常用的 Fortran 性能测试工具与用法
一、应用层性能剖析工具
gfortran -pg -O2 -g -o app app.f90 && ./app && gprof app gmon.out。多文件/并行需保证所有文件均带**-pg**;MPI 场景下每个进程会生成各自的 gmon.out,需分别分析。局限性是对大量时间在内核态的程序不准确。vtune -collect hotspots ./my_program 查看热点函数与调用栈;对 OpenMP/MPI 应用可启用相应分析类型(如 hpc-performance、memory-access 等)定位并行与访存瓶颈。适合需要细粒度硬件利用率与并行效率诊断的场景。valgrind --tool=massif ./my_program,用 ms_print massif.out.* 查看堆分配随时间变化;线程错误与数据竞争:valgrind --tool=helgrind ./my_program;通用性能与调用图:valgrind --tool=callgrind ./my_program(配合 callgrind_annotate/kcachegrind 可视化)。注意 Valgrind 会显著降低运行速度,建议用小数据集或短作业验证。二、系统级与并行基准工具
sysbench cpu --threads=N --events=... run 评估纯计算吞吐。sysbench memory --memory-block-size=... --memory-total-size=... run 评估内存带宽与访问延迟。fio --ioengine=libaio --bs=4k --direct=1 --rw=randread --size=1G --runtime=60 --name=randread ./testfile 评估随机/顺序 I/O 的 IOPS/吞吐量/延迟。iperf -s(服务端)与 iperf -c <server_ip>(客户端)评估带宽与抖动。三、快速上手与结果判读
top/htop/vmstat)与剖析工具交叉验证。