Cluster-wide and Task Environment Variables in Windows HPC Server 2008
Applies To: Windows HPC Server 2008
Windows® HPC Server 2008 uses a variety of environment variables and supports their use as aliases for recurring values or sets of values in HPC Cluster Manager and HPC Job Manager, a Command Prompt window, HPC PowerShell, or scripts and batch files.
For example, you can use environment variables to specify the path for a job’s output file:
job submit /stdout:%USERPROFILE%\%CCP_JOBID%.txt myapp.exe
This topic includes the following sections:
New environment variables in Windows HPC Server 2008
Environment variable hierarchy
Adding cluster-wide environment variables
System environment variables that are set by HPC Pack
Built-in cluster-wide environment variables
Built-in task environment variables
New environment variables in Windows HPC Server 2008
The table below describes the built-in cluster-wide and task environment variables that are new in Windows HPC Server 2008.
Environment variable | Description | ||
---|---|---|---|
WCF_NETWORKPREFIX |
The prefix for the network that the Windows Communication Foundation (WCF) broker and WCF service use for internal traffic. This is a cluster-wide variable. |
||
HPC_ATTACHTOCONSOLE |
Allows a job to be started in a console session. A console session is necessary if the task requires a Graphics Processing Unit (GPU) for acceleration. In Windows HPC Server 2008, the video driver is only loaded in the console session, so programs which rely on access to the video driver must run in the console session. With a value of With a value of |
||
HPC_ATTACHTOSESSION |
Allows a job to be started in a terminal server session. This is helpful if you have an interactive program that you would like to have connected to the session and be able to remotely view the program while it is running. With a value of With a value of |
||
CCP_TASKINSTANCEID |
The numeric ID of a parametric subtask. The HPC Job Scheduler service assigns this number when the task is created.
|
Environment variable hierarchy
Sometimes the same environment variable can be set at different levels. If different values are set for the same environment variable, the environment variable hierarchy determines which value is used in the run-time environment of a task.
The environment variable hierarchy used for tasks that are running on the cluster is as follows:
Task
Cluster-wide
User
System
For example, if %TMP% is set at the task level and at the user level, the task level setting takes precedence in the run-time environment of that task.
Adding cluster-wide environment variables
Cluster-wide environment variables are defined by the cluster administrator and are set in the run-time environment of all tasks that are running on the cluster. An administrator can create and set cluster-wide environment variables to provide default values for tasks. A job owner can override the cluster-wide default by setting the same variable name with a different value at the task level. Job owners can set the environment variable property for a task when they create or modify a task.
Note
Built-in HPC Server environment variables begin with CCP. To avoid potential naming conflicts, do not start your variable names with CCP.
You can use the following commands to view or set (that is, create or change) cluster-wide environment variable name and value pairs:
Interface | View | Set |
---|---|---|
Command Prompt window |
||
HPC PowerShell |
System environment variables that are set by HPC Pack
The following system environment variables are set on the head node when you install Microsoft® HPC Pack 2008:
Environment variable | Description |
---|---|
CCP_DATA |
The location of the Microsoft HPC Pack Data folder. |
CCP_HOME |
The location of the Microsoft HPC Pack folder. |
CCP_JOBTEMPLATE |
The job template to use for submitting jobs to the cluster if none is specified by the job owner. By default, this is the Default job template. For more information, see “The Default job template” section in Job Templates. |
CCP_SCHEDULER |
The name of the head node. |
Built-in cluster-wide environment variables
Cluster-wide environment variables are defined by the cluster administrator, and they are set in the environment of all tasks that are running on the cluster.
There are three built-in cluster-wide environment variables. These environment variables are set during system deployment, and they are rarely changed manually or used in commands.
Environment variable | Description | ||
---|---|---|---|
CCP_CLUSTER_NAME |
The name of the cluster, which is the same name as the computer that serves as the head node. |
||
CCP_MPI_NETMASK |
The network mask for the network interface that the Message Passing Interface (MPI) process uses. This environment variable can be temporarily changed to move application traffic from the application network to a different HPC network (for example, the private network). Performing this change might be useful when troubleshooting your application network. For example, if you want to move the application traffic to the private network, and the current configuration of the private network has IP addresses in the 10.0.x.x range, with subnet mask 255.255.0.0, the following setting changes the application traffic to run on that network:
|
||
WCF_NETWORKPREFIX |
The prefix for the network that the Windows Communication Foundation (WCF) broker and WCF service use for internal traffic. |
Built-in task environment variables
Task environment variables apply only to a task, and most task environment variables are set automatically by the HPC Node Manager service of the compute node that is performing the task. This is the means by which the standard task options are communicated to the process or processes. Task environment variables can be useful as aliases in commands because they are dynamic, and they contain information that is not necessarily known beforehand.
There are two task environment variables that are not set automatically: HPC_ATTACHCONSOLE
and HPC_ATTACHSESSION
. You can set these variables to get special handling for your task. You can set the environment variable property for a task when you create or modify a task.
Environment Variable | Description | ||
---|---|---|---|
HPC_ATTACHTOCONSOLE |
Allows a job to be started in a console session. A console session is necessary if the task requires a graphics processing unit (GPU) for acceleration. In Windows HPC Server 2008, the video driver is only loaded in the console session, so programs that rely on access to the video driver must run in the console session. With a value of True, the HPC Job Scheduler service attempts to start the job in the console session. If a console session exists that has the same owner as the user who submitted the job, then the job starts. If there is no console session that is owned by the job owner, then the job fails. You can run With a value of Try, the task will run even if it cannot be attached to a console session. |
||
HPC_ATTACHTOSESSION |
Allows a job to be started in a remote desktop session. This is helpful if you have an interactive program that you would like to connect to the session and be able to remotely view the program while it is running. With a value of True, the HPC Job Scheduler service attempts to start the job in a remote desktop session. If a remote desktop connection exists that has the same owner as the user who submitted the job, then the job starts. If there is no remote desktop session that is owned by the job owner, then the job fails. You can run With a value of Try, the job runs even if it cannot be attached to a remote desktop session. |
||
CCP_NODES |
The nodes that are allocated to the task, and the number of processes to run on each node. |
||
CCP_ CLUSTER_NAME |
The name of the head node. |
||
CCP_ MPI_NETMASK |
The network mask for the network interface that the Message Passing Interface (MPI) process uses. By default, the value set by the cluster-wide CCP_MPI_NETMASK environment variable is used. This environment variable can be temporarily changed to move application traffic from the application network to a different HPC network (for example, the private network). You can set or change the network that a specific job uses for MPI traffic by including the MPICH_NETMASK environment variable in the mpiexec arguments. For example:
|
||
CCP_TASKINSTANCEID |
The numeric ID of a parametric subtask. The HPC Job Scheduler service assigns this number when the task is created.
|
||
CCP_RUNTIME |
The amount of time that the task is allowed to run. (The job run time overrides the task run time.) |
||
CCP_TASKSYSTEMID |
The globally unique identifier for this task. This internal identifier is unique across all tasks in the cluster. |
||
CCP_TASKCONTEXT |
The context of the task that is used by MPI or other applications to communicate with the cluster. |
||
CCP_WORKDIR |
The working directory for input, output, and standard error files to be used while the task runs. The default is %USERPROFILE%. |
||
CCP_MPI_WORKDIR |
The working directory for input, output, and standard error files to be used while the task runs. The default is %USERPROFILE%. |
||
CCP_RERUNNABLE |
If the task runs and fails due to cluster problems (such as a node becoming unreachable) and this variable is True, the HPC Job Scheduler service attempts to rerun the task. If it is False, the task fails after the first run attempt fails. |
||
CCP_NUMCPUS |
The number of resources assigned to the task. |
||
CCP_ENVLIST |
The environment variables that were set for this task by the person who created the task. |
||
CCP_EXCLUSIVE |
With a value of True, no other tasks can be run on a compute node at the same time as the task. |
||
CCP_JOBNAME |
The name of the job to which the task belongs. |
||
WCF_NETWORKPREFIX |
The prefix for the network that the Windows Communication Foundation (WCF) broker and WCF service use for internal traffic. |
||
CCP_TASKID |
The numeric ID of the task. The HPC Job Scheduler service assigns this number when the task is created. Note In Windows HPC Server 2008, all subtasks of a parametric task have the same TaskID. Parametric subtasks are further identified by the task environment variable CCP_TASKINSTANCEID. |
||
CCP_JOBID |
The numeric ID of the job to which the task belongs. The HPC Job Scheduler service assigns this number when the job is created. |
||
CCP_STDIN |
The redirect target for the stdin file. |
||
CCP_STDOUT |
The redirect target for the stdout file. |
||
CCP_STDERR |
The redirect target for the stderr file. |