0

我想分析我的并行代码(mpi 和 omp)

我发现 Callgrind 非常易于使用和分析(使用 Kcachegrind)串行代码,因为它可以为您提供在不同功能上花费的相对时间。

运行并行代码时它会给我什么?它会只监视主进程还是会汇总所有进程?

它可以检测死锁或一个进程正在等待另一个进程的位置吗?

在分析并行代码时是否有更好的工具可以使用?

4

1 回答 1

0

根据“ Valgrind 用户手册”,Valgrind 串行运行所有线程,详见Support for Threads。Callgrind 可以监控对功能的整体访问,但它的配置文件将不足。

关于 mpirun,有一个完整的部分描述了使用 MPI 的 Valgrind Memcheck 性能:4.9。使用 Valgrind 调试 MPI 并行程序,我不知道它对 Callgrind 的确切影响,但我觉得这种分析应该保持串行

于 2015-10-28T11:26:43.860 回答