在 totalview 中访问 PETSc 数据?

计算科学 并行计算 正则 宠物
2021-12-02 15:50:09

是否可以从 totalview 中查看存储在各种 PETSc 数据类型中的数据?

通常,PETSc 类型是用作指向实际数据的指针的整数(显然我对此的理解很薄弱)。因此,在调试和故障排除时,我的工作流程看起来像 1) 编辑源以将 PETSc 数据保存到文件 2) 重新编译 3) 运行并检查输出。

这很慢。

直接从像 totalview 这样的 GUI 并行调试器查看这些数据会非常好。

顺便说一句,我正在使用 fortran 90。

1个回答

PETSc 甚至推荐 TotalView作为并行调试器,所以你应该可以使用它。但是,您必须确保您使用的是带有调试符号的库版本:

大多数 PETSc 代码的代码开发应该在一个处理器上完成;因此,使用标准调试器(例如dbxgdbxdbx等)就可以了。对于调试并行运行,如果您的机器上可用,我们建议使用 Totalview。否则,您可以在单独的调试器中运行每个进程;这与使用并行调试器不同,但在大多数情况下并没有那么糟糕。PETSc 运行时选项-start_in_debugger [-display xdisplay:0]将为每个进程打开单独的窗口和调试器。您应该使用库的调试版本进行调试(./configure使用附加选项--with-debugging(默认)运行)。

尽管 TotalView 是一个非常好的并行调试器,但更常见的串行调试器可能会更好地为您服务。特别是因为调试通常是在相对较小的示例上完成的。因此,gdb除非我对并行功能的调试感兴趣(比如我自己编写的一些 MPI 通信),否则我会在大部分调试中使用。