Use ClusterCopy to Move Files to and from Nodes in a Windows HPC Cluster
Applies To: Microsoft HPC Pack 2008, Microsoft HPC Pack 2008 R2, Microsoft HPC Pack 2012, Windows HPC Server 2008, Windows HPC Server 2008 R2
This topic describes how to use ClusterCopy to rapidly copy files to on-premises compute nodes on a Windows HPC cluster. You can also use ClusterCopy to help collect files from cluster nodes. ClusterCopy is included in the HPC Pack Tool Pack. For more information, see Microsoft HPC Pack: Tools and Extensibility.
This topic includes the following sections:
Requirements
How ClusterCopy works
Using ClusterCopy
ClusterCopy configuration parameters
Requirements
To use ClusterCopy, you need the following software and permissions:
HPC Pack client utilities installed on the client computer.
ClusterCopy installed on the head node or on the client computer that you are using to access the head node.
User permissions on the HPC cluster.
Read permissions to the source folder.
Read/write permissions to the destination folder.
How ClusterCopy works
File distribution
When distributing files to cluster nodes, ClusterCopy creates a series of tasks that define the copy behavior (if you specify the UseMutlipleJobs
parameter, ClusterCopy creates a series of jobs instead). The first task copies files from the source folder to a set of nodes. The number of nodes in each set is defined by the ParentSpan
parameter (by default, this has a value of 3).
After the first task completes, the files exist in ParentSpan
+ 1 locations. Each of these locations is used as a source for the next round of copy tasks, until the files have been copied to all of the specified nodes. If files are not copied successfully to a particular node, all copy jobs or tasks that depend on that node fail. ClusterCopy creates a log file in the install directory that lists failed nodes.
The following diagram illustrates an example of how ClusterCopy distributes files to cluster nodes:
File collection
When collecting files from cluster nodes, ClusterCopy creates a series of tasks or jobs that define the copy behavior. Each task copies files to the destination folder from the number of nodes that are specified by the ParentSpan
parameter. When the first task is finished (successfully or not), the next task begins, and so on until ClusterCopy has attempted to collect files from all of the specified nodes. ClusterCopy creates a log file in the install directory that lists failed nodes.
Using ClusterCopy
You can configure and run ClusterCopy by using a Command Prompt window or the ClusterCopy dialog box. To use a Command Prompt window, run ClusterCopyConsole.exe. To use the dialog box, run ClusterCopy.exe.
The following procedures describe how to use ClusterCopy. For detailed information about the configuration parameters, see ClusterCopy configuration parameters.
Note
The default installation folder is C:\Program Files\Microsoft HPC Pack <Version> Tool Pack\ClusterCopy.
To use ClusterCopy at a command prompt
Open a Command Prompt window and go to the ClusterCopy installation folder. For example, type a command similar to the following:
cd C:\Program Files\Microsoft HPC Pack 2012 Tool Pack\ClusterCopy
Run ClusterCopyConsole, and then specify the parameters for the head node, source folder, destination folder, and the compute nodes that you want files copied to or from. To collect files from the nodes, include the
/Collect
parameter.The following code samples provides examples with and without the
/Collect
parameter:To copy all files from C:\hpc\data on the head node to C:\hpc\scratch on all nodes in the ComputeNodes and WorkstationNodes groups, type:
clustercopyconsole /HeadNode:HEADNODE /SourceFolder:C:\hpc\data /DestinationFolder:C:\hpc\scratch /NodeGroups:ComputeNodes;WorkstationNodes
To collect file1.dat and file2.dat from C:\hpc\scratch on all nodes to C:\hpc\results on the head node:
clustercopyconsole /HeadNode:HEADNODE /SourceFolder:C:\hpc\scratch /TargetFiles:file1.dat;file2.dat /DestinationFolder:C:\hpc\data /Collect
When the job is complete, a message appears that indicates the number of successful and failed copies. You can read the list of failed nodes in a log file in the ClusterCopy install folder.
To use the ClusterCopy dialog box
Navigate to the location where you installed ClusterCopy, and then double-click ClusterCopy.exe.
Specify the head node, source folder, destination folder, and the compute nodes that you want files copied to or from.
To distribute files to nodes, click Copy to Nodes (Distribute). To collect files from nodes, click Copy from Nodes (Collect).
The ClusterCopy dialog box displays the progress of your copy job.
When the job is complete, a message box appears that indicates the number of successful and failed copies. You can read the list of failed nodes in a log file in the ClusterCopy install folder.
The following screenshot illustrates the ClusterCopy dialog box:
ClusterCopy configuration parameters
The following table describes the parameters that you can use to configure ClusterCopyConsole (you can configure the same parameters in the ClusterCopy dialog box).
Purpose | Parameter | Description |
---|---|---|
Specify head node |
/HeadNode:<Server> (or /HN:<Server>) |
Specifies the name of the head node in the HPC cluster. You must include this parameter if you are not running ClusterCopyConsole on the head node or if the CCP_SCHEDULER environment variable on your computer does not already specify the name of the head node. |
Specify source files |
/SourceFolder:<Folder> (or /SF:<Folder>) |
Specifies the folder where the files that you want to copy are stored. This can be a local folder on the head node or on cluster nodes, or a shared folder on the network. To copy files from a shared folder on the network, specify the UNC path for the shared folder (for example: \\server\folder). Also consider the following default information:
|
/UseClusterFileShare (or /UCFS) |
Specifies that the files can be copied directly from the shared folder on the network that you specified as the source folder. If you do not include this parameter and you specified a shared folder on the network as the source folder, the files are first copied to the head node. To use this parameter, the shared folder on the network must be accessible to the compute nodes. |
|
/TargetFiles:<Files> (or /TF:<Files>) |
Lists the files in the source folder that you want to copy. If you do not include this parameter, all files and subfolders in the source folder are copied. |
|
Specify destination folder |
/DestinationFolder:<Folder> (or /DF:<Folder>) |
Specifies the folder where the files will be copied. If the destination folder does not exist, ClusterCopyConsole creates the folder. To copy files from the nodes to a shared folder on the network, specify the UNC path for the shared folder (for example: \\server\folder). All of the nodes must be able to access this folder. |
Specify nodes |
/NodeGroups:<Groups> (or /NG:<Groups>) |
List the node groups that you want to copy files to or from. Use semicolons (;) to specify more than one node group (for example, ClusterCopy uses the union of the listed node groups, not the intersection. Only nodes that are online and reachable are used. If you do not specify this parameter or the |
/NodeFiles:<Files>] (or /NF:<Files>) |
Lists the text files that include a list of nodes to use when copying files. The text files must list one node per line with no punctuation. Use semicolons (;) to specify more than one text file (for example, Only nodes that are online and reachable are used. If you do not specify this parameter or the |
|
Configure copy behavior |
/Collect (or /C) |
Specifies that files are collected from the cluster nodes to the destination folder. If you do not specify this parameter, files are copied to cluster nodes. |
/UseMultipleJobs (or /UMJ) |
Specifies that a separate job must be created for each copy task. If you do not specify this parameter, all copy tasks are included in one job. When ClusterCopy runs as a single job, the job remains queued until all of the specified nodes are available. When ClusterCopy runs as multiple jobs, copying can begin before all the nodes become available. |
|
/ParentSpan:<Targets> (or /PS:<Targets>) |
Specifies the number of simultaneous files that are copied from a source when distributing files. When collecting files, specifies the number of simultaneous files that are copied to the destination folder. If you do not specify this parameter, the default value of 3 is used. Considerations:
|