## Qmon Overview

qmon is the GUI client of Grid Engine. It allows the administration and use of the Grid Engine system via a GUI. Its functionality is outlined in detail in the qmon man page and with screenshots and usage examples in the Grid engine documentation.

It has been built with the help of several 3rdparty X11/Motif based widget libraries.
The libraries can be found under the 3rdparty/qmon directory. For more detailed documentation for the
libraries I refer you to the following links:

XMT - Motif Tools (<source>/3rdparty/qmon/Xmt310) | http://www.motiftools.org
Xbae - Table Widget (<source>/3rdparty/qmon/Xbae) | http://www.lesstif.org/Xbae
ListTree - Tree Widget (<source>/3rdparty/qmon/ltree) | http://www.akvo.com/robm/software/unsupported
Spinbox - Widget (<source>/3rdparty/qmon/spinbox) | http://ftp.x.org/contrib/widgets/motif/spinbox/spinbox.html
IconList - Widget (<source>/3rdparty/qmon/iconlist) | Link no longer available
Tab - Folder Widget (<source>/3rdparty/qmon/tab) | http://ftp.x.org/contrib/widgets/motif/Tab

The most important of the libraries is the Xmt library build on top of the Motif library providing a rich set of generally useful widgets and a
wealth of convenience and utility routines. The main concept of the Xmt library is to 'mockup' GUIs from resource files. The general mechanism of X11/Motif to define layout settings and look and feel in resource files has been enhanced and simplified in Xmt.
The other widget libs have been connected to Xmt to allow a unified process for building the qmon GUI.

qmon behaves like any other Grid engine client application (General Client Implementation). As an event driven client requests are triggered by a socalled callback
function or a timer that requests information from the master periodically.

Here is a listing of the files in the <source>/clients/qmon directory and its related dialogues or functionality respectively.

Dialogue | Files/Functionality

Main Dialogue
showing the menu bar and a toolbar to popup the task dialogues

- qmon_main.c
  process commandline switches, execute general setup, enroll to Grid Engine master, enter XEvent main loop and wait for XEvents
- qmon_main.ad
  global or main dialogue specific resource settings, the application default files are processed into a
  string array and fed to qmon's resource database during the startup phase.
  Dialogue layouts are also mainly constructed with the help of application default files, so slight
  changes to dialogue layouts are very easy to achieve.
- qmon_appres.c
  handle application defined resources
- qmon_menus.c
  create the menu and toolbar main dialogue window and register callback functions
- qmon_init.c
  initialize the Xmt library, register additional widgets like Xbae table, Tab widget etc.
- Q
  this resource file contains two parts; the first part is shipped as the application default file that
  can be tuned by the user and resides in the user's home directory. The second part includes
  all *.ad files. The Q file is processed by a special script develToCVS that produces two stringtables for the fallback resources and the dialog descriptions.

Job Control Dialogue

- qmon_job.c
  creation of the job control dialogue, definition of job control specific task functions and callbacks
- qmon_job.ad
  layout definition of the dialogue and related subdialogues
- qmon_jobcustom.c
  creation of job customize dialogue and its specific functionality
- qmon_jobcustom.ad
  layout definition of the dialogue

Queue Control Dialogue

- qmon_queue.c
  creation of the queue control dialogue, definition of queue related functionality
- qmon_queue.ad
  layout of the queue control dialogue and related subdialogues
- qmon_qcustom.c
  functions to filter and customize the queues that shall be displayed
- qmon_qcustom.ad
  resource file for the dialogue layout
- qmon_qaction.c
  functions to add/modify queues and their configuration
- qmon_qaction.ad
  layout of the corresponding dialogue

Submit Dialogue

- qmon_submit.c
  functions to prepare a job for submission to the Grid Engine master
- qmon_submit.ad
  layout for the submit dialogue and its subdialogues
- qmon_request.c
  functions to handle resource requests and corresponding dialogue routines
- qmon_request.ad
  resource file for the resource request subdialogue of the Submit Dialogue

Complex Configuration Dialogue

- qmon_cplx.c
  functions for handling complexes configuration
- qmon_cplx.ad
  layout resource file for the complex configuration dialogue

Host Configuration Dialogue

- qmon_host.c
  administration/submit/execution host related functionality
- qmon_host.ad
  layout for the dialogue and its subdialogues

Cluster Configuration Dialogue

- qmon_cluster.c
  functionality concerning the Grid Engine cluster configuration
- qmon_cluster.ad
  layout of the dialogue and its subdialogues

Scheduler Configuration Dialogue

- qmon_sconf.c
  scheduler behavior related functions
- qmon_sconf.ad
  layout of the dialogue

Calendar Configuration Dialogue

- qmon_calendar.c
  functions to define calendar objects for Grid Engine
- qmon_calendar.ad
  layout of the dialogue

User Configuration Dialogue

- qmon_manop.c
  functions to manipulate user related configurations
- qmon_manop.ad
  layout of the dialogue

Parallel Environment Configuration

- qmon_pe.c
  functions for the parallel environment dialogue
- qmon_pe.ad
  layout of the dialogue

Checkpoint Configuration

- qmon_ckpt.c
  checkpoint dialogue related functions and callbacks
- qmon_ckpt.ad
  layout of the dialogue

Ticket Configuration

- qmon_ticket.c
- qmon_share.c
- qmon_fticket.c
  functions for changing and configuring the Grid Engine Enterprise Edition policy related objects like
  the sharetree, the number of overall tickets, the aging of usage
- qmon_ticket.ad
- qmon_fticket.ad
- qmon_share.ad
  layout descriptions for the corresponding dialogues

Project Configuration

- qmon_project.c
  Grid Engine Enterprise Edition project object manipulation functionality
- qmon_project.ad
  layout of the dialogue

Browser

- qmon_browser.c
  functions to browse and display the status of jobs, queues, messages
- qmon_browser.ad
  layout of the dialogue

Helper Dialogues/Functions

- AskForItems.c, AskForItem.ad
  select items from a list of available items
- AskForTime.c, AskForTime.ad
  enter time or memory values fulfilling special format requirements
- qmon_matrix.c
  Xbae matrix related Xmt glue functions
- qmon_load.c
  list choosable load/resource values
- qmon_widgets.c
  external widget - Xmt glue and helper functions
- xmlocale.c
  locale test example
- tree_demo.c
  ListTree widget demo example
- qmon_preferences.c
  load a .qmon_preferences file for saving/loading qmon session settings
- qmon_message.c, qmon_message.ad
  dialogue for displaying warning and error messages
- qmon_about.c, qmon_about.ad
  show qmon version and copyright information

- qmon_comm.c
  Functions for sending changes and receiving the latest version of Grid Engine objects like
  queues, jobs etc.
  qmon keeps its own copy of the corresponding object lists and works on this copy.
- qmon_timer.c
  In order to keep in sync with the master keeping the current version of the Grid Engine objects
  qmon synchronizes on a regular basis. The timer is switched on if a dialogue is opened. If the
  dialogue is closed the timer is switched off to reduce network traffic.

Copyright 2001 Sun Microsystems, Inc. All rights reserved.