clusrun

在多个节点上运行指定的命令,并将指定命令的所有实例的输出重定向到运行 clusrun 命令的节点。

有关如何使用此命令的示例,请参阅 示例

语法

clusrun [/all] [/env:<variable_and_value_list>] [/exclude:<node_list>]   
[/interleaved] [{/job:<jobID> | /nodegroup:<node_group> |   
/nodes:<node_list> | /task:<jobID>.<taskID>[.<subtaskID>] |   
/template:<job_template_name> }] [{/nodestate:<node_state> |   
/pausednodes | /readynodes}] [/outputdir:<directory>]   
[/password:{<password>|*}] [/scheduler:<name>] [/sorted]   
[/spooldir:<directory>] [/stdin:[<path>\]<file_name>]   
[/task:<JobID>.<TaskId>[.<subtaskID>]]  
[/user:[<domain>\]<user_name>]] [/workdir:<folder>]  
<command> [<arguments>]  
  
clusrun {/? | /help}  
  

参数设置

参数 说明
/都 在 HPC 群集中的所有节点上运行命令。
/env:<variable_and_value_list> 指定要在命令的运行时环境中设置的环境变量列表以及要分配给这些环境变量的值。 列表的格式应为 <variable_name1>=<value1> [;<variable_name2>=<value2>...]。或者,可以通过包括多个 /env 参数来设置多个环境变量,每个参数具有 <variable_name>=<值>格式的不同参数。 若要取消设置环境变量,请不要指定值。 例如,“<variable_to_unset_name>=”。
/exclude:<node_list> 使用 [,<node2_name>...] 格式指定不希望命令在其中运行命令的多个节点的列表 <node1_name>[,<node2_name>...]。可以将 /exclude 参数与间接指定多个节点的其他参数结合使用来消除特定节点。 例如,如果 HPC 群集包含名为 computenode1、computenode2 和 computenode3 的节点,则可以结合使用 /exclude:computenode2/nodes:compute* 选项来指定命令应在 computenode1 和 computenode3 上运行。
/交错 将不同节点的命令输出显示为单个列表,其中每行都标有生成输出行的节点的名称,以及可以交错来自不同节点的输出行。
/job:<jobID> 指定作业的标识符,该作业的状态为“正在运行”、“已完成”、“失败”或“已取消”,并分配了要在其中运行命令的节点。 如果指定 /job 参数,clusrun 在 HPC 作业计划程序服务分配给指定作业的同一节点上运行该命令。 作业必须是以前为其分配节点的作业。 如果还指定 /nodegroup/nodes/task/template 参数,则不能指定 /job 参数。
/nodegroup:<node_group> 指定包含要对其运行命令的节点的节点组。 如果还指定 /job/nodes/task/template 参数,则不能指定 /nodegroup 参数。
/nodes:<node_list> 指定要使用 <node1_name>[,<node2_name>...] 格式运行命令的多个节点的列表。可以使用星号 \ 作为通配符。 例如,如果指定 /node:compnode1*,该命令将在名称以 compnode1 开头的所有节点上运行,例如 compnode10、compnode15、compnode126 和 compnode1158。 如果还指定 /job/nodegroup/task/template 参数,则不能指定 /nodes 参数。 注意: 节点名称不能超过 12 个字符。
/task:<jobID>。<taskID>[.<subtaskID>] 指定任务或子任务的标识符,该任务的状态为“正在运行”、“已完成”、“失败”或“已取消”,并分配了要在其中运行命令的节点。 如果指定 /task 参数,clusrun 在 HPC 作业计划程序服务分配给指定任务或子任务的同一节点上运行该命令。 任务或子任务必须是以前为其分配节点的任务或子任务。 对于参数任务,必须指定子任务而不是任务。

如果还指定 /job/nodegroup/nodes/template 参数,则不能指定 /task 参数。
/template:<job_template_name> 指定作业模板的名称,该模板指定要在其中运行命令的节点组。 作业模板名称的最大长度为 80 个字符。 如果还指定 /job、/nodegroup/nodes/task 参数,则不能指定 /template 参数。
/nodestate:<node_state> 在处于指定状态的所有节点上运行该命令。 有效状态为“联机”、“脱机”和“清空”。 如果还指定 /pausednodes/readynodes 参数,则不能指定 /nodestate 参数。
/pausednodes 已弃用。 请改用 /nodestate:offline 参数
/readynodes 已弃用。 请改用 /nodestate:online 参数
/outputdir:<目录> 指定用于运行 clusrun 命令的本地计算机上的目录,在其中保存使用 clusrun 命令运行的命令的输出。 此目录必须已存在,否则会发生错误。

