Am 10.10.2012 um 17:13 schrieb Orion Poplawski:

> On 10/10/2012 09:01 AM, Reuti wrote:
>> Am 10.10.2012 um 16:57 schrieb Orion Poplawski:
>> 
>>> On 10/10/2012 03:53 AM, Reuti wrote:
>>>> Am 09.10.2012 um 20:25 schrieb Orion Poplawski:
>>>> 
>>>>> On 10/08/2012 04:56 PM, Reuti wrote:
>>>>>> Am 08.10.2012 um 23:58 schrieb Orion Poplawski:
>>>>>> 
>>>>>>> On 10/05/2012 05:09 PM, Reuti wrote:
>>>>>>>> Am 06.10.2012 um 00:36 schrieb Orion Poplawski:
>>>>>>>> 
>>>>>>>>> I'd like to create a queue that only allows jobs that have requested 
>>>>>>>>> a specific resource requirement.  Is that possible?
>>>>>>>> 
>>>>>>>> Yes, just make the complex's requestable setting not YES but FORCED 
>>>>>>>> (man complex).
>>>>>>>> 
>>>>>>>> -- Reuti
>>>>>>> 
>>>>>>> Thanks for the pointer.  Unfortunately it doesn't do quite what I want.
>>>>>>> 
>>>>>>> I was hoping to re-use a complex I already have that keeps track of IDL 
>>>>>>> licenses on hosts.  I have a load sensor that sets value "idllic" to 
>>>>>>> the number of available idl licenses.  Unfortunately if I set idllic to 
>>>>>>> FORCED, then the queues that have that set via the host load sensor 
>>>>>>> (but not a queue value) cannot run jobs that do not set idllic either.
>>>>>> 
>>>>>>> So it seems that for jobs to be able to go to the general queues as 
>>>>>>> well as a special idl queue, I'll have a create a second complex (say 
>>>>>>> "idl"), and users would have to specify both (-l idl,idllic=1) which 
>>>>>>> seems somewhat clunky.
>>>>>> 
>>>>>> In total: IDL jobs should go the reserved idl.q for this job type and 
>>>>>> the general.q; normal jobs should only go to the general.q?
>>>>> 
>>>>> yes
>>>>> 
>>>>>> 
>>>>>> You can use a JSV then to request a certain queue like general.q if 
>>>>>> idllic was not requested.
>>>>> 
>>>>> Hmm, nope, sorry need more help here.  How exactly would I do that?  I 
>>>>> shouldn't be requesting the general.q, it should just satisfy the 
>>>>> requirements.
>>>> 
>>>> Do you have more than these two queues? Then we do it the other way round: 
>>>> the JSV will request a BOOL resource instead of a queue list if a license 
>>>> wasn't requested or the requested amount was zero.
>>>> 
>>>> license             lic        INT         <=      YES         YES        
>>>> 0        0
>>>> normal              no         BOOL        ==      YES         NO         
>>>> 0        0
>>>> 
>>>> And normal=TRUE is attached to all normal queues.
>>> 
>>> Thanks, but that still isn't what I'm trying to do.  I want my "license" 
>>> jobs to be able to go to normal queues as well if they satisfy the license 
>>> requirement.
>> 
>> Yes - did you check the JSV I attached? license'ed jobs can run anywhere, 
>> other jobs get normal=TRUE attached and are limited to normal queues.
>> 
>> -- Reuti
> 
> I guess I don't understand how jobs without normal set (i.e. jobs with 
> license >= 1) run in queues with normal=TRUE attached to them.

It's just defined as "requestable YES" - not "FORCED". I.e. if a job doesn't 
request "normal", it can run in a queue whether it's set or not. This is the 
difference to "FORCED".


>  Is normal=FALSE attached to the license queue instead?

No, it's just not there. You can have 3 cases:

-l normal (which is -l normal=TRUE) => give me a queue (or host) where 
normal=TRUE is set
-l normal=FALSE => give me a queue (or host) where normal=FALSE is set
Without requesting normal at all: I don't care about the setting inside the 
queue (or host).


> BTW -  Wouldn't you need the following to handle cases of other hard resource 
> requests that don't have "license"?
> 
> 
> --- jsv-lic.sh.orig        2012-10-10 09:03:45.000000000 -0600
> +++ jsv-lic.sh     2012-10-10 09:07:45.000000000 -0600
> @@ -22,6 +22,8 @@
>           if [ "$amount_h_license" -eq 0 ]; then
>               jsv_sub_add_param l_hard normal=TRUE
>           fi
> +      else
> +          jsv_sub_add_param l_hard normal=TRUE

Argh - true.

Maybe it would be shorter to add the request first all the time before the 
`if`, and then remove it again in one case only :-D

   jsv_sub_add_param l_hard normal=TRUE
   l_hard=$(jsv_get_param l_hard) # We know one parameter is there at least now
   has_h_license=$(jsv_sub_is_param l_hard license)
   if [ "$has_h_license" = "true" ]; then
       amount_h_license=$(jsv_sub_get_param l_hard license)
       if [ "$amount_h_license" -gt 0 ]; then
           jsv_sub_del_param l_hard normal
       fi
   fi

-- Reuti


>       fi
>    else
>        jsv_sub_add_param l_hard normal=TRUE
> 
> 
> -- 
> Orion Poplawski
> Technical Manager                     303-415-9701 x222
> NWRA, Boulder Office                  FAX: 303-415-9702
> 3380 Mitchell Lane                       [email protected]
> Boulder, CO 80301                   http://www.nwra.com


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

Reply via email to