[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Condor-users] Jobs License Management
- Date: Tue, 14 Oct 2008 15:51:14 -0500
- From: Matthew Farrellee <matt@xxxxxxxxxx>
- Subject: Re: [Condor-users] Jobs License Management
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
and the "Have Jobs Restart" seems to be one way that could attend our
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?
You can use Concurrency Limits from 7.1.3 .
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 . 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)