[Swift-devel] readData
Mihael Hategan
hategan at mcs.anl.gov
Wed Oct 10 09:31:08 CDT 2007
On Wed, 2007-10-10 at 09:00 -0500, Michael Wilde wrote:
> Mihael, all - readdata() works great, and I think gives Andrew exactly
> what he asked for.
>
> I updated the example parameter-sweep loop to use readdata to grab the
> multi-column input file.
>
> One note: as far as I can tell, you use the conventions the data columns
> must be exactly 16 characters wide, space separated. Is that correct? (I
> assume we'll generalize this time permits).
No. They must be horizontal-whitespace separated. The 16 characters wide
restriction does not exist. The following is valid:
a b c d
1 2 3 4
5 6 7 8
9 10 11 12
>
> Here's the new example, Andrew.
>
> - Mike
>
> type file;
>
> // Simulate encapsulating an app's parameters as a struct
>
> type params {
> int x;
> int y;
> float r;
> boolean b;
> string infilename;
> string outfilename;
> };
>
> // Simulate an app
>
> myapp(params p, file infile, file outfile )
> {
> app {
> db "pecho:" p.x p.y p.r p.b p.infilename p.outfilename @infile
> @outfile ;
> }
> }
>
> // Loop over the parameter array, calling app in parallel
>
> doall(params plist[])
> {
> foreach pval,j in plist {
>
> // convert filename string to mapped file reference
> file infile <single_file_mapper;file=pval.infilename>;
> file outfile <single_file_mapper;file=pval.outfilename>;
>
> // Call the application
> myapp(pval,infile, outfile);
> }
> }
>
> // Main
>
> params plist[];
> plist = readdata("parameters");
> doall(plist);
>
> // Data File "parameters" follows. Data files listed in it must exist.
> // each line is greater than 80 bytes and is only wrapped here by email
> // (actual files attached)
>
> x y r b
> infilename outfilename
> 1 2 1.234 1
> inf001.data outf001.data
> 3 4 5.678 0
> inf002.data outf002.data
>
>
>
>
>
> On 10/10/07 5:23 AM, Ben Clifford wrote:
> > Mihael added the below language construct to the language the other day.
> >
> > This might be useful where the csv_mapper was being used before to read in
> > non-file data.
> >
> > Its in the SVN.
> >
> >
> > Mihael Hategan wrote:
> >
> > There's a new function: readData. It's not an @function, so don't use it
> > that way because it won't work (it needs to know what variable it
> > assigns to, so that it knows how to interpret the contents of the
> > file).
> >
> > It can read primitive things, arrays of primitive things, structs and
> > arrays of structs.
> >
> > It can either take a file or a string as a parameter, although I
> > recommend the former since it can deal with data dependencies.
> >
> > For example usage, see tests/language-behaviour/readData.swift.
> >
> > Here's a short preview:
> > type circle {
> > int x;
> > int y;
> > float r;
> > string name;
> > }
> >
> > circle ca[];
> >
> > ca = readData("readData.circleArray.in");
> >
> > readData.circleArray.in:
> > x y r name
> > 1 1 5 CircleOne
> > 2 2 7 CircleTwo
> >
> > It doesn't deal with spaces in strings in the CSV format for now, but
> > it's a start.
> >
> > Mihael
> >
> plain text document attachment (t5g.swift)
> type file;
>
> // Simulate encapsulating an app's parameters as a struct
>
> type params {
> int x;
> int y;
> float r;
> boolean b;
> string infilename;
> string outfilename;
> };
>
> // Simulate an app
>
> myapp(params p, file infile, file outfile )
> {
> app {
> db "pecho:" p.x p.y p.r p.b p.infilename p.outfilename @infile @outfile ;
> }
> }
>
> // Loop over the parameter array, calling app in parallel
>
> doall(params plist[])
> {
> foreach pval,j in plist {
>
> // convert filename string to mapped file reference
> file infile <single_file_mapper;file=pval.infilename>;
> file outfile <single_file_mapper;file=pval.outfilename>;
>
> // Call the application
> myapp(pval,infile, outfile);
> }
> }
>
> // Main
>
> params plist[];
> plist = readdata("parameters");
> doall(plist);
> plain text document attachment (parameters)
> x y r b infilename outfilename
> 1 2 1.234 1 inf001.data outf001.data
> 3 4 5.678 0 inf002.data outf002.data
> _______________________________________________
> Swift-devel mailing list
> Swift-devel at ci.uchicago.edu
> http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel
More information about the Swift-devel
mailing list