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

更新: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 项目

  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. 在“调试”菜单上,单击“窗口”,然后单击“进程”。

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

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

请参见

任务

如何:使用进程窗口

概念

调试器安全

其他资源

安装远程调试