debugging - 如何调试 MPI 程序?

标签 debugging mpi

我有一个编译和运行的 MPI 程序,但我想逐步完成它以确保没有发生任何奇怪的事情。理想情况下,我想要一种将 GDB 附加到任何特定进程的简单方法,但我不确定这是否可行或如何实现。另一种方法是让每个进程将调试输出写入单独的日志文件,但这并没有真正提供与调试器相同的自由。

有更好的方法吗?你如何调试 MPI 程序?

最佳答案

正如别人所说,TotalView是这个的标准。但它会花费你一条胳膊和一条腿。

OpenMPI 站点有一个很棒的 FAQ on MPI debugging . FAQ 中的第 6 项描述了如何将 GDB 附加到 MPI 进程。通读全文,有一些很棒的提示。

但是,如果您发现要跟踪的进程太多,请查看 Stack Trace Analysis Tool (STAT) .我们在 Livermore 使用它来从潜在的数十万个正在运行的进程中收集堆栈跟踪,并将它们智能地呈现给用户。它不是一个全功能的调试器(一个全功能的调试器永远不会扩展到 208k 核),但它会告诉你哪些进程组在做同样的事情。然后,您可以在标准调试器中逐步查看每个组的代表。

关于debugging - 如何调试 MPI 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/329259/

相关文章:

multithreading - Visual Studio : How to breakpoint at a yet-unknown location?

在 C 中使用 MPI 编译 FFTW

multiprocessing - 将节点进程与 MPI 和 FORTRAN 一起分类

node.js - NodeJS调试报错: No such module: http_parser

c - MPI_send 和 MPI_receive 函数卡住了

c - 我不明白简单得可笑的 MPI_Send/Recv 问题

linux - MPI 在外部网络上运行

php - 引用 - 这个错误在 PHP 中意味着什么?

php - PHP解析/语法错误;以及如何解决它们

android - 无法在 Android Studio 2.3.3 中将调试器附加到 Android 进程