[DRMAA-WG] Treat job templates as value types ?

Daniel Templeton daniel.templeton at oracle.com
Tue Mar 23 17:23:41 CDT 2010

It's not a bad idea.  I would really like to find a way to make it work, 
because it would make life quite a bit simpler.  Is there a way to make 
it work?


On 03/23/10 13:56, Peter Tröger wrote:
> Ok, it was a bad idea. Thanks for commenting.
> /Peter.
> Am 22.03.2010 um 16:14 schrieb Daniel Templeton:
>> And that may be the original reason why the SGE C binding uses that
>> pseudo-OO structure.  It is more or less a hash map, allowing
>> arbitrary
>> name-value pairs to be stored, facilitating vendor-defined job
>> template
>> attributes.  If we can't find a way around that issue, it's a
>> show-stopper.  We have to allow for vendor-defined attributes.
>> Daniel
>> On 03/22/10 07:29, Mariusz Mamoński wrote:
>>> Hi Peter, all,
>>> 2010/3/22 Peter Tröger<peter at troeger.eu>:
>>>> Dear all,
>>>> we have an ongoing discussion about the possible removal of
>>>> "createJobTemplate" and "deleteJobTemplate". The last proposal was
>>>> to move this functions to the language bindings that need it. This
>>>> is currently only C - all other languages have their own way of
>>>> performing instantiation and termination explicitly.
>>>> After some more thinking, I think I got the true underlying issue.
>>>> So far, we are treating job templates as instances with state and
>>>> behavior - objects, in most languages. The only reason for doing
>>>> this (so far) is the ability to throw errors on attribute access,
>>>> since we need that for DRMAA's understanding of optional job
>>>> template attributes. However, from all other perspectives, job
>>>> templates are just value types. If you got one, you fill it, and
>>>> then you pass the thing as a whole. In a RPC scenario, you would
>>>> also expect to send filled job templates as a whole, similar to a
>>>> filled JSDL document.
>>>> So if we change that, what would that mean:
>>>> C:  Generic getter / setter functions for job template attributes
>>>> would go away. Instead, you would create / delete JobTemplate
>>>> structs directly. runJob() would take a pointer to this struct.
>>>> Explicit removal is no longer needed, since the stack is cleared
>>>> automatically.
>>>> C# : JobTemplate class would become JobTemplate struct.
>>>> Java / Python: JobTemplate class remains JobTemplate class, since
>>>> they have no struct concept. Creation and destruction can be
>>>> managed with OO mechanisms.
>>>> Another effect would be a change in the semantics of optional
>>>> attributes. We already demand the syntactical inclusion of
>>>> optional attribute names in the class definition. In C, the usage
>>>> of a non-implemented optional attribute names gives a specialized
>>>> error. With the change, we would have struct members that you are
>>>> not allowed to fill in with some DRMAA libraries. But this would
>>>> be detected only at submission time, since struct changes do not
>>>> involve library code.
>>> just only one concern: what if one of the DRM vendor wish to provide
>>> some JobTemplate attributes additional to those specified in DRMAA
>>> (as
>>> i remember SGE was an example)? I expect having different struct
>>> definition  (different drmaa2.h ) leads to serious problems. I'm not
>>> saying no (actually having a self allocated struct in C is more
>>> convenient than using getter/setters - e.g. error handling), but
>>> this,
>>> for me, requires addressing the extension methodology on the IDL
>>> level.
>>>> And "createJobTemplate" resp. "deleteJobTemplate" ? Not needed at
>>>> all then, regardless of the language.
>>>> Best,
>>>> Peter.
>>>> --
>>>>   drmaa-wg mailing list
>>>>   drmaa-wg at ogf.org
>>>>   http://www.ogf.org/mailman/listinfo/drmaa-wg
>>> Cheers,
>> --
>>   drmaa-wg mailing list
>>   drmaa-wg at ogf.org
>>   http://www.ogf.org/mailman/listinfo/drmaa-wg
> --
>    drmaa-wg mailing list
>    drmaa-wg at ogf.org
>    http://www.ogf.org/mailman/listinfo/drmaa-wg

More information about the drmaa-wg mailing list