Debugging MPI程序的调试与测试

Debugging MPI程序的调试与测试,debugging,testing,mpi,Debugging,Testing,Mpi,MPI程序是否有良好的调试和测试机制 现在,我唯一需要诊断MPI程序的工具就是使用“cout有两种流行的MPI商业调试器:和。一些很好的一般信息收集在 您可能还对MPI正确性检查工具感兴趣,例如。这将帮助您在程序使用MPI的方式中查找错误。正如Zulan已经提到的,有优秀的并行调试器,如DDT和Totalview 要评测应用程序并调试/优化/可视化MPI任务之间的交互,可以使用和等工具 对于测试框架,我在过去的MPI项目中使用过标准测试框架(如)。但是,它确实需要一个巧妙的技巧来获得合理的输出,

MPI程序是否有良好的调试和测试机制


现在,我唯一需要诊断MPI程序的工具就是使用“cout有两种流行的MPI商业调试器:和。一些很好的一般信息收集在


您可能还对MPI正确性检查工具感兴趣,例如。这将帮助您在程序使用MPI的方式中查找错误。

正如Zulan已经提到的,有优秀的并行调试器,如DDT和Totalview

要评测应用程序并调试/优化/可视化MPI任务之间的交互,可以使用和等工具

对于测试框架,我在过去的MPI项目中使用过标准测试框架(如)。但是,它确实需要一个巧妙的技巧来获得合理的输出,否则当组合显示时,来自不同进程的标准输出会被弄乱。例如,假设您在本地启动作业:

mpiexec -np 4 xterm -e "./your_prog arg1 arg2; read"
这将通过
xterm
会话启动每个mpi任务,因此每个任务的stdout将显示在其自己的终端中。尾部的
read
可确保终端在运行结束后保持打开状态。一旦关闭,将在每个终端上快速输入


同样的技术也可用于通过标准工具(如gdb、valgrind等)运行每个MPI任务。有些人称之为穷人的调试器方法。

正确性工具可以与交互式并行调试很好地集成-Allinea的MPI调试器有一个插件系统,可以让您使用(比如)运行MARMOT或Intel Message Checker。当正确性插件检测到错误时,它会显示回DDT中,然后让您在进程仍处于活动状态的情况下调查错误的真正含义,这改进了通常的事后分析,如果您没有并行调试器,将提供这种分析


除了MARMOT和Intel的工具,还有一些新项目,如(由杜德累斯顿大学和LLNL大学开发)或(犹他大学)

您也可以尝试SMPI,模拟MPI。这是一个开源项目(我参与其中),旨在在分布式系统模拟器上重新实现完整的MPI标准

SMPI可以运行许多未经修改的MPI应用程序,并且可以相当准确地预测应用程序的运行时,前提是您对硬件平台有准确的描述。

您可以在此框架中对您的MPI应用程序进行正式评估(该部分不太成熟,而且正在进行中)。

您可以使用免费的visual studio代码。请参见我的答案