为 MPI 群集调试程序配置属性

MPI 群集调试程序的配置属性可以用来定义如何运行您的调试会话。此信息用于以下任务:

  • 选择要在其中运行调试会话的群集和节点

  • 指定要运行的进程数

  • 指定部署信息

  • 指定调试前和调试后脚本

下表描述了 MPI 群集调试程序的配置属性:

MPI 群集调试程序配置属性

属性 描述 默认值

运行环境

指定在群集上启动调试程序时要使用的头节点,要启动的 MPI 进程数,以及每个计算节点的进程分配(可选)。

要请求特定节点并有选择地分配进程,请从“运行环境”下拉列表中选择“编辑 Hpc 节点”。此操作将打开“节点选择器”对话框。有关其他考虑事项,请参阅特定节点选择和 -hosts 参数。

或者指定 localhost/<number of processes>以从本地启动调试程序。

Dd560807.note(zh-cn,VS.100).gif注意:
此属性中指定的资源选项将覆盖作业描述文件中指定的所有资源分配。

localhost/1

部署目录

指定在调试程序启动时项目输出文件将被复制的目录。此目录通常位于群集头节点上,并且必须是可由参与调试会话的所有计算节点读取的网络共享目录,例如:

当 HPC Pack 2008 包安装到头节点上时,将创建 CcpSpoolDir 目录。

如果部署目录不存在,并且您拥有指定根目录的写入权限,将自动创建部署目录。

本地调试:

群集调试:

\\headnode\CcpSpoolDir\$(UserName)\$(ProjectName)

工作目录

指定每个进程所使用的工作目录。此处为可执行文件将运行的位置。

在群集调试期间,如果此目录与部署目录不同,则来自部署目录的文件将被复制到计算节点上的工作目录中。

本地调试:

用于 Visual Studio 项目的输出目录。

群集调试:

%tmp% 目录。

应用程序命令

指定 MPI 将在每个群集节点上运行的应用程序名称或应用程序路径(这里指您在 Visual Studio 中调试的应用程序)。该路径可以是一个共享资源路径或本地路径。

调试程序将把应用程序文件复制到部署文件夹。

$(TargetFileName)

应用程序参数

指定要传递给应用程序的参数。

MPIShim 位置

在您的开发计算机上指定到 MPIshim 可执行文件的完整路径。Visual Studio 将尝试从此位置将 MPIshim 复制到您的部署目录。

Visual Studio 中含有 MPIshim,并且与远程调试组件一起安装以启用并行调试。

您可以为此属性提供一个值,作为自定义 MPI 群集调试程序启动的一部分。

%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger

MPIExec 命令

指定协调 MPI 应用程序启动的 MPI 程序的完整路径。

如果在您的计算节点上安装了另一个 MPI 库实现并且希望使用关联的 MPI 堆栈来启动您的应用程序,请在每个计算节点上使用此属性指定可执行文件的完整路径。如果每个节点上的此路径不同,则您必须在“要部署的其他文件”属性中为调试程序添加 MPIexec.exe 及其相关的库。

如果您指定的 MPI 堆栈不支持 -hosts 参数,则您可能在特定环境中遇到运行时错误。有关详细信息,请参阅特定节点选择和 -hosts 参数。

MPIexec.exe

其他 MPIExec 参数

指定要传递给 MPIexec.exe 的其他参数。例如,您可以使用其他参数来为 MPIexec.exe 启动的进程设置环境变量。

如果您指定-hosts 参数,则您可能在特定环境中遇到运行时错误。有关详细信息,请参阅特定节点选择和 -hosts 参数。

