我最近开发的应用程序使用多个处理器,这些处理器通过消息传递接口标准进行通信,而某些部分涉及多个异步运行的线程(std::async
)。
我正在运行Ubuntu 12.04 x86,g ++ - 4.6.3与openMPI结合使用。
将-p -g -pg
添加到编译器标志并运行gprof不会产生任何有用的输出,它基本上表示所有内容都已立即完成。
如何描述此类程序?
答案 0 :(得分:1)
我建议Allinea MAP为此,由我的雇主开发。它描述了MPI应用程序,并向您显示源代码中的应用程序时间。有一些非常有用的内存使用图表,MPI通信和计算成本 - 它允许您轻松放大问题区域以获得性能。
您无需重新编译应用程序即可开始使用它:它会在运行时自动添加分析。
这是商业软件 - 但是有30天的试用期。
答案 1 :(得分:0)
对于多线程程序,不需要带出大型MPI配置文件枪。我使用英特尔的VTune,它在分析多个线程方面表现非常出色。你可以试用30天。