pmg &
However, with the introduction of the OAPI the PMG reports false error messages to the screen. If you would prefer not to see these messages, redirect both standard output and standard error to /dev/null when running the PMG. This is done in the CSH like:
pmg >& /dev/null &
The Process Manager (PMG) uses these files to control and communicate with the computer processes running within the OPUS pipeline.
The process status file is parsed by the PMG to determine what information is to be displayed in the PMG GUI window. The PMG allows the user to modify certain fields in the process status file to control how the process functions.
The following information is contained in a process status file:
00006426-getkw___-idle___________.340d7ed9-g2f______-area51-____ |-- 1 -| |-- 2 -| |----- 3 -----| |-- 4 -| |-- 5 --| |- 6 | | 7|
You can configure the sizes, locations, and formatting of fields in a process status file for your pipelines by changing the default parameters in the file opus.env located in OPUS_OBSERVATIONS_DIR . The portion of this file related to process status files looks like:
! ! PSTAT definitions ! ! The size of each PSTAT field must be specified here as must a template for ! composing a string representation of the PSTAT out of each field. The PSTAT ! fields that distinguish one PSTAT from another also must be specified. ! ! The formatting and keyword names are self-explanatory although it should ! be noted that each field must appear in the template once and only once, ! there must be at least one field labeled as "UNIQUE", and the template ! format and field sizes should be consistent with the blackboard ! implementation to be utilized (ie., appropriate for file names if BB_TYPE = ! FILE). ! PSTAT.TEMPLATE_DELIMS = {} PSTAT.TEMPLATE = {PID}-{PROCESS}-{PROC_STAT}.{START_TIME}-{PATH}-{NODE}-{PROC_CMD} PSTAT.UNIQUE1 = PID PSTAT.UNIQUE2 = NODE PID.SIZE = 8 PROCESS.SIZE = 8 PROC_STAT.SIZE = 15 START_TIME.SIZE = 8 PATH.SIZE = 9 NODE.SIZE = 6 PROC_CMD.SIZE = 4
The comments above include the instructions for changing these parameters. The fields marked as "UNIQUE" are those used by the OPUS system to distinguish one process status file from another. This is important because duplicate process status files are not allowed on the blackboard. It is not recommended that you change the unique fields although you are free to do so.
Also, note that the PMG does not support changes to these parameters! The next release of OPUS will include a new, Java-based PMG that will.
Before changing any of these parameters for a pipeline, be sure that there are no process status files in your OPUS_HOME_DIR, otherwise they will not be recognized after you make the changes.
You can change which paths are monitored by the PMG by changing the state of the various toggle buttons representing each path. A path is monitored by the PMG when toggled "on" (represented by a filled square next to the path name). Paths not being monitored are toggled "off" (no square next to the name).
Later versions of the PMG implement this set of toggle buttons as a tear-off sheet. You can click on the dashed-line at the top of the menu, and the entire menu will stay visible. There is also now a "Toggle All" selection to toggle the state of every button on the menu.
That will bring up a window that looks something like this:
The box on the left-hand side will be blank until you choose, from on the right: a path from the "through path..." box, a node from the "on node..." box, and one or more processes from the "run process..." box and then click on the "<< Add" button.
Or you can bring up processes as part of a pipeline in the PMG. Once you have finished your process selection, click on the "Start" button. The Process Selection window will go away once all the processes have started up; however, the next time you choose "Select Process" from the file menu, you will see your list of processes again. If you don't want to start these processes again, highlight the list in the left-hand box and choose "Remove >>" BEFORE you hit the "Start" button again.
- clicking on "Terminate Selected" in the "Manage" menu, or
- using the middle mouse button to drag the selection to the stop sign icon to the right of the refresh interval button.
In both cases, a confirmation dialog box will be displayed asking for confirmation of the termination request.
To do this, use your mouse to select one or more processes found in your PMG screen and then click on the pull down "Manage" menu. Select "Suspend Selected".
This will update the process status file with a "susp" in the command portion of the process status file (normally filled with underscores). The OPUS system suspends the process and changes the status of the process to "suspended" on the PMG display. The selected process will then suspend its operation, after the current dataset has completed processing.
Note: Since the process status file is just a filename, you can manually rename the process status file to contain the "susp" string in the process status file command section, but using the PMG is a safer way to do this. For more information on why the PMG is safer, see the definition of lock files.
Note: Since the process status file is just a filename, you can manually rename the process status file to contain the "resu" string in the process status file.
This is done by selecting the "Halt OPUS" option from the "Manage" pull down menu of the PMG, and selecting "All".
When this option is exercised, *all* processes in *all* paths that are managed by that PMG will be terminated regardless of which pipeline the process is running under. You will be asked to verify the operation.
When any "Halt OPUS" option is chosen, the command field of the process status file is updated with the "halt" command and processes begin terminating. Corresponding PSFs will disappear with a future refresh of the screen.
Each path you choose to monitor in the PMG will have a corresponding halt button in the "Halt OPUS..." cascade menu. By selecting a particular path in "Halt OPUS..." instead of the "All" button, you signal the PMG to halt only those processes running in that path.
g2f whopper area51 getkw whopper area51 gifin whopper area51 listhd whopper area51 gifin whopper orchid g2f whopper orchid getkw whopper orchidThe first column contains the process name (g2f for the first line). The second column contains the path in which the data will be processed (whopper). The third column contains the name of the machine on which the process will run (area51 for the first line).
So, if this pipeline file were to be used, the PMG would start the process g2f running under the whopper path on the area51 machine (and so on for the remaining lines).
There are two ways to create the pipeline file. The first is to use the PMG. To do this, click on the "File" pull down menu of the PMG. Click on "Select Process...".
This will activate another Motif window, the "OPUS Process Selection" window, in which the user can select from the available process names, paths, and nodes (located in the three frames in the right hand portion of the window) and add them to the pipeline frame on the left.
The second way to create a pipeline file is to create it with a text editor. The format for each line of the file is exactly the same, as given above:
process_name path_name node_nameAs indicated in the example above, you should use lowercase for each of the fields. The columns are space delimited and any number of spaces can be used. Remember that the filename must be of the form *.pipeline. The file should be moved to the OPUS_DEFINITIONS_DIR directory for the PMG to find it.
It should be mentioned that the order in which the processes appear in the pipeline file is arbitrary. In other words, the processes do not have to be listed in the order in which they will be executed in the pipeline.
Once all the desired processes are added to the pipeline definition (via the first way described in the previous question), the user clicks on the "Save" button in the "OPUS Process Selection" window (located at the bottom of the window).
This activates another Motif window which allows the user to determine the pipeline name under which to save the pipeline definition and the directory in which to save it.
Click on "Open" (at the bottom of the selection window) to bring up a previously saved pipeline file.
Select the appropriate pipeline file from the file selection window and then click on "OK".
This will display the selected pipeline in the pipeline frame of the "OPUS Process Selection" window. No processes are started until the "Start" button is selected.
The task definition should now be removed from the pipeline. If the user wishes to save this version of the pipeline file, click on the "Save" button and save the pipeline file as described above
Note that if you do not save the changes just made to the pipeline, the pipeline will appear as it did before the changes were made to it when you next select that pipeline file.
The cursor will indicate a wait state while the selected processes are started. When all processes have been started (this can take some time depending on how many processes you are bringing up) the "OPUS Process Selection" window will disappear. Then you should start to see entries in the PMG main window.
This causes another motif window to be created containing the log file for the selected process. The window initially displays the end of the file since pertinent error messages will have just been written there.
The window containing the log file allows the user to scroll through the text, search for text, and also copy text to the clipboard for pasting elsewhere.
Next, select "Define nodes..." from the "Utilities" pull down menu:
This brings up a dialog listing all of the nodes that OPUS knows about:
To add a new node, type the name of the machine you wish to add in the "Add/Remove" text field, then press enter. The name will appear on the list of available nodes. To remove a node, select it from the list by clicking once on its name; this removes the selected node from the list, placing it in the "Add/Remove" text field where it can be edited or discarded. The node entries in the example above with the "::" are for VMS batch queues; the current release of the OPUS sample pipeline does not yet support this feature.
A user account can be specified as part of the node definition by prepending the node with the account name followed by the @ symbol. For example, a node entry bubba@foo indicates to the PMG that the process should be started on host foo under the account bubba. Note that the indicated user account must allow rsh transactions by the account name and host on which the PMG is running, and must be configured to run OPUS.
Press "OK" to save any changes you make. Note that these changes do not take effect until the next time the PMG is run. To negate any changes made, select "Cancel".
Selecting "Printer setup..." brings up a dialog containing a list of printer names, a text field in which to "Add/Remove" printers, and a text field in which you define the command issued to the operating system to print the window contents:
Note that the method used by the PMG to send data to a printer is to append a printer chosen from the list to the specified print command. As such, the last option to the print command must signal the operating system that the target printer is specified next. For example, in System V based Unix, the printer option is specified in the "lp" command with the "-d" option. Hence, the last option in the print command must be "-d", as in "lp -m -d"; "lp" alone is not acceptable.
To add a printer to the list, type its name in the "Add/Remove" text field, then press enter. The printer will be added to the list. To remove a printer from the list, select it in the list by clicking once on its name. This will remove the printer from the list, placing it in the "Add/Remove" text field. At this point it can be edited and re-entered to the list, or ignored.
Press "OK" to save any changes you make. Note that these changes do not take effect until the next time the PMG is run. To negate any changes made, select "Cancel".
The file pmg_restrictions.dat
which is located in
the OPUS_DEFINITIONS_DIR
contains the control necessary
for you to limit the number of tasks. The Process Manager will
load this file when it is initially activated, and will ensure that
the number of specified tasks is kept under the limit.
The syntax of entries is:
PROCESS.PATH.NODE = NUM_COPIES
Note that the "*
" wildcard entry is allowed for the PATH
and NODE components.
For example,
gifin.g2f.* = 1 !Allows only 1 instance of gifin in g2f path across all cpus mytask.*.* = 1 !Allows only 1 instance of mytask in all paths across all cpus