如何:调试远程群集应用程序

本主题适用于:

版本

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 项目

  1. 在 Visual Studio 中打开包含并行应用程序的解决方案。

  2. 在**“解决方案资源管理器”中,右击该项目并从快捷菜单中选择“属性”**。

  3. 在**“项目 属性”对话框中选择“调试”**。

  4. 在**“要启动的调试器”列表框中,选择“MPI 群集调试”**。

  5. 在**“MPIRun 命令”**框中输入群集计算机上 MPIRun 或 MPIExec(启动 MPI 应用程序)的位置。 例如:

    c:\windows\system32\mpiexec.exe

  6. 在**“MPIRun 参数”**框中输入要传递到 MPIRun 或 MPIExec 的参数。 例如:

    -np 2

  7. 在**“MPIRun 工作目录”**框中输入 MPIRun 或 MPIExec 的工作目录。 例如:

    c:\temp

  8. 在**“应用程序命令”**框中,输入 MPI 将在每台群集计算机上执行的应用程序(也就是在 Visual Studio 中打开了其项目的应用程序)的路径。 路径可以是群集中每台计算机上的共享或本地路径。 如果是本地路径,每台计算机上的路径必须相同。 例如:

    $(TargetPath)

  9. 在**“应用程序参数”**框中,输入所有希望传递给应用程序的参数。

  10. 在**“MPIShim 位置”**框中,输入 MPIShim.exe 的路径。 例如:

    c:\windows\system32\mpishim

  11. 您可以将**“调试器类型”列表框设置为“自动”(默认值),则调试器会为正在执行的代码选择正确的调试器类型。 您也可以为您的应用程序选择正确的类型(“native”(本机)“managed”(托管)“mixed code”(混合代码)**)。

  12. 关闭**“项目 属性”**对话框。

  13. 从**“工具”菜单中选择“选项”**。

  14. 在**“选项”对话框中选择“调试”节点,再选择“常规”**类别。

  15. 找到**“一个进程中断时也中断所有其他进程”**复选框。 根据调试会话中您需要的行为选择或清除该复选框。 (因为这是“工具”选项,所以此设置在未更改前将对所有项目有效。)有关更多信息,请参见如何:中断执行

  16. 单击**“确定”关闭“选项”**对话框。

调试并行应用程序

  1. 在**“调试”菜单上,单击“启动”**以开始进行调试。

    如果已正确设置项目,应用程序将开始在群集中的所有计算机上运行。

    如果已在代码中设置了断点,执行会在第一个断点处中断。

  2. 在**“调试”菜单上,单击“窗口”,然后单击“进程”**。

    **“进程”**窗口。 您可以使用此窗口设置活动进程。 若要仅单步执行一个活动进程,请使用此窗口顶部的单步执行按钮。

    在调试并行应用程序时可使用数据提示来获取变量值。 您在数据提示中看到的变量值将基于在**“进程”**窗口中设置的当前活动进程。

请参见

任务

如何:使用进程窗口

概念

调试器安全

其他资源

安装远程调试