有关 MPIexec 命令的详细信息,请参阅 mpiexec Command Reference (https://go.microsoft.com/fwlink/?LinkId=144910)(可能为英文网页)。

MPI 网络安全模式

指定允许连接到当前 Visual Studio 实例的 IP 地址。

有以下三种安全模式:

  • 只接受来自本地子网的连接

  • 接受来自指定地址范围的连接

    Dd560807.Important(zh-cn,VS.100).gif 注意:
    如果选择此选项,则必须使用“MPI 网络筛选器”属性来指定此范围。

  • 接受来自任何地址的连接

接受来自任何地址的连接

MPI 网络筛选器

指定要接受连接的 IP 地址范围。指定此范围的起始 IP 地址和子网掩码。

例如,网络筛选器 192.168.0.1/255.255.255.0 包括 192.168.0.1 和 192.168.0.254 之间的所有地址。

Dd560807.Important(zh-cn,VS.100).gif 注意:
要应用此筛选器,请在“MPI 网络安全模式”中选择“接受来自指定地址范围的连接”

调试程序类型

为您运行的代码指定调试程序类型:本机、托管、混合或脚本。

自动

基于 .exe 文件的内容选择调试程序类型。

作业描述文件

指定含有要添加到调试作业的任务的作业描述文件 (XML) 的路径。此文件中指定的任务将被添加到调试程序创建的任务之前(调试程序创建了一个部署、调试和清理任务)。

Dd560807.note(zh-cn,VS.100).gif注意:
您在群集调试程序属性中选择的资源将会覆盖作业描述文件中指定的所有资源分配。

要在 HPC 作业管理器控制台中从新作业或排队作业创建作业描述文件,请在“新建作业”或“查看作业”对话框中单击“作业另存为”。

其他要部署的文件

除了项目及其依存关系需要的文件和目录外,还指定要复制到部署目录的文件和目录。

计划程序超时(毫秒)

指定调试程序尝试联系头节点的时间长度(毫秒)。这段时间过后,头节点将视为无效。

5000 毫秒

部署 CRT

指定 Visual Studio 是否与应用程序一起部署 C 运行时 (CRT) 程序集。

如果指定了“是”,CRT 程序集将与应用程序一起部署。

如果指定了“否”,CRT 程序集将不会与应用程序一起部署。

如果您的多线程调试动态链接库 (DLL) 是静态链接的,则无需部署 CRT 文件。如果您的多线程调试 DLL 是动态链接的,则需要部署 CRT 文件。

“是”

清理部署

指定 Visual Studio 在调试后是否删除部署目录。

如果指定了“是”,则会在调试程序停止时删除部署目录并移除共享资源。

Dd560807.note(zh-cn,VS.100).gif注意:
如果部署目录含有非 Visual Studio 放置的文件,则将不会删除目录。例如,如果应用程序有输出文件到部署目录,则应使用调试后脚本来删除目录。

如果指定了“否”,则部署目录将不会被删除。

“是”

调试前脚本

指定在调试前运行的脚本路径。脚本将在 Visual Studio 运行的同一台计算机上运行。

例如,可以使用调试前脚本为节点上的应用程序存放数据,或调整群集上的防火墙设置以允许远程调试程序运行。

调试前脚本参数

指定传递到调试前脚本的参数字符串。

调试后脚本

指定调试停止后运行的脚本路径。

例如,您可以使用调试后脚本清理存放的数据或应用程序生成的输出文件,或调整群集上的防火墙设置以禁止远程调试程序在调试会话结束后运行。

调试后脚本参数

指定传递到调试后脚本的参数字符串。

特定节点选择和 -hosts 参数

在配置 MPI 群集调试程序时,您必须指定要使用的群集和要启动的进程数。您可以选择特定的节点以用于调试会话(可选)。

当以下两个条件为真时,MPI 群集调试程序将使用 -hosts 参数和 MPIexec 命令来放置进程:

  1. 您可以选择特定的节点以用于调试会话。

  2. 您选择的进程数小于请求节点上的资源数。

如果您请求特定的节点并且请求节点上的资源总数大于您指定的进程数,则调试程序将使用-hosts 参数来放置进程。例如,如果您选择了两个节点(节点 01 和节点 02),每个节点都是四核,并且指定要启动六个进程,则调试程序将把以下参数传递给 MPIexec.exe:-hosts 2 NODE01 4 NODE2 2.

提示

当以下两个条件中任何一个为真时,如果 MPI 群集调试程序使用-hosts 参数来放置进程,则将发生运行时错误:

  • 您指定了一个不支持-hosts 参数的 MPI 堆栈。

  • 您在“其他 MPIExec 参数”属性中指定了-hosts 参数。

请参见

概念

如何:配置和启动 MPI 群集调试程序
操作实例:在 Visual Studio 2010 中启动 MPI 群集调试程序
在 HPC 群集上调试 MPI 应用程序

其他资源

mpiexec Command Reference