Input Files

Although an XML syntax has been used for the input files, please don’t try to show off by breaking the extremely lightweight XML parser used in the program. The parser will tries to find specific XML tags and doesn’t really care about much else. To make life generally easier, however, it does properly strip XML comments.

qlicserver.config

The simplest explanation is provided by a sample qlicserver.config file with interspersed comments:

    <?xml version="1.0"?>
    <qlicserverConfig>
      <parameters type="overwrite">

If the optional [type] attribute for the <parameters> element has the value overwrite, any default parameters defined in the program source are cleared. The normal behaviour is to merge with existing values.

        <param name="dir">/srv/www/htdocs/xmldata</param>
        <param name="output">qlicserver.cache</param>
        <param name="LM_LICENSE_FILE">@serv1:@serv2</param>

The [name] attribute is mandatory for the <param> element.

      </parameters>
      <resources type="overwrite">

If the optional [type] attribute for the <resources> element has the value overwrite, any default resources defined in the program source are cleared. The normal behaviour is to merge with existing values.

        <resource name="abaqus" served="abaqus"/>
        <resource name="compile"/>

The [name] attribute is mandatory for the <resource> elements. The optional [served] attribute maps the license ‘feature’ served by the license manager to a GridEngine resource (complex) name. A resource without a [served] attribute is considered an internal resource – ie, managed entirely by GridEngine.

        <resource name="nastran" served="NASTRAN" urgency="100"/>

The optional [urgency] attribute specifies how much extra weight to give to particular resources. This might be useful, for example, to increase the priority of more expensive licenses. It only affects the output generated by the -c option.

        <resource name="foam" total="40"/>

If the optional [total] attribute is given, this can be used to establish what the normal configuration of this internal resource should look like as noted in the section about limits for internal resources. The [total] attribute has no meaning for served resources.

        <resource name="hexa" served="aihexa" type="track"/>

The optional [type] attribute with the value track indicates that this resource is not to be managed, but its status should be added to the output. This is primarily interesting for interactive licenses - to see who has used up all of your licenses.

        <resource name="starjob" served="starpar" type="job"/>
        <resource name="starp" served="hpcdomains" note="STAR-CD parallel"/>

the value job indicates that this resource is to be managed on a per-job rather than the default per-slot basis (new with GridEngine 6.2u2). Since the [note] attribute is not specified anywhere, we can use it to add some useful information for ourselves.

        <resource name="stars" served="starsuite" limit="2" note="STAR-CD serial"/>

The optional [limit] attribute specifies an upper limit on how many resources the GridEngine is allowed to manage. This can be used to prevent jobs from flooding the cluster and/or prevent jobs from consuming all the available licenses. If a negative value is specified, it is subtracted from the total to obtain the limit.

        <resource name="app1" served="APP" from="serverA"/>
        <resource name="app2" served="APP" from="serverB serverC"/>

The optional [from] attribute can be used to rename resources based on the license server on which they reside. This can be used to distinguish between local and global corporate licenses, or between different license versions for the same application (eg, maintained vs. non-maintained licences). For these cases, it is likely useful to specify an additional <derived> resource to recombine the individual features.

        <derived name="app" note="combined local/global licenses">
          <element>app1</element>
          <element>app2</element>
        </derived>

        <derived name="starcd" limit="24">
          <element>starp</element>
          <element>stars</element>
        </derived>

Derived resources are combined from sub-elements and inherit the limits from their sub-elements, but can also be given an explicit limit of their own. The most restrictive limit is always taken. The optional [note] attribute can be used to pass through some useful information for ourselves.

      </resources>
    </qlicserverConfig>

Additional Notes

Whitespace is treated equivalently to colons when parsing the LM_LICENSE_FILE parameter. This allows for easier reading and editing:

    <param name="LM_LICENSE_FILE">
        port@server1
        port@server2
        <!-- disabled for now
            port3@server3
        -->
        <!-- license triad -->
        {port@triad1:port@triad2:port@triad3}
    </param>

As a general side-effect, the license triads are queried before other normal servers.