[drmaa-wg] Simultaneous waits on the same job id?

Peter Troeger peter.troeger at hpi.uni-potsdam.de
Wed Jun 28 07:05:17 CDT 2006


> Ed,
>
> What Andreas is trying to get at is that since synchronize()  
> doesn't return job information, so multiple simultaneous synchronize 
> () calls will all succeed.  Even if synchronize() reaps job info,  
> since other calls to synchronize() don't care whether they actually  
> are able to find the job info, it's all good.  As long as  
> synchronize() is running, reaped jobs are viewed as simply having  
> ended, so not even a call to wait() will cause a call to synchronize 
> () to fail.
>
> Is that really correct?  Can anyone else confirm?  I think we  
> should probably have a tracker to clarify that point in the (g2) spec.

I confirm. The DRMAA group agreed (in another discussion) that sync()  
has call-time context semantics. The text from the spec says more or  
less the same. Therefore, your synchronize call should succeed if  
jobs 5,6,7 existed at the time when thread 2 invokes the operation.

Peter.

>
> Daniel
>
> Andreas.Haas at Sun.COM wrote:
>> On Fri, 23 Jun 2006, Ed Baskerville wrote:
>>
>>> OK, I'll do that. But one more question: how do these issues  
>>> apply to synchronize? Consider the following sequence:
>>>
>>> thread 1: wait(job id 5)
>>> thread 2: synchronize(job ids 5,6,7)
>>> [job id 5 finishes]
>>> ¿thread 2 synchronize call fails?
>>> [job id 7 finishes]
>>> [job id 6 finishes]
>>> ¿thread 2 synchronize call succeeds?
>>>
>>> Should synchronize fail with INVALID_JOB as soon as any of the  
>>> ids it's waiting on are reaped? Or should it eventually succeed?
>>
>> There is no reason for synchronize to fail, as long as none of the  
>> jobs was reaped when synchronize() gets issued.
>>
>> Andreas
>





More information about the drmaa-wg mailing list