[GE dev] Core binding suggestion...

templedf daniel.templeton at oracle.com
Wed Oct 6 15:46:15 BST 2010

Yes, a client-side JSV can be skipped with -clear, but in cases where 
it's to the users' own detriment, like this one, I generally consider it 
self-punishing and leave it on the client side.

Rewriting in Perl would be a good thing.  The problem with a Borne 
script isn't the load.  It's the latency.  Every incoming job gets the 
script run against it.  Because Borne scripts have to fork additional 
processes for every little thing, you're easily throttling down your 
acceptance rate to under 1 job per second.  Averaged out over the day, 
that may be less traffic than you see, but I'm willing to bet that it 
would nonetheless annoy your users since submissions tend to be bursty.


On 10/ 6/10 07:02 AM, Chris Jewell wrote:
> Hi Daniel,
> Thanks for the pointers.  One question, though, is that if I implement the client-side JSV in the sge_request file (by adding the line -jsv /path/to/jsv), then can't the normal user simply get round the JSV by using the qsub "-clear" argument?  I'm not that bothered about the load on the server, since the number of job requests is not enormous, and I'll implement this in Perl eventually anyway.  Now if I could only figure out how to forward the binding information to OpenMPI..... ;-)
> Cheers,
> Chris
> On 5 Oct 2010, at 17:36, Daniel Templeton wrote:
>> Looks good to me.  Two comments, though.  First, it looks like you're only setting the binding strategy for SMP jobs if the binding strategy is already set.  That will fail, for example, if a user runs "qsub -clear -pe smp" because the -clear will wipe out the sge_request file. Second, you probably should set this as a client-side JSV in the sge_request file.  You don't want to run a Borne shell script JSV on the server side.
>> Daniel
>>> Many thanks Daniel!  This is what I came up with:
>>> jsv_on_verify()
>>> {
>>>    if [ `jsv_is_param pe_name` ]&&   [ `jsv_is_param binding_strategy` ]; then
>>>        if [ "`jsv_get_param pe_name`" = "smp" ]; then
>>>          job_smp_cores=`jsv_get_param pe_min`
>>> 	jsv_set_param binding_strategy "linear"
>>> 	jsv_set_param binding_amount $job_smp_cores
>>>          jsv_accept "SMP Job accepted with $job_smp_cores cores"
>>>          return
>>>        fi
>>>    fi
>>>    jsv_accept "Serial/MPI job accepted"
>>>    return
>>> }
> --
> Dr Chris Jewell
> Department of Statistics
> University of Warwick
> Coventry
> CV4 7AL
> UK
> Tel: +44 (0)24 7615 0778


To unsubscribe from this discussion, e-mail: [dev-unsubscribe at gridengine.sunsource.net].

More information about the gridengine-users mailing list