hi:
since qacct -o uid will  provide  UTIME (cpu-time)  of uid
could one setup consumable UTIME complex and load senser to tract the UTIME
when user's UTIME exceed the limit , system will set the fsare of uid to 0 so uid cannot submit job?
regards



On 2/24/2011 1:58 PM, Reuti wrote:
Am 24.02.2011 um 18:53 schrieb Dave Love:

Reuti<[email protected]>  writes:

Yep, there is nothing in SGE to withdraw the used computing time from some 
deposit. It would be possible with an external control instance, which issues:

- `qacct` for the past usage.
- `qstat -j "*"` to get the actual consumption for running jobs.
- if the user is over his limit: put waiting jobs on system hold, and decide 
wether to drain (with some interest) / suspend / kill the just running ones.
As I understand it, Gold
<http://www.clusterresources.com/products/gold-allocation-manager.php>
does that sort of thing, but I don't know of any gridengine integration
for it -- does anyone else?
AFAICS it seems possible to integrate in into SGE by putting the mandatory call to reserve the necessary fund 
for a job into the JSV and call "Job Quotation @ Job Submission Time", as there it no 
"submission_method" in SGE. In the a queue or global epilog the real costs could be adjusted by 
"Job Charge @ Job End Time".

But I wonder about one thing: there is nothing in Gold to send commands to the 
queuing system. Means: you have no deposit, you can't submit (i.e. the deposit 
left will always allow the submitted job to run to their end) [using 
Reservations and adjusted to the real values at the end of the job in case the 
job was shorter than estimated]. Nevertheless, you can also have a look at the 
actual deposit which is left when this is updated priodically by a cron-job.

Or you allow the submission even without te required fund, but place the job on 
systemhold and another cronjob (or the one from above), can remove the system 
hold in case the deposit which is left is sufficient again.

The "Job Reservation @ Job Start Time" they suggest is not possible with SGE. 
It would have to be called when the job starts (or better: right before it starts) (yes, 
it could be put in a starter method or queue/global prolog). But when it fails, it would 
mean to reschedule the job as it's to late to prevent the job from running. There is no 
hook in SGE called by the scheduler just before it would try to start the job. It's the 
same problem like with the license manager integration.

When you are happy with the reservation at submission time, it should work.

PS:  Pitfall: advance reservation in SGE. There is no ARV (advance reservation verifier). In my 
opinion the complete AR should be charged then - whether you submit something therein or not. But 
one could use `qrsub` with a wrapper and honor in the JSV when "-ar" is specified not to 
reserve again. `qrdel` would then call  "Job Charge @ Job End Time" in a wrapper or when 
the AR ends at the intended time.

-- Reuti
_______________________________________________
users mailing list
[email protected]
https://gridengine.org/mailman/listinfo/users

<<attachment: laotsao.vcf>>

_______________________________________________
users mailing list
[email protected]
https://gridengine.org/mailman/listinfo/users

Reply via email to