|
SUTScalable Unix ToolsDescriptionSUT is a collection of commands that aim to create a Unix environment on parallel machines (e.g. Beowulf clusters, etc.) that is analogous to the uniprocessor Unix environment. SUT consists of the following commands:
All of these commands share a common command line syntax: pt<command name> [-all|-m <machine_file>|-M <machine_list>] <arguments> The <command name> and <arguments> are specific to each command, but the [-all|-m <machine_file>|-M <machine_list>] arguments are common to all the commands. These arguments specify on what machines to run the commands. The first of these, -all, specifies that the given command should be run on all the nodes in the current mpd ring. For most commands, this actually means that the action taking place takes place on `all nodes except the one on which the command is given`. In most cases, this behavior is the desired behavior. For example, ptcp performs one-to-many copies. When the user specifies copying a file to -all, he or she usually wants the file on the current host to be copied to all other hosts, but not again to itself. There are exceptions to this behavior\: ptexec, ptpred, and pttest[ao] all execute on the current host as well as all other hosts in the mpd ring when -all is given. In order to get the command to operate on the current host, an explicit hostname is necessary. Explicit hostnames can be given by -m and -M. -m and -M both accept explicit hostnames on which to run a given command. -m reads these hostnames from a file, while -M gets the hostnames from the next argument. The first most obvious way to specify hosts explicitly is to give the full name of each host. For example, to run ptls on hosts host1, host2, and host3, one might use the following command:
ptls -M "host1 host2 host3" Notice that the hostnames are separated by whitespace. Alternatively, the user could also place the text "host1 host2 host3" in a file named "machines" and get the same behavior as the above command with this syntax:
ptls -m machines There is also an environment variable, PT_MACHINE_FILE that can be set to the name of a file containing the hostnames. In this case, it is unnecessary to give any of the -all, -m, or -M options. If PT_MACHINE_FILE is set, but one of these options is given anyway, the command line option overrides the environment variable. Giving hostnames explicitly is reasonable when one wishes to run the commands on a small number of nodes, but in many cases, this is inconvenient. SUT therefore offers a more robust way of abbreviating node specification by taking advantage of a common naming scheme in parallel machine setup\: in many parallel computer installations, the hosts are named in a standard way, often of the form <name><number> where <name> is common to all the hosts in the machine or cluster and number is the unique specifier. For example, an installation might have 10 hosts and name them compute1, compute2, ... compute10. Instead of specifying a set of these specifically each time, SUT allows the user to use a shortened form. If the user wanted to specify all the hosts in this cluster, he or she could do this with the string 'compute%d@1-10'. In this string, the 'compute%d' is a format specifier that indicates what the hostnames look like in general. The '%d' will be replaced by the numbers given after the '@' symbol, 1-10. The numbers that appear after the '@' are a list of ranges or individual numbers separated by commas. For example, if the user wanted to specify hosts compute1, compute3, compute4, compute5, he or she could use 'compute%d@1,3-5'. Note that the numbers after the '@' are considered to form a `set`. That is, no duplicates will be enumerated. Thus the specifications 'compute%d@1-6,5-10' and 'compute%d@1-10' are considered effectively the same. Sets of this form are also intermixable with explicit node names as described before. For example, the specifier 'compute1 compute%d@5-8' is valid. Note that specifiers of this form also follow the same set rules; 'compute1 compute%d1-5' and 'compute%d@1-5' are considered the same. The formal node syntax is:
Nodelist -> <empty>
Nodelist -> Nodename Nodelist
Nodelist -> Nodeset Nodelist
Nodename -> <string>
Nodeset -> Format `@' Rangelist
Format -> <string> `%d' <string>
Rangelist -> Range
Rangelist -> Range `,' Rangelist
Range -> <integer>
Range -> <integer> `-' <integer>
There are two commands that are also included with SUT but do not belong in the list above:
enumnodes has a similar syntax to the tools mentioned above: enumnodes [-all|-m <machine_file>|-M <machine_list>] but only outputs the nodes given in an explicit list to standard output. ptdisp is the SUT graphical display tool. See ptdisp (1) for more details.
See Alsoenumnodes(1), ptmv(1), ptchown(1), ptexec(1), ptln(1), ptcat(1), ptfind(1), ptpkill(1), ptcp(1), ptls(1), ptpred(1), pttest[ao](1), ptchgrp(1), ptfps(1), ptrm(1), ptdisp(1), ptmkdir(1), ptchmod(1), ptdistrib(1), ptkillall(1), ptrmdir(1)
|