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