gdb中的mpirun OpenFOAM并行应用程序

时间:2013-04-11 13:49:01

标签: debugging parallel-processing gdb openmpi

我正在试图通过OpenFOAM应用程序(在这种情况下,icoFoam,但这个问题通常适用于任何OpenFOAM应用程序。)

我想使用gdb逐步执行并行运行的分析(比方说,2个过程)。

要简单地并行启动应用,我输入:

mpirun -np 2 icoFoam -parallel

现在我想在gdb中逐步完成它。但我无法并行启动icoFoam并进行调试,因为我无法弄清楚如何在应用程序开始执行之前设置断点。

我知道我可以做的一件事是在MPI_Initialize之后插入一段代码(等待(和无限循环)),直到我更改gdb中的某个变量。然后我将并行运行应用程序,将gdb会话附加到每个PID,并愉快地调试。但我宁愿不必改变OpenFOAM源并重新编译。

那么,我怎样才能启动并行运行的应用程序,有些如何让它停止(比如在main的开头),然后在gdb中逐步执行它?所有这些都没有改变原始的源代码?

最诚挚的问候, 松糕。

1 个答案:

答案 0 :(得分:1)

You could try this resource

看起来正确的命令是:

mpirunDebug -np 2 xxxFoam -parallel