- 1 Grid Engine 6 FlexLM License Integration (Olesen Method)
- 2 The Proposed Methods
- 2.1 Problems With The Load Sensor Approach
- 2.2 How To Let Go of Insecurities 7 Steps To Build Your Confidence
- 2.3 7 Reasons Why Not Making Mistakes Is The Biggest Mistake
- 2.4 Servant Leadership: Helping People Come Alive
- 2.5 Disney Brings "Cars" To Life With Cars Land
- 2.6 Love Everything, Be Attached To Nothing
Grid Engine 6 FlexLM License Integration (Olesen Method)
- This document was last updated: ----fx Tue May 4 17:20:50 BST 2010
- Computational chemistry software from Schrödinger was extensively used during the creation and testing of this document and the methods it describes. It is difficult to write about FLEXlm license integration without having licensed applications onhand to test with. The authors of this document would like to acknowledge and thank Schrödinger for their generous donation of software and licenses.
Integrating license applications into Grid Engine systems is pretty easy if:
- The application is unrestricted due to site-wide or enterprise licensing agreements
- The application is node-locked to particular cluster nodes
- The available license pool is larger than the number of job slots managed by Grid Engine
- The license server and application is exclusive to the Grid Engine system (no external usage at all)
If you need to integrate a licensed application into a Grid Engine (aka N1GE) managed system, and any of the above conditions applies to your situation then consider yourself lucky as you will not need to use the methods described in this document. Node-locked applications can be handled via simple configuration of Grid Engine requestable resources and dedicated cluster license servers (where the cluster nodes are the only possible consumers of license tokens) can be easily handled via user requestable, consumable resources. Search the Grid Engine or N1GE documentation for the words highlighted in bold for specific implementation details.
This document is for people who need to handle multiple license servers scattered throughout an enterprise or instances where the Grid Engine cluster is not the sole consumer of license tokens. This document describes a new method of making the Grid Engine scheduler and resource allocation policy mechanisms aware of the ever changing license availibility data.
Readers are encouraged to follow and read the links located in the Primary References section. There is a significant amount of intro and background material contained in those links that is not duplicated here.
Mark Olesen, posting on the Grid Engine users list, made some very interesting comments about FlexLM license integration when Grid Engine load sensors are used for resource reporting. In particular, he proposed a method by which the entire load sensor process could be bypassed altogether in favor of methods that directly adjust the value of user requestable consumable resources within the Grid Engine complex.
Mark also mentioned that he was willing to share his code but that he did not have the time to handle user questions or any sort of support related duties. Chris Dagdigian volunteered to provide support via the http://gridengine.info site and the email@example.com mailing list.
- Configuration notes for the qlicserver
- A presentation from the 2007 workshop describing the problem and solution
- The original document from Mark Olesen describing his solution to the FlexLM integration problems
- 'Cluster Tricks: Grid Engine License Juggling' (non technical introduction)
- 'Simple integration of FLEXlm-licensed applications into Grid Engine managed clusters'
Additional Reference Material
- 'N1GE 6 Administration Guide: Chapter 3 - Configuring Complex Resource Attributes
- Grid Engine HOWTO on 'Consumables'
- Grid Engine HOWTO on 'Setting up a load sensor in Grid Engine'
- X-Formation License Statistics - A lowcost solution for FLEXlm/FLEXNet license monitoring which generates realtime html, graphs, rrdtool graphs and allows system admin to be emailed upon various license conditions.
The Proposed Methods
Problems With The Load Sensor Approach
An obvious problem with the load sensor approach is the delay associated with the load reports, as mentioned in the online documentation (see http://gridengine.sunsource.net/project/gridengine/howto/resource_management.html):
Unfortunately, due to the loadsensor's delay, it can't be 100% excluded that batch jobs are dispatched and started although the license has been aquired by an interactive job.
The problem is actually much more serious than suggested by this warning! A race condition between a GridEngine job and an interactive job is less problematic than what actually occurs.
In the following examples, we'll examine how the licenses are managed with different approaches. For the sake of clarity, a new pseudo-variables internal_count and available have been introduced to reflect the current internal GridEngine state. The other variables - complex_values and load_values - are retrieved via qconf -se global.
The Pure Load Sensor Approach
Here the complex_values are left as NONE. The license availability is managed exclusively over the load sensor. This combination has the interesting side-effect that the internal bookkeeping is not used.
Consider the following:
Start: all licenses are available load_values license=4 complex_values NONE (internal_count) NONE (available) license=4 Then: launch X jobs, each with -l license=4
Since all nodes provide resource license=4 and there is no internal bookkeeping to track the consumption of the resource, all jobs attempt to start at the same scheduling interval. Only one job wins the race and others fail with licensing problems.
A Combined Internal and Load Sensor Approach
Here the complex_values are set to the number of licenses available. The GridEngine decides on availability based on complex_values minus (internal_count) or the load_values. The lowest value dictates the availability, as mentioned in the online documentation (see http://gridengine.sunsource.net/project/gridengine/howto/loadsensor.html):
The lesser of the Consumable Resources or the load sensor value will be used to prevent license oversubscription.
Consider the following:
Start: all licenses are available load_values license=4 complex_values license=4 (internal_count) NONE (available) license=4 Then: launch two jobs, each with -l license=4:... \n
How To Let Go of Insecurities 7 Steps To Build Your Confidence
Self-worth comes from one thing thinking that you are worthy. Wayne DyerIts okay to have insecurities, we all do and its crucial for us to observe and understand the impact these insecurities have on the quality of our lives.
7 Reasons Why Not Making Mistakes Is The Biggest Mistake
The FEAR of being nothing, achieving nothing and becoming nothing should be way bigger than the fear of making mistakes.A life spent making mistakes is not only more honorable, but more useful than a life spent doing nothing. ~ George Bernard Shaw
Servant Leadership: Helping People Come Alive
"Its a powerful perspective on work -- holding within it a value for collaboration, agency, creativity, and meaning. What if we all could see what we do in that way? What if our organizations supported us in holding that perspective, and to go one step further, how can we create institutions that release these core values? In his seminal 1970 essay
Disney Brings "Cars" To Life With Cars Land
After five years in the making, Disney California Adventure is finally ready to rev up the engines on Cars Land. Disneys latest creation, based on the hit Pixar movie, brings the popular characters to life at Disney California Adventure.
Love Everything, Be Attached To Nothing
As human beings we all want to be happy and free from misery we have learned that the key to happiness is inner peace. The greatest obstacles to inner peace are disturbing emotions such as anger, attachment, fear and suspicion, while love and compassion and a sense of universal responsibility are the sources of peace and happiness. Dalai Lama