[Swift-devel] remote file/directory stuff (bug 22)

Ben Clifford benc at hawaga.org.uk
Fri Mar 2 11:58:14 CST 2007



On Fri, 2 Mar 2007, Yong Zhao wrote:

> Can you elaborate on this issue a little bit so that we can make a
> unanimous decision:
> 
> 1. what was the problem exactly

Some programs that we run in swift do not use the traditional VDS-like API 
of being told on the commandline the names of the files that they must 
input and output to. Instead, they make up some of the names themselves.

For example, one of Nika's programs has the syntax:

 ./program inputfilename

and places its outputs in inputfile.stuff, inputfile.abc, inputfile.foo

> 2. what are you proposing

To extend the syntax of the app {} block to permit specification of the 
above interface, with a syntax something like:

(stuffoutfile s, abcoutfile a, foooutfile f) myproc(inputfile i)
  app { 
    program @i;
    s < @strcat(@inputfile,".stuff")
    a < @strcat(@inputfile,".abc")
    f < @strcat(@inputfile,".foo")
  }
 }

Meaning that rather than Swift specifying the remote name for s, a and f, 
instead the app block specifies where those three files are.

These will be staged back into the submit-side location defined in the 
existing mappers.

> 3. to what extent does the proposal solve the problem

It should solve Nika's immediate problem, I think.

> 4. what is the implication to the mapping interface

A longer term perspective is that this is the beginning of longer work to 
implement fuller execute-side mappers (which have also been called 
application mappers in some threads).

So it is mapping, but on the execute side. It fits in in a fairly 
straightforward way with mapping on the submit side, which is what we have 
now.

Submit side mapping maps between submit-side data and SwiftScript 
variables/structures, so that the user can arrange his submit-side data in 
a way that he wants (rather than swift compelling it to be in a particular 
format)

Execute side mapping maps between SwiftScript variables and execute side 
data, so that data can be laid out on the execute side in the way that the 
program wants it (rather than swift compelling it to be in a particular 
format)

With the present implementation, this amounts to being able to specify 
different paths and filenames on the submit and execute side for each data 
file.

In the longer term, it might also be useful in defining things like how to 
map data on a submit-side database to some format on the execute side for 
processing. If we have only submit side mappers, then we can map data 
between a submit side database and SwiftScript structures, but not map 
between those structures and the execute side...

--



More information about the Swift-devel mailing list