如何:调试远程群集应用程序
更新:2007 年 11 月
本主题适用于:
版本 |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
速成版 |
![]() |
![]() |
![]() |
![]() |
标准版 |
![]() |
![]() |
![]() |
![]() |
专业团队版 |
![]() |
![]() |
![]() |
![]() |
表格图例:
![]() |
适用 |
![]() |
不适用 |
![]() |
默认情况下隐藏的一条或多条命令。 |
Visual Studio 现在支持 MPI 群集调试。此功能允许调试在计算机群集上运行的、通过消息传递接口 (MPI) 通信的并行程序。
MPI 调试的前提条件
必须在群集中的每一台计算机上安装和配置 MPI。MPI 随 Windows Server 2003 Compute Cluster Edition 提供。此外还存在其他 MPI 实现。
MPIShim.exe 必须安装在群中集的每一台计算机上。MPIShim 附带在 Visual Studio 2005 中,并与远程调试组件一起安装以启用并行调试。MPIShim 可安装在任何目录中,但在群集中的每一台计算机必须是同一个目录。一个可能的路径是:
c:\windows\system32\mpishim
另一种方法是,可以将它安装在调试目标本地的目录中。
远程调试监视器 (msvsmon) 必须位于群集的每一台计算机上。请参见 如何:运行远程调试监视器。
Visual Studio 主机(用来进行调试的计算机)必须使用具有调试群集计算机的适当特权的帐户设置。(参见 远程调试权限。)
准备进行 MPI 调试的 Visual Studio 项目
在 Visual Studio 中打开包含并行应用程序的解决方案。
在“解决方案资源管理器”中,右击该项目并从快捷菜单中选择“属性”。
在“项目 属性”对话框中选择“调试”。
在“要启动的调试器”列表框中,选择“MPI 群集调试”。
在“MPIRun 命令”框中输入群集计算机上 MPIRun 或 MPIExec(启动 MPI 应用程序)的位置。例如:
c:\windows\system32\mpiexec.exe
在“MPIRun 参数”框中输入要传递到 MPIRun 或 MPIExec 的参数。例如:
-np 2
在“MPIRun 工作目录”框中输入 MPIRun 或 MPIExec 的工作目录。例如:
c:\temp
在“应用程序命令”框中,输入 MPI 将在每台群集计算机上执行的应用程序(也就是在 Visual Studio 中打开了其项目的应用程序)的路径。路径可以是群集中每台计算机上的共享或本地路径。如果是本地路径,每台计算机上的路径必须相同。例如:
$(TargetPath)
在“应用程序参数”框中,输入所有希望传递给应用程序的参数。
在“MPIShim 位置”框中,输入 MPIShim.exe 的路径。例如:
c:\windows\system32\mpishim
您可以将“调试器类型”列表框设置为“自动”(默认值),则调试器会为正在执行的代码选择正确的调试器类型。您也可以为您的应用程序选择正确的类型(“native”(本机)、“managed”(托管)或“mixed code”(混合代码))。
关闭“项目 属性”对话框。
从“工具”菜单中选择“选项”。
在“选项”对话框中选择“调试”节点,再选择“常规”类别
找到“一个进程中断时也中断所有其他进程”复选框。根据调试会话中您需要的行为选择或清除该复选框。(因为这是“工具”选项,所以此设置在未更改前将对所有项目有效。) 有关更多信息,请参见如何:中断执行。
单击“确定”关闭“选项”对话框。
调试并行应用程序
在“调试”菜单上,单击“启动”以开始进行调试。
如果已正确设置项目,应用程序将开始在群集中的所有计算机上运行。
如果已在代码中设置了断点,执行会在第一个断点处中断。
在“调试”菜单上,单击“窗口”,然后单击“进程”。
“进程”窗口。您可以使用此窗口设置活动进程。若要仅单步执行一个活动进程,请使用此窗口顶部的单步执行按钮。
在调试并行应用程序时可使用数据提示来获取变量值。您在数据提示中看到的变量值将基于在“进程”窗口中设置的当前活动进程。