Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
TEAM(1) 		     General Commands Manual			 TEAM(1)

NAME
     team - parallel "pipe", allows asynchronous io

SYNOPSIS
     team  [-r] [-v] [-i volsize [b|k|m]] [-o volsize [b|k|m]] [blocksize (R).RB
     [ b | k | m ] [processes]]

DESCRIPTION
     Team just copies its standard input to its standard output. It does so how-
     ever forking a team of independent processes (default is 4), arranged in  a
     ring, with reads overlapped with writes.

     Each  process  will wait for the end of the read phase of previous process,
     will then read blocksize bytes (or 512 byte blocks if suffixed  with  b  or
     kilobytes	if suffixed with k, or megabytes if suffixed with m; the default
     is 20k) from its standard input, activate the next process read phase, wait
     for the previous process write phase end, then write to its  standard  out-
     put, and activate the next process write phase.

     If  the  input  or output volume ends or an IO error is detected, team will
     ask wehtether the user wants to continue (but only if the concerned  volume
     is  a block or character device and the program's standard error channel is
     a tty device). Possible answers are

     c	    This means that the user wishes to continue, but  the  file  pointer
	    shall  be  reset to the beginning of the volume, as a new volume has
	    been started anew. This is the the answer to give on end  of  volume
	    when writing to multiple floppies, etc...

     y	    The user simply wishes to continue, without any change.

     n	    The user wishes to stop; the program will be terminated or aborted.

     There are just three options, as follows:

     -i     The  value that follows the option is the assumed volume size of the
	    input, and it is expressed in the same units as the buffer size.

     -o     The value that follows the option is the assumed volume size of  the
	    output, and it is expressed in the same units as the buffer size.

     -v     If	specified  as each buffer is read or written the total number of
	    kilobytes read or written that far is printed.

     -r     If specified the number of kilobytes processed  and  the  number  of
	    seconds taken is not printed at the end of the run.

     Team  consumes  system  time  to  synchronize  and  task  switch  among its
     processes; also, in order to avoid slowing it, it is best run on  a  quies-
     cent system.

     This  program  is	most  useful  for output to a device, especially where a
     streaming tape is involved. It may be used to advantage with disc	to  disc
     and disc to tape copies.

EXAMPLES
     find dir -print | cpio -oBc | team 20k 8 >/dev/rmt0
     team 20k 4 </dev/rmt0 | cpio -iBcdmu
     pax -w -b 4k * | team -o 1200k 15k 2 >/dev/rdsk/f0t

ADVICE
     You are advised to experiment with different combinations of block size and
     number  of  processes;  each program used with team works best with certain
     parameters, and performance depends even more strongly on	the  output  de-
     vice, so experiment with parameters also for this (it seems that the block-
     ing  factor  of  the  process  that feeds team ought to be inferior to that
     given to it, and possibly inferior to the limit on the size of a  pipe  for
     your version of the system).  Team ought to be adaptive, and adjust dynami-
     cally  both  parameters,  in order to reach a state where there is no pause
     between each stage of the ring. This is  too  difficult  to  achieve  under
     UNIX.

     Notice  also  that  this program will read and write blocks all of the same
     size as prescribed, except the last, even when reading  from  pipes;  if  a
     read  from  its  input  supplies less bytes than the prescribed block size,
     this program will read again until its buffer is filled to norm or the  in-
     put finishes.

     A	final note: it is usually advantageous to give to team a block size that
     is a multiple of the block size produced by the  program  before  it  in  a
     pipeline.	Notice	that  in many cases, such as the tape archival programs,
     the output will not be directly recognizable to the tape archiver in input,
     but will have to be reblocked back to the blocksize expected  by  the  tape
     archiver  either by way of dd or reapplication of team, that is much faster
     of course.

BUGS
     Team will emit a number of messages comprehensible only to  the  author  in
     case of errors. Plase note them and report them to the author.

     This  is  not strictly a bug in this program, but rather a limitation; some
     device drivers will have problems when you change volume when this  program
     asks  you	whether  to  continue operation. They require that the device be
     closed and opened again whenever a volume is  changed.  Unfortunately  this
     cannot  be  done, given the structure of team; with such device drivers you
     effectively cannot use team to write multiple volumes.

     Some device drivers, on physical end of file or volume while writing do not
     do the decent thing, and write a legible truncated  block	and  return  its
     length;  some drivers, e.g. some tape drivers, handle physical eof on write
     quite badly. With these drivers you had better use the -o option to  set  a
     logical  EOF if you want to use multiple volumes. As an hint, give the vol-
     ume size as about five percent less than the nominal.  Whatever  value  you
     use  for  output,	take not of it, as you will have to use exactly the same
     value for input!

SEE ALSO
     volcopy(8)
     cpio(1)
     tar(1)
     dump(8)

AUTHOR
     Piercarlo Grandi, Milano.

				      (pg)				 TEAM(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=team&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help