如何:调试远程群集应用程序
本主题适用于:
版本 |
Visual Basic |
C# |
F# |
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”(混合代码)**)。
关闭**“项目 属性”**对话框。
从**“工具”菜单中选择“选项”**。
在**“选项”对话框中选择“调试”节点,再选择“常规”**类别。
找到**“一个进程中断时也中断所有其他进程”**复选框。 根据调试会话中您需要的行为选择或清除该复选框。 (因为这是“工具”选项,所以此设置在未更改前将对所有项目有效。)有关更多信息,请参见如何:中断执行。
单击**“确定”关闭“选项”**对话框。
调试并行应用程序
在**“调试”菜单上,单击“启动”**以开始进行调试。
如果已正确设置项目,应用程序将开始在群集中的所有计算机上运行。
如果已在代码中设置了断点,执行会在第一个断点处中断。
在**“调试”菜单上,单击“窗口”,然后单击“进程”**。
**“进程”**窗口。 您可以使用此窗口设置活动进程。 若要仅单步执行一个活动进程,请使用此窗口顶部的单步执行按钮。
在调试并行应用程序时可使用数据提示来获取变量值。 您在数据提示中看到的变量值将基于在**“进程”**窗口中设置的当前活动进程。