[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Condor-users] Jobs License Management

kschwarz@xxxxxxxxxxxxxx wrote:
Hi all,

We are using Condor in a pool where the master node is Linux based and all the executors are Windows based. We have several third-party applications that could run in batch but they need licenses available for the jobs. Interactive sessions could also checkout the licenses and therefore they will compete with the jobs for these licenses. I have read the Condor Technical Document "Managing Jobs That Use Licenses With Condor" (Draft, As of August, 2008, still a draft), however the "Assign Licenses to Machines" method in our case is not applicable, and the "Have Jobs Restart" seems to be one way that could attend our today needs, but as a novice Condor user I have not understood how it is implemented.

Could anyone share how to implement this method to manage jobs that use Flexlm licenses (e.g.)? Both methods using DagMan and without its use, will be appreciated. Please share the examples of the scripts and submit files. Don't worry about scripting languages. I can translate them to windows compatible scripting languages.

Could anyone help me to get it working?

Are there other methods?

I have also read in the Condor Users mailing list archive that there are plans to have license management as a Condor feature and that it would be out in the version 6.9.x development series (03 Aug 2005). Could anyone update the planned deployment date of this feature?

Thanks, Klaus

You can use Concurrency Limits from 7.1.3 [1].

Assign some number of licenses for use by Condor jobs, say 300. In your Negotiator's configuration add: MYLICENSE_LIMIT = 300

Now in each job that needs the license add: concurrency_limits = MYLICENSE

Condor does not check out the licenses from Flexlm, it just tries to keep the number of jobs that /will/ check out licenses under control.

Especially since you are sharing licenses between batch jobs and interactive users you should setup your jobs to notice if they failed because they did not checkout a license. This configuration will be specific to your application, but the document you already mentioned has a good example [2]. If your program exits with code 52 when it fails to checkout a license you'd add this to your job: on_exit_remove = (ExitBySignal == TRUE) || (ExitCode != 52)



[1] http://www.cs.wisc.edu/condor/manual/v7.1/8_3Development_Release.html#SECTION00931000000000000000
[2] http://www.cs.wisc.edu/condor/techpaper/licenses.html