[GE dev] Core binding suggestion...
daniel.templeton at oracle.com
Wed Oct 6 15:50:41 BST 2010
I forgot to mention that you can use "-binding pe linear:1", which tells
OGE not to do the processor binding itself, but instead to pass along
the info to the job's MPI via env vars.
On 10/ 6/10 07:46 AM, templedf wrote:
> 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..... ;-)
>> 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.
>>>> Many thanks Daniel! This is what I came up with:
>>>> 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"
>>>> jsv_accept "Serial/MPI job accepted"
>> Dr Chris Jewell
>> Department of Statistics
>> University of Warwick
>> CV4 7AL
>> Tel: +44 (0)24 7615 0778
> To unsubscribe from this discussion, e-mail: [dev-unsubscribe at gridengine.sunsource.net].
To unsubscribe from this discussion, e-mail: [dev-unsubscribe at gridengine.sunsource.net].
More information about the gridengine-users