MPD is a process manager for clusters of computers running WindowsNT/2000/XP. It can run in three different modes:
- A service that launches processes in the context of multiple connecting users. This is the default installation.
- A service that launches processes in the context of a single user.
- A command line program started manually on all the nodes. This can be useful for evaluation purposes or for users who do not have the ability to install services on their machines. This option acts like single user mode.
NOTE: The binary distribution of mpich.nt, mpich.nt.1.2.5.exe, installs mpd for you using the setup program. You can use Add/Remove programs to remove it. If you want to install mpd by hand, use the following information:
Default Installation - multi-user
Installation
- The options -install and -regserver are synonyms to install the service.
- The option -interact allows the service to start applications with access to the desktop window. Don't use this option unless you have to show windows while your application is running.
- The option -phrase x allows you to set the passphrase for mpd authentication. When a remote machine connects to the mpd, this phrase is used to encrypt a challenge response string to authenticate the remote user. The option -getphrase causes the mpd to prompt for the passphrase to be entered. This is useful if you don't want to pass the phrase on the command line. If -phrase x or -getphrase are not specified, the default passphrase is used.
- The -port option allows you to specify a port for the mpd to listen on. This must be the same on all the nodes. If you do not specify this option, the default is used, 8675.
- The options -account x and -password x allow the user to install the service in single user mode. In single user mode, all processes launched are placed in the security context of the specified user no matter who connects to the mpd. The advantage of this mode is that no passwords are needed again after install time. The disadvantage is that any user who knows the mpd passphrase can launch processes in the context of the installed user. If -account x is specified but -password is not, the user will be prompted to enter a password. Accounts should be specified in the form ``Domain User''.
- The option -mpduser in conjunction with -install installs the mpd with the ability to accept anonymous launch requests that are launched in the context of a registered mpd user. The option enables the following mpd console commands: setmpduser, clrmpduser, enablempduser and disablempduser.
The options -remove, -unregister and -uninstall are all synonyms to un-install the service.
The -d option allows a user to run an mpd from the command line. This is for debugging the mpd or for users who need to execute the mpd manually. The options -port x and -phrase x or -getphrase allow the user to specify what port to listen on and what passphrase to use. The option -getphrase will cause the mpd to prompt for a passphrase. If these options are not specified, mpd will use the default port and passphrase. While the mpd is running it will spit out information as messages pass through and commands are issued. You can enter ``stop'' to stop the mpd or ``quit'' to forcibly exit the process.
Before you upgrade a set of running mpds, make sure there are not any jobs running. The upgrade process will terminate any running processes managed by the mpds.
The -update option is used to upgrade running mpds after a new version has been downloaded. Specify the location of the new mpd.exe with the -mpd x option where x is the full path to the newly downloaded mpd.exe including the executable name (mpd.exe). If you do not specify this option, the mpd will use itself as the upgrade module. So if you do not specify -mpd, make sure you execute the new mpd and not the old mpd.
Specify the host to upgrade with the -host x option or a list of hosts to upgrade in a file with the -hostfile x option.
You need to specify a user with enough privileges to be able to stop and start services on the specified hosts with the -account x and -password x options. If you do not provide a password on the command line, you will be prompted to enter one.
The options -port x and -phrase x or -getphrase allow you to specify what port to connect to and what passphrase to use. If you specify the option -getphrase, you will be prompted to enter a passphrase. If these options are not specified, the default port and passphrase will be used.
If you do not specify any options, you will be prompted to enter a host, account, and password.
Note: You cannot upgrade mpds running from a command prompt: mpd -d. If you installed the mpds in single user mode, the user must have administrator privileges in order to upgrade this way. Use the -singleuser option instead of an account and password in this case because single user mode does not require a user logon.
You can always upgrade manually by doing the following on each node:
The -console option creates a console session with an mpd on the local host or the host specified. If the mpd is listening on a port other than the default, the option -port x can be used to specify what port to connect to. If -phrase x or -getphrase are not specified the mpd searches for the passphrase specified at install time and then reverts to the default passphrase if mpd is not installed on the local host.
This section describes all the commands that can be issued to a mpd in a console session. Console sessions are established by executing mpd -console or mpd -console host as described in the previous section.
DATABASE OPERATIONS
An mpd can maintain a set of in-memory databases. The databases store key/value pairs of strings. The data is not persistent, so when an mpd is taken down, all the databases are destroyed. Mpd is not a database application. This capability is provided so parallel applications can pass small amounts of initialization data between processes. It is not intended to hold user data.
Return values:
The name of the database or DBS_FAIL if an error occurred.
Return values:
DBS_SUCCESS or DBS_FAIL
Return values:
DBS_SUCCESS or DBS_FAIL
Return values:
DBS_SUCCESS or DBS_FAIL
Return values:
The value of the key in the specified database or DBS_FAIL
Return values:
DBS_SUCCESS or DBS_FAIL
Return values:
key=value, or DBS_END or DBS_FAIL
Return values:
key=value, DBS_END, or DBS_FAIL
Return values:
name=name or DBS_END
Return values:
name=name or DBS_END
With the default installation, the mpds run as services on each of the nodes. When a launch command reaches the requested node, the mpd uses the account and password parameters to launch the requested process in the security context of that user. If the mpd has been started in single user mode, then the mpd runs in the security context of a single user. The mpd runs in single user mode if it was installed with a specific username and password or if it is run from a command prompt, mpd -d .... When in single user mode all processes are launched in the security context of the same user. There is no need to pass the account and password. If they are provided they are ignored.
- h=host
the hostname to launch the process on. If this option is not specified the process is launched on the local host.
- c=cmd
the path to the executable plus any arguments. For example:
c=c: my favorite path myapp.exe arg1 arg2 or
c= somehost someshare some path someapp.exe arg1 arg2.
- e=env
a string of environment variables to set. Single quote this list and separate values by the vertical bar character. Example: e='var1=val1|var2=val2|var3=val3'
- m=map
network drive mapping option in the form: 'drive: host share'. Multiple mappings can be specified separated by semicolons.
eg. m=y: myhost myfiles;z: myhost myhome)
- d=dir
the working directory to launch the process in
- a=account p=password
the account and password used to set the security context for the launched process. If the mpd is in single user mode, these parameters are not necessary and they are ignored.
- 0=stdin 1=stdout 2=stderr 12=stdouterr 012=stdinouterr k=rank
these options specify where to connect the standard input, output, and error of the launched process. The format is host:port. For example, 012=somehost:1234, would connect to the host ``somehost'' on port 1234 three times to redirect standard input, output and error. When connecting to this host, the mpd sends a five byte message first. The first byte is a 0, 1, or a 2 to signify stdin, stdout or stderr. The next 4 bytes are the integer specified by the k=rank option. If no k option is specified a value of zero is sent by default.
launchid
Return values:
ERROR_SUCCESS, LAUNCH_PENDING, ``specific error message''
Return values:
process id or -1
Return values:
exitcode, ACTIVE, FAIL
Return values:
exitcode, FAIL
Return values:
nothing
Return values:
nothing
Return values:
nothing
Return values:
nothing
Return values:
pid:command line...
Return value:
hostA,hostB,hostC,...
Return values:
nothing
Return values:
Restarting mpd...
Return values:
nothing
Return values:
nothing
Return values:
value
Return values:
nothing
Return values:
release.major.minor date
Return values:
release.major.minor date
Return values:
key=value...
Return values:
internal state
- ps - running processes, command line, environment variables, working directory, mpich rank, io redirection
- launch - launch structures, id, process id, process state
- config - mpd registry settings
- context - open contexts, contexts are socket connections to the mpd - both internal and external
- tmp - temporary files
- barrier - outstanding barriers
- forwarders - forwarders open on this node, input port and output host:port
- cached - cached user handles
internal state
Return values:
SUCCESS, FAIL
Return values:
SUCCESS, FAIL
Return values:
SUCCESS, FAIL - error msg
Return values:
SUCCESS, FAIL - error msg
Return values:
SUCCES, FAIL - error msg
Return values:
SUCCESS, FAIL - error msg
The file operations are for moving files between hosts, creating temporary files and one custom function for mpich.nt
Return values:
nothing
Return values:
SUCCESS or ``error message''
Return values:
SUCCESS or ``error message''
Return values:
folders and sizes and filenames or and error message: ERROR: error message...
Return values:
filename
Return values:
SUCCESS or FAIL
Return values:
integer