[jsdl-wg] Coupling PosixApplication to DataStaging

Donal K. Fellows donal.k.fellows at manchester.ac.uk
Tue Apr 26 09:02:19 CDT 2005


Hi everyone!

We have something of a problem in that we need a way to join the virtual
filesystem locations that we stage files to/from in DataStaging to the
places referred to in various places in PosixApplication (especially
Argument and Environment, though this also applies to Input, Output and
Error; possibly WorkingDirectory too). The problem is that we want to
virtualize the location within the real target filesystem(s) that the
files are located in, but we do not have any standard substitution
scheme; so far, we've only got the ability to specify literal strings
which gives either absolute locations (non-portable) or locations that
are relative to the working directory (great for the simple cases, but
awful for anything complex).

In DRMAA, this problem is solved by allowing magical tokens to be put at
the start of applicable parameters and defining a substitution scheme
for those magical parameters. (This is also the UNICORE approach). That
works, but I use the term "magical" with good reason; the values are not
easily manipulable with XML processing tools. The other basic
alternative, processing with XSLT on the way in, has the problem in that
it tends to end up binding things to specific locations far too soon.

What I think we need is a way to say that a certain term is to be made
relative to a particular virtual filesystem root. As far as I'm
concerned, the easiest way of doing this is to put optional attributes
on the elements needing this treatment (listed above) that say that the
element value needs to be interpreted as being relative to the root of
the virtual filesystem named in the attribute, with an absent attribute
indicating that the attribute value is to be used literally.
Alternatively, we could put a complex type inside the element, but
that's much messier IMO.

I suggest that the attribute should be called jsdl:filesystem (or
rather, whatever we use in DataStaging but I don't remember for sure
right now) and we might use it like this fragment:

   <jsdl:Application>
      <jsdl:ApplicationName> Gaussian </jsdl:ApplicationName>
      <jsdl-exec:POSIXApplication>
        <jsdl-exec:Input jsdl:filesystem="HOME">
          input.txt
        </jsdl-exec:Input>
        <jsdl-exec:StackSpaceLimit> 8388608 </jsdl-exec:StackSpaceLimit>
      </jsdl-exec:POSIXApplication>
   </jsdl:Application>

We'd need to decide what predefined virtual filesystems to support, of
course. Or have we done that already? :^)

Donal.





More information about the jsdl-wg mailing list