Mik*_*ail 6 c++ parallel-processing performance openmp
我有一个由OpenMP并行化的循环,但由于任务的性质,有4个critical子句.
critical
什么是最好的方式来分析加速,找出哪些关键条款(或可能非关键(!))占用循环内的最多时间?
我使用Ubuntu 10.04和g ++ 4.4.3
Jon*_*rsi 5
Scalasca是一个很好的工具,用于分析 OpenMP(和 MPI)代码并分析结果。 Tau也非常好用,但使用起来却困难得多。英特尔工具,如vtune,也很好,但非常昂贵。
Dav*_*id 5
Arm MAP具有 OpenMP 和 pthreads 分析功能,无需检测或修改源代码即可工作。您可以看到同步问题以及线程在源行级别上花费时间的位置。OpenMP分析博客文章值得一读。
MAP 广泛用于高性能计算,因为它还分析 MPI 等多进程应用程序。
NGa*_*ney 3
OpenMP 包括用于测量时序性能的函数 omp_get_wtime() 和 omp_get_wtick() (此处的文档),我建议使用这些函数。
否则尝试分析器。我更喜欢 google CPU profiler,可以在这里找到。
还有这个答案中描述的手动方式。
归档时间:
14 年,2 月 前
查看次数:
7630 次
最近记录:
7 年,7 月 前