[saga-rg] JobService.submitJob() query

Graeme Pound G.E.POUND at soton.ac.uk
Wed Feb 22 03:27:56 CST 2006


Andre,

I may have confused the issue by mentioning the JobDefinition attribute 
"SAGA_HostList". This appears to have a valid role mapping to the 
"CandidateHosts" element of a JSDL document (and also in LSF?). The 
"SAGA_HostList" attribute should not be used to specify the resource 
manager.

The problem rather is how is the resource manager (in the form of a URL 
or machine name) specified when the user invokes submitJob(). There are 
three possible solutions:
	1) Add an argument "host" to the submitJob() method (similar to 
runJob()) to specify the resource manager
	2) Specify the resource manager in the JobService constructor
	3) Add a new required attribute to the JobDefinition class (e.g. 
"SAGA_ResouceManager")

I do not like solution 3 since job definition is conceptually distinct 
from the choice of resource manager, for example you may wish to define 
a single JobDefinition and submit that job to several different resource 
managers.

I do not have a strong preference between solutions 1 and 2. (Although 
constructors pose a small problem for the Java bindings)

Graeme



Andre Merzky wrote:
> Hi Graeme, 
> 
> I am not much of an expert in resource thingies, so what I
> say should be taken with a grain of salt.  Or rather with a
> spoon I guess...
> 
> I assumed that run_job ("myhost", ...) would run the job on
> myhost.  But what you say (and what the spec implies I
> think, after reading again) is that myhost is specifying the
> resource manager contact, not the target host.  Right?
> 
> Well, then we have the ability to specify a resource manager
> contact for run_job, and a target resource on job_submit.
> But no combination seems possible.
> 
> Frankly, I think that does not make sense.  For one the
> semantics between job_run and job_submit should not be that
> different (job_run was supposed to be a shortcut for
> job_submit).  Secondly, there are clearly use cases for both
> versions (resource manager contact and target resource).
> 
> One solution would be to specify the resource manager
> contact in the constructor of the job_service, as that is
> supposed to represent the resource and job manager anyway I
> guess.  The host in run_job would then specify the target
> resource ("" for 'any resource' I guess).
> 
> But again, I am not on firm ground in resource management,
> and rather would not like to mess w/o feedback of someone
> more knowledgeable.  What is your opinion?
> 
> Thanks, Andre.
> 
> 
> 
> Quoting [Graeme Pound] (Feb 21 2006):
>> Andre,
>>
>> I do not think that the attribute 'SAGA_HostList' of
>> JobDefinition is appropriate either. The description of
>> 'SAGA_HostList' in the strawman API reads:
>>
>>   SAGA_HostList
>>    - A list of host names, or host group names, which can be
>>      considered by the resource manager as candidate hosts for
>>      the job. Whether or not the job actually ends up running
>>      on one of the hosts in the list, is solely at the
>>      discretion of the resource manager. Vector of strings.
>>      (JSDL, LSF)
>>
>> This attribute should be used to pass information to the
>> resource manager, NOT to specify the resource manager. For
>> example it maps to the "CandidateHosts" element of a JSDL
>> document.
>>
>> The first argument of runJob() is the "host name or IP
>> address of the endpoint which will accept and run the
>> job". This argument is not defined for submitJob(), nor is
>> it defined as an attribute of JobDefinition.
>>
>> Graeme
> 
>>
>> Andre Merzky wrote:
>>> Oops, you are right!  My wrong - mixed it up with
>>> ExecutionHosts.  Well, then I really was off target:
>>> SAGA_HostList is then indeed what you should use to specify
>>> the target resource.  
>>>
>>> The run_job would, in its simpliest implementation, create a
>>> job description with SAGA_HostList set to the specified
>>> endpoint, and do a submit_job on that description.
>>>
>>> Sorry for creating confusion...
>>>
>>> Andre.
>>>
>>>
>>> Quoting [Graeme Pound] (Feb 20 2006):
>>>> Date: Mon, 20 Feb 2006 16:24:32 +0000
>>>> From: Graeme Pound <G.E.POUND at soton.ac.uk>
>>>> To: Andre Merzky <andre at merzky.net>
>>>> CC: SAGA RG <saga-rg at ggf.org>
>>>> Subject: Re: [saga-rg] JobService.submitJob() query
>>>>
>>>> Andre,
>>>>
>>>>
>>>>> 'SAGA_HostList' is on the job, and read only - it gives
>>>>> information on where the job _is_ running, not where it
>>>>> _should_ run.
>>>> I do not follow you here. 'SAGA_HostList' is an attribute of 
>>>> JobDefinition (not JobInfo), therefore it should not be read only.
>>>>
>>>> Graeme
>>>>
>>>>
>>>> Andre Merzky wrote:
>>>>> Uhm, I think you got us there.  I don't see any way to
>>>>> specify the resource either, so its left completely up to
>>>>> the backend to schedule the job.  I am not sure if that was
>>>>> intended.
>>>>>
>>>>> Chris, are we missing something?  Did we intend to leave
>>>>> resource specification out?  Can't really be, as we have it
>>>>> in run_job as Graeme points out...
>>>>>
>>>>> 'SAGA_HostList' is on the job, and read only - it gives
>>>>> information on where the job _is_ running, not where it
>>>>> _should_ run.
>>>>>
>>>>> Andre.
>>>>>
>>>>>
>>>>> Quoting [Graeme Pound] (Feb 20 2006):
>>>>>> Hi,
>>>>>>
>>>>>> Can anybody clear up this issue for me? I may be missing something in 
>>>>>> the spec.
>>>>>>
>>>>>> Thanks,
>>>>>> Graeme
>>>>>>
>>>>>>
>>>>>> -3.31 How is the resource manager endpoint for JobService.submitJob() 
>>>>>> specified?
>>>>>>
>>>>>> The endpoint is specified by an argument of JobService.runJob(), but is 
>>>>>> not _obvious_ for submitJob(). Is the endpoint a property of the 
>>>>>> instance of JobService (with runJob() a 'static' method of the class), 
>>>>>> or is the endpoint specified as an attribute of JobDefinition?
>>>>>>
>>>>>> I assume that the contents of the JobDefinition attribute 
>>>>>> 'SAGA_HostList' is intended to be passed to the resource manager 
>>>>>> (rather than specify the resource manager itself); for example mapping 
>>>>>> to the 'CandidateHosts' element of a JSDL document. Is an additional 
>>>>>> attribute within JobDefinition required to specify the endpoint?
>>>>>
>>>
>>>
> 
> 
> 





More information about the saga-rg mailing list