License-based Resources

This section describes the Accelerator interface to Monitor, an application that monitors license servers and makes the in-use information available to Accelerator.

Many software products in Electronic Design Automation use FlexNet Publisher licensing by Flexera or other vendor-specific license mechanisms.

Monitor provides a centralized interface between vendors' license daemons and Accelerator. The benefits of this approach are:
  • Faster response, with reduced load on the license daemons
  • Improved consistency of license in-use information
  • Individual projects need not be concerned with license details
  • Browser-based interface to access information about licenses in-use

Accelerator is shipped with an edition of Monitor that is licensed to monitor current license activity only, and provide that information to Accelerator. This edition is referred to as LMS (Monitor Small).

Monitor can also store, report, and graph historical license usage and denial activity.
Note: A full Monitor license from Altair is required to enable historical and denial information.

Configuration

Refer to Installation Guide for details about installing and configuring the Monitor product.

By default, Accelerator assumes that the Monitor server is running on the same machine as the Accelerator server on port 5555, under the VOV project name of licmon. If this is not the case, the following statements will need to be placed at the top of the resources.tcl file to inform the Accelerator resource daemon of Monitor's details:
# Enable Accelerator to see Monitor.  
# This is a security feature.
set lm(ssl) true

# Fragment of resources.tcl 
# This is the default configuration.
set LM(flexlmd) localhost:5555
set LM(licmon)  licmon

# You may want to specify a different Monitor
# running on a different host, a different port 
# with a different name.
set LM(flexlmd) someOtherHost:25555
set LM(licmon)  licmonTest

Accelerator uses vtk_flexlm_monitor and vtk_flexlm_monitor_all statements in its resources.tcl configuration file in order to communicate with the Monitor product to obtain license utilization information.

The procedure vtk_flexlm_monitor takes from one to three arguments:
  1. feature - the name of the license feature. This is the name of any feature monitored by Monitor. The name may include a specific Monitor tag. If no tag is specified, the cumulative count for all tags containing the feature will be used.
  2. resource - the Accelerator resource name. If the resource name is specified, then this name is the actual resource name used. If the resource name is not specified, the name defaults to License:<feature>.
  3. map - an optional resource to which the resource should be mapped.
For example:
vtk_flexlm_monitor Design-Compiler

# Pick up a specific tag for Design-Compiler
# This maps the feature Design-Compiler to License:Design-Compiler
vtk_flexlm_monitor SNPS/Design-Compiler

# Specify a different resource name
vtk_flexlm_monitor SNPS/Design-Compiler License:dc

# Additionally specify that all jobs using License:dc need to also use 
# a linux resource.
vtk_flexlm_monitor SNPS/Design-Compiler License:dc linux
As an alternative to individually calling vtk_flexlm_monitor for each feature to monitor, vtk_flexlm_monitor_all can be used. The default behavior of this procedure is to create resources for all features that are known to Monitor. This procedure has a number of options:
Table 1.
Option Description
-daemon host:port Specifies the host and TCP/IP port where Monitor is to be contacted to get license data via HTTP. If not given, the procedure reads the info.tcl in $VOVDIR/../../licmon/licmon.swd/vovlmd to locate the daemon. If the daemon cannot be located, the procedure returns 0.
-tag tag Only use features from the source having this tag. The default is to use features from all license sources. This option may be repeated.
-tags list_of_tags Same as above, only with a list of tags to be included. This option may be repeated.
-I regexp Appends regexp to the list of regexps evaluated for feature inclusion. If no -I options are given, all features from the given source are included.
-X regexp Appends regexp to the list of regexps evaluated for feature exclusion. If no -X options are given, no features are excluded.
-It regexp Appends regexp to the list of regexps evaluated for tag inclusion. If no -I options are given, all tags from the given source are included.
-Xt regexp Appends regexp to the list of regexps evaluated for tag exclusion. If no -X options are given, no tags are excluded.
-fproc fproc-name Specifies the name of the user-defined Tcl filter procedure to apply to the features. The default is vtk_flexlm_monitor_filter {tag feature}. This procedure takes two parameters, a tag and a feature name, and returns a Boolean, where 1 means to include the feature, and 0 means to exclude it. The default procedure always returns 1.
-rproc rproc-name Specifies the name of the user-defined Tcl procedure that returns the resource map name for a feature. The default is vtk_flexlm_monitor_resname {tag feature}. This procedure takes two parameters, a tag and a feature name, and returns a string, which is the VOV resource name for the feature. The default procedure prepends License: to the feature name.
-mproc mproc-name Specifies the name of the user-defined Tcl procedure that returns the right-hand-side of the resource map name for a feature. The default is vtk_flexlm_monitor_mapname {tag feature}. This procedure takes two parameters, a tag and a feature name, and returns a string, which is the right-hand-side of the VOV resource map for the feature. The default procedure returns "", which means no mapping.
-order list_of_tags This options controls the order in which multiple tags (think of "license files") are listed in Accelerator. This applies when there are multiple tags for the same feature. For example, if the feature abc is in two tags, SNPS_BLR/abc and SNPS_US/abc, you will get a resource map called License:abc, which is the OR of the two resource maps associated to each feature, as in
License:abc →  License:SNPS_US_abc  OR License:SNPS_BLR_abc 
However, it is also possible to get the following map, with inverted order of the tags:
License:abc →  License:SNPS_BRL_abc  OR License:SNPS_US_abc 

The -order option allow controlling which map will be used. For example: -order "SNPS_BLR SNPS_US" will use SNPS_BLR before SNPS_US. The option can be repeated multiple times.

This procedure can make getting started with license management much easier and faster. Use this procedure with caution, especially if it is used with any user-defined Tcl procedures. Place the procedure definitions in the resources.tcl file, and be sure to specify the names carefully.

More examples for vtk_flexlm_monitor and vtk_flexlm_monitor_all

Fragment of resources.tcl file:
# Monitor the feature PrimeTime
vtk_flexlm_monitor  PrimeTime

# Monitor the feature PrimeTime, control the order of the tags
vtk_flexlm_monitor -order "SNPS_US SNPS_CH SNPS_FR" PrimeTime 

# Monitor the feature  for Design-Compiler.  Internally VOV
# uses the token dc_shell_license.
vtk_flexlm_monitor  Design-Compiler  dc_shell_license

# The FlexNet Publisher feature "pathmill" maps to the VOV resource "pathmill"
# which, in turn, maps to the resource "sun7"
vtk_flexlm_monitor  pathmill         pathmill         sun7
Example : Monitoring all features
#
# Monitor all the features gathered by the Monitor at grove:5555#
vtk_flexlm_monitor_all -daemon grove:5555

#
# Monitor all the features gathered by the Monitor,
# control the order of the tags
#
vtk_flexlm_monitor_all -order "SNPS_US SNPS_FR" -order "MGC_US MGC_FR MGC_UK"
Example: Monitor some features, user-defined map proc
#
# Monitor some features gathered by the LicenseMonitor at grove:5555
## Make all the Fintronic tools go to the finfarm vovtaskers
# by defining a RHS-procedure

proc fintronic_mapname {tag feature} {
    set rval ""
    if { [regexp {^fin} $feature] } {
        set rval "finfarm"
    }
    return $rval
}

# Only monitor features from tags REAL and Altair Accelerator products
vtk_flexlm_monitor_all -daemon grove:5005 -tag REAL -tag RTDA  -rproc fintronic_mapname

In the above example, features related to the Fintronic Finsim Verilog simulator, recognized by the feature name beginning with 'fin', will have a right-hand-side of finfarm' added to the resource map, so that such jobs will go to vovtaskers offering the 'finfarm' resource.