Fortran + openMP的简单分析?

Jon*_*röm 2 profiling fortran hpc openmp

我一直在使用gprof基准测试代码,但自从我开始并行化后,我发现gprof它没有提供有用的输出.

我如何描述或做一些有助于找到瓶颈的事情?

我听说过的ScalascaTAU,但他们似乎有点大材小用.

Zul*_*lan 5

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

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

为您的应用程序添加前缀:

perf record ./your-program your-parameter
perf report
Run Code Online (Sandbox Code Playgroud)

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

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

免费工具将是:

  • HPCToolkit:最简单易用,因为它只使用采样,因此无需重新编译应用程序
  • 用于记录的分数-P和用于分析概况的多维数据集(这些网站似乎暂时下降)
  • 牛头