Fortran + openMP的简单分析?

时间:2016-12-09 22:03:15

标签: fortran profiling openmp hpc

我一直在使用gprof对代码进行基准测试,但自从我开始并行化后,我意识到gprof没有提供有用的输出。

如何分析或做一些有助于找到瓶颈的事情?

我听说过ScalascaTAU,但他们似乎有些矫枉过正。

2 个答案:

答案 0 :(得分:5)

最简单易用的工具是perf。它可以在任何Linux系统上轻松be installed,并且可以很好地与OpenMP或其他线程应用程序配合使用。

只需在命令行上运行sudo perf top即可查看实时性能。这将告诉您当前正在消耗最多CPU资源的函数和源代码行,如top对整个进程的影响。

使用以下命令添加应用程序:

perf record ./your-program your-parameter
perf report

将在函数和源代码行的基础上显示配置文件。调整perf的参数很多,例如通过使用-g启用调用图跟踪。

但是,虽然支持线程,但您无法轻易区分它们。所以你不知道哪个线程显示了什么性能特征。为此,您应该使用更专业的HPC工具,即使它们看起来有点矫枉过正。您必须考虑分析并行性能并不简单。无论你使用什么工具。

免费工具将是:

  • HPCToolkit:最简单的用法,因为它只使用了采样,因此无需重新编译应用程序
  • Score-P用于录制,Cube用于分析个人资料(这些网站似乎暂时不合时宜)
  • Tau

答案 1 :(得分:0)

如果您可以访问英特尔商业软件,则可以使用几种非常有用的工具。使用Intel Vtune amplifier,您可以检查串行运行的热点以及核心的有效使用情况(在图像中为24核openMP运行的摘要图表)enter image description here