[GE users] Licenses by host not by slot

asa hammond asa at assembleco.com
Mon Jan 30 22:06:56 GMT 2006

Hello all. I have a licensing situation I have not run across in past  

I have a software application which is licensed per host, ie if one  
token is grabbed for a host then an unlimited number of tokens can be  
taken out for that host.  There are only a limited number of these  
tokens and I want any machine to be able to use them.  I have a bunch  
of machines with 2 slots and currently I have a global complex foo  
set to 10 but this will only let 10 tokens at a time be checked out  
and it often happens that the tokens are checked out onto only 5  
machines (two per host) and thereby I am not using up the the  
licenses in the most efficient manner. Is there a way to spread these  
out? Is this the $round_robin stuff?

One setup I have tried involved just giving each of 10 machines a  
host complex of foo=2 but then if those machines are crunching away  
on other things I am not able to use those tokens till those machines  
are available.

I suppose some method would work where I only allow each machine to  
check out one of the foo licenses, and then in the header of my  
crunch script I can do some complex modification on the local machine  
to add another token to it. But then how do I police this when the  
jobs end? I can have a chaser at the end of my script which  
decrements the host available amount, but what if a script crashes  
out without running the chaser? Then I need to have a global sweeper  
process which runs every once in a while like the spiffy Olesen  
method. My app does not use flexlm, but I could write my own loads  
script a la Olesen I suppose. Any slicker methods?

Thanks for the consideration.


More information about the gridengine-users mailing list