If a valid license is not available for any of your modeling and simulation software during a HEEDS study, the default response is for that design to be classified as an error design. But this behavior can be modified using a pre-analysis command to check for the availability of a license before HEEDS launches each analysis. This simple process can help to avoid many such error designs, making your exploration studies more effective. Let’s review how to do this for FLEXlm based licenses.
License Check Utility
The HEEDS installation includes a “license check utility” to determine if required modeling and simulation software license features are available prior to submitting a design evaluation. If a license is not available, the analysis does not get submitted, thus avoiding an error designation. Instead, HEEDS waits 20 seconds before checking again for an available license. This process continues until either a license is available (at which point HEEDS submits the design evaluation) or the max execution time is reached (in which case HEEDS treats the design as an error and moves on to the next design, as it would if you did not use the license check utility).
The license check utility is called check_availability.exe, and it is available in the Win64\utils folder within your HEEDS installation directory (e.g., C:\HEEDS\MDO\Ver2016.10\Win64\utils). That folder contains information about how to use the utility in the file Instructions for using the license check utility.pdf.
Running the License Check Utility from a Command Prompt
Before launching a HEEDS study, it may be helpful to check for the availability of modeling and simulation software licenses. This can be done by running the license check utility from a command prompt. The command format is:
Path\check_availability.exe port@SERVER_NAME DAEMON_NAME FEATURE_NAME #LICENSES
The port@SERVER_NAME corresponds to the port # and name/IP address of the machine acting as your software license server. The DAEMON_NAME and FEATURE_NAME depend on the analysis software you are using, and #LICENSES is the number of available software licenses you are seeking to use.
You can review the diagnostics from your query in the file check_avail_output_file, which is written to the directory in which you executed the license check utility command. This file contains the current license status, including how many licenses you have and how many are checked out at the time of the query.
If a license is available, the command prompt will return immediately. If not, the command prompt will stay active and you will see a message: “The license server is running, but the requested number of licenses are not available. Will wait 20 secs and check again”. This will repeat until a license is available.
Implementing in HEEDS
After you have tested this functionality outside of HEEDS, the next step is to integrate the query into your HEEDS workflow. For this purpose, we will utilize the Advanced Analysis Execution Option to submit a command prior to analysis execution, as shown in the figure below. The command to submit is the license check utility command for your system, as discussed above.
Finally, change the Max execution time to an appropriate value. This is the time at which HEEDS will treat the design as an ERROR. This limit could be reached, for example, if a connection with the license server is broken or if other long-running analysis jobs are using the license. This Max execution time should be the time you are willing to wait for the license to free up plus the analysis execution time anticipated for your model.
Setting the Path
To use this utility within HEEDS, it is necessary either to add the location of the utility to the PATH variable for your system, or to copy the executable files to your analysis directory. Modifying the PATH variable is the most general approach, as it is a one-time action that works for both Windows and Linux.
On Windows machines, the latter approach can be useful for situations that are not too complicated, such as studies involving a single analysis model. In this case, you need to add check_availability.exe and lmutil.exe as input files to the HEEDS analysis where they are to be used. Both of these files are located in the Win64\utils folder. By including these as input files, they will automatically be copied to the appropriate analysis folder prior to each design evaluation, along with the actual analysis input files. If you use this approach, the command to execute the pre-analysis command should use a relative path:
check_availability.exe port@SERVER_NAME DAEMON_NAME FEATURE_NAME #LICENSES
HEEDS provides a FLEXlm-based license check utility that performs a license availability query prior to launching your analysis tool. If the license feature requested is available, HEEDS will submit your analysis job in the normal fashion. If not, it will wait 20 seconds and then check the availability again. It will continue in this manner until either a license becomes available or the maximum execution time is reached.
The main benefit of this utility is that it prevents erroneous designs caused by license unavailability, thus promoting a more effective exploration process that is not clouded by false error designs.
We hope this tip helps you to discover better designs, faster.