Hi Bhavishya:

One way is to have a resource quota set that limits the number of jobs on any 
host to the number of processors on that host ($num_proc):

# qconf -srqs host_slot_limits
{
   name         host_slot_limits
   description  Limit Slots for Hosts
   enabled      TRUE
   limit        hosts {*} to slots=$num_proc
}

Cheers, Hugh


From: [email protected] [mailto:[email protected]] On 
Behalf Of Bhavishya Goel
Sent: Wednesday, March 27, 2013 8:09 AM
To: [email protected]
Subject: Re: [gridengine users] Blocking all the slots on the node for one job

So the option of using openmp parallel environment doesn't really work. So if I 
have two queues, q1 and q2 for two set of users, and if q1 has occupied all the 
slots on one node, the grid engine still schedules the jobs from q2 on the same 
node!  So my qstat output may look like this:

queuename qtype resv/used/tot. load_avg arch          states
---------------------------------------------------------------------------------
q1@node-1 BIP   0/8/8          0.01     linux-x64
---------------------------------------------------------------------------------
q2@node-1 BIP   0/4/8          0.01     linux-x64

Is there a way to fix this?

On Tue, Mar 26, 2013 at 5:02 PM, Reuti 
<[email protected]<mailto:[email protected]>> wrote:
Hi,

Am 26.03.2013 um 16:39 schrieb Bhavishya Goel:

> I want to schedule a single job on the cluster using grid engine, but while 
> running that job, I want to block all the slots on that particular node 
> during the execution of that job. I need to do this for benchmarking reasons. 
> The easiest way that I can think of is to use the openmp parallel environment 
> with the number of required slots equal to the number of slots on one node. 
> That way (as per my understanding) grid engine won't schedule my job unless 
> there are 8 slots available on a single node and won't allocate the slots on 
> that node to other jobs while job is executing. Is my understanding correct? 
> Is there a better/easier way of doing this?
Correct, this is one way of doing it: requesting a PE with "allocation_rule 
$pe_slots" and requesting all slots on a machine which still allows you to 
execute a serial job only.

Another way could be to define a complex as "BOOL EXCL" (`man complex`), attach 
it at least to this particular exechost and request it at the job submission. 
This will ensure that you get this exechost *) for this job alone too.

-- Reuti

*) The complex can also be attached to a queue to get a queue instance on your 
own, but this won't help here in case you have more than one queue per 
exechost. Then attaching it to the exechost is the only working way.


> --
> ಠ_ಠ
> _______________________________________________
> users mailing list
> [email protected]<mailto:[email protected]>
> https://gridengine.org/mailman/listinfo/users



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

Reply via email to