mcpscat
NAME
mcpscat - Takes a number of files from task 0 and scatters them in
sequence to all tasks, in a round robin order.
SYNOPSIS
mcpscat [-i] source ... destination [POE options]
Source can be one of the following:
- a single file name - file is copied to all tasks
- two of more file names - files will be distributed in a round robin
order to the tasks
- an expansion of file names, using wildcards - files will be distributed
in a round robin order to the tasks
- a directory name - all files in that directory are copied in a round
robin order to the tasks.
Destination is an existing destination directory name to where the data
will be copied.
FLAGS
-i Checks for duplicate or existing files of the same name, and does
not replace any existing file found. Instead, issues an error
message and continues with the remaining files to be copied.
Without this flag, the default action is to replace any existing
files with the source file.
DESCRIPTION
The mcpscat function determines the order in which to distribute the
files, using a round robin method, according to the list of nodes and
number of tasks. Files are sent in a one-to-one correspondence to the
nodes in the list of tasks. If the number of files specified is greater
than the number of nodes, the remaining files are sent in another
round through the list of nodes. Wildcards should be enclosed in
double quotes, otherwise they will be expanded locally on the task
from where the command is issued, which may not produce the intended
file name resolution.
mcpscat is a POE program and, therefore, all POE options are available.
You can set POE options with either command line flags or environment
variables. The number of nodes to copy the file to (-procs), and
the message passing protocol used to copy the file (-euilib) are the
POE options of most interest.
Note:
A default of 100K data block size is used for copying the data. This can
be changed by updating the source found in /usr/lpp/ppe.poe/samples/mpi,
and compiling it with the mpcc command.
Return codes are:
-1 invalid number of arguments specified
-2 invalid option flag specified
-3 unable to resolve input file name(s)
-4 could not open input file for read
-5 no room on destination node's file system
-6 error opening file output file
-7 error creating output file
-8 MPI_Send of data failed
-9 final MPI_Send failed
-10 MPI_Recv failed
-11 failed opening temporary file
-12 failed writing temporary file
-13 error renaming temp file to filename
-14 input file is empty (zero byte file size)
EXAMPLES
1. You can copy a single file to all tasks into the destination directory.
For example, enter:
mcpscat filename /tmp -procs 4
This will take the file and distribute it to tasks 0 through 3 as
/tmp/filename.
2. You can specify any number of files as source files. The destination
directory must be the last item specified before any POE flags. For
example:
mcpscat file1.a file2.a file3.a file4.a file5.a /tmp -procs 4
will take file1.a through file5.a from the local directory and copy
them in a round robin order to tasks 0 through 3 into /tmp. The file
distribution will be as follows:
Task 0: /tmp/file1.a
Task 1: /tmp/file2.a
Task 2: /tmp/file3.a
Task 3: /tmp/file4.a
Task 0: /tmp/file5.a
3. You can specify wildcard values to expand into a list of files to be
scattered. Enter:
mcpscat "file*.a" /tmp -procs 4
Assuming Task 0 contains file1.a, file2.a, file3.a, file4.a, and
file5.a in its home directory, this will result in a similar
distribution as in the previous example.
4. You can specify a directory name as the source, from which the files
to be scattered are found. Assuming /test contains myfile.a,
myfile.b, myfile.c, myfile.d, myfile.f, and myfile.g on Task 0, enter:
mcpscat /test /tmp -procs 4
This results in the following file distribution:
Task 0: /tmp/myfile.a
Task 1: /tmp/myfile.b
Task 2: /tmp/myfile.c
Task 3: /tmp/myfile.d
Task 0: /tmp/myfile.f
Task 1: /tmp/myfile.g