clusrun 命令创建此目录的子目录,该目录的名称与 HPC 作业计划程序服务分配给 clusrun 命令实例的作业标识符相同。 clusrun 命令保存指定的每个节点的文件。 此文件包含该节点上指定命令的输出,其文件名与没有扩展名的节点的名称匹配。 可以使用文本编辑器程序(如记事本)查看这些文件的内容。
/password:{<密码>|*} 指定运行命令的帐户的密码。 如果指定 /user 参数,但未指定 /password 参数,或者如果为密码指定星号 = , clusrun 命令提示符会提示你输入密码以及是否存储密码。
/scheduler:<名称> 为包含要运行命令的节点的群集指定头节点的主机名或 IP 地址。 该值必须是有效的计算机名称或 IP 地址。 如果未指定 /scheduler 参数,此命令将使用CCP_SCHEDULER环境变量指定的头节点上的计划程序。
/排序 显示命令在所有节点上完成后运行命令的不同节点的输出。 每个节点的输出显示在具有指示生成输出的节点的标题的单独节中。 这些节按节点名称按字母顺序排序。
/spooldir:<目录> 已弃用。 请改用 /outputdir 参数。
/stdin:[<路径>\]<file_name> 指定命令应从中接收标准输入的文件的名称。 这包括完整路径或相对于文件的工作目录的路径(如果命令不应从工作目录中的文件接收标准输入)。 如果指定运行命令的节点上不存在的文件或路径,该命令在该节点上会失败。 此参数的值的最大长度为 160 个字符。
/user:[<域>\]<user_name>] 指定用户名,并可以选择运行命令的帐户的域。 如果未指定此参数,该命令将在用于运行 clusrun 命令的帐户下运行。
/workdir:<文件夹> 指定命令应在其下运行的工作目录。 默认值为 %USERPROFILE%。 此参数的值的最大长度为 160 个字符。
<命令> [<参数>] 指定要运行的命令的命令行,包括命令或应用程序名称和任何必要的参数。 clusrun 命令使用 cmd 命令在每个节点上运行以下命令,如下所示:

cmd.exe /c <命令> [<参数>]

无法使用 clusrun 命令运行消息传递接口(MPI)应用程序。
/? 在命令提示符处显示帮助。
/帮助 在命令提示符处显示帮助。

注解

  • 可以在直接或远程访问的群集中的任何客户端节点上运行 clusrun 命令。 客户端节点包括头节点和安装客户端实用工具的任何计算节点。 运行命令的节点的输出将重定向到客户端节点,除了来自操作系统的运行时错误消息外,还包括标准输出和标准错误流。

  • 如果中断或停止 clusrun 命令,远程 命令的实例也会停止。

  • 必须是群集管理员才能运行 clusrun 命令。

  • clusrun 命令立即在相关节点上运行指定的命令,而不考虑节点是否已运行计划任务。 由于在 clusrun 命令中指定的命令会立即运行,因此 clusrun 命令可能会导致已运行的计划任务失败,尤其是延迟敏感的 MPI 程序。

  • 使用 clusrun 运行的命令可能无法访问发出 clusrun 命令的计算机上的共享文件夹。 在以下情况下,可能会出现此访问问题:

    • 防火墙阻止命令访问共享文件夹。

    • IPsec 或域策略阻止 clusrun 命令通过网络地址转换(NAT)进行通信。

    如果登录到计算节点且无法访问客户端计算机上的共享文件夹,则使用 clusrun 命令运行的命令将无法访问该共享文件夹。

    若要通过防火墙授予对共享文件夹的访问权限,请在客户端计算机上为“文件和打印机共享”功能创建防火墙例外。

  • 当指定需要括在引号(“)中的路径或命令(”)时,如果路径或命令还包括反斜杠(\),请注意,因为引号前的反斜杠充当转义字符。 若要防止反斜杠充当转义字符,请使用两个反斜杠。 例如,使用“C:\Program Files\\”而不是“C:\Program Files\”。

示例

若要列出群集中所有节点上 %USERPROFILE% 目录的内容,请使用以下命令:

clusrun /all dir  

若要在名称以开头的所有节点上运行 回显你好 命令
计算(computenode1 除外)使用以下命令:

clusrun /nodes:compute* /exclude:computenode1 echo hello  

若要在 HPC 作业计划程序服务分配给作业且作业标识符为 12 的作业的所有联机节点上运行 systeminfo 命令,请使用以下内容
命令:

clusrun /job:12 /nodestate:online systeminfo  

其他参考