我想知道如何使用ltrace来获取mpi应用程序的库函数调用,但简单地说,ltrace不工作,我的mpirun无法成功。有什么想法吗?
发布于 2014-09-05 07:54:42
您应该能够简单地使用:
$ mpiexec -n 4 -other_mpiexec_options ltrace ./executable但这将造成一个巨大的混乱,因为来自不同级别的输出将合并。一个更好的选择是将ltrace的输出重定向到每个级别的单独文件。通过一些MPI实现,获得排名是很容易的。例如,Open导出了环境变量OMPI_COMM_WORLD_RANK中的世界排名。以下包装器脚本将有所帮助:
#!/bin/sh
ltrace --output trace.$OMPI_COMM_WORLD_RANK $*用法:
$ mpiexec -n 4 ... ltrace_wrapper ./executable这将产生4个跟踪文件,每个级别一个:trace.0、trace.1、trace.2和trace.3。
对于MPICH和其他MPI实现,基于它并使用Hydra导出,必须修改PMI_RANK和上面给定的脚本,并将OMPI_COMM_WORLD_RANK替换为PMI_RANK。还可以编写一个通用的包装器,用于MPI实现的两个家族。
https://stackoverflow.com/questions/25678553
复制相似问题