[Swift-devel] Multiple output files
Michael Wilde
wilde at anl.gov
Fri Mar 21 08:39:24 CDT 2014
Mihael, All,
I'd like to propose a Swift/K feature to provide a reasonable solution
to this very common need for an app to return a dynamically determined
set of files.
file dynarry[ ] <runtime; prefix="myoutput.", suffix=".out", indexes="int">;
dynarry = myApp(myArgs);
The "runtime" mapper should initially have the same arguments and
semantics (roughly) as simple_mapper, except for two new arguments:
"indexes" which determines how the matched file names will be indexed
in the returned array
"int" | "string" | "sequential"
sequential: return the matched files as consecutive integer indices
starting with 0
int: expect the filename component between prefix and suffix to be
convertible to an integer, and use that as the index
eg myfile.012.out and myfile.204.out will return an array with the
mapped files at indices 12 and 204.
string: similar to int but return a string-indexed associative array.
"sequential" is simplest and should be the default.
"paths" which determines if the match names will be absolute or relative
to the job dir
paths="relative" | "absolute"
(may not be needed if this can be determined uniquely based on the
location argument.
swiftwrap will allow array variables mapped in this manner to have any
number of files, including zero. I.e. "runtime-mapped" files should not
be listed in the expected output list for an app invocation. Its up to
the users app to ensure that some files match the pattern. An additional
arg could set e.g. minfiles and/or maxfiles, in which case the wrapper
code needs to validate the count of files matched and returned, but not
their exact names.
We can call this mapper "experimental" until we validate its usability
and suitability as a permanent feature. But as we hope to revise the
entire mapper family and semantics, in a sense all mappers are subject
to change.
Mihael, is the definition sound, and how long would it take you to
develop it?
Thanks,
- Mike
More information about the Swift-devel
mailing list