
Mark Morgan wrote:
The first has to do with data staging, working directory, file systems, and everything else having to do with paths. It turns out that there are some exceptionally popular applications out there that are very poorly written. This is probably a surprise to no one, but unfortunately, its a fact of life that in the grid computing business, we have to support many of these applications despite their egregiousness. In particular, I refer to applications which cannot handle input files or paths which contain spaces. Recently, while trying to run a large batch of BLAST jobs using our new implementation of the SCRATCH file system, we discovered that BLAST is unable to deal with paths to the search database which contain spaces. As we thought about what to do about this, we realized that, sad as it may seem, it may be necessary to add to JSDL the ability to say that an Application (or certain inputs) must have paths without any spaces included. Would this be a Resource requirement? I'm not sure exactly how to classify it, but it seems like some JSDL annotation is necessary.
I'm not sure that this is a JSDL requirement as such, as that's correctly conveying what you wish to achieve. It's just that BLAST is crapping out on it. I'd instead suggest that what you really need is something in your execution environment (i.e. I think this is a BES requirement) to say "crap out if there are spaces in filenames" or "convert 'bad' characters to underscores" or something like that. In fact, by running into trouble this way I believe you've actually demonstrated that your implementation is (in some ways at least) correct. :-D Donal.