[Swift-user] Output Files, ReadData and Order of Execution

Mihael Hategan hategan at mcs.anl.gov
Sat Sep 1 18:45:33 CDT 2012


The error comes from int checkforerror = readData(np.error);

You have to use the workaround for both.

On Sat, 2012-09-01 at 15:23 -0500, Carolyn Phillips wrote:
> Sure
> 
> There are a lot of extra stuff running around in the script, fyi
> 
> # Types 
> type file;
> type unlabeleddata;
> type labeleddata;
> type errorlog;
> 
> # Structured Types
> type pointfile {
> unlabeleddata points;
> errorlog error;
> }
> 
> type simulationfile {
> file output;
> }
> 
> # Apps
> app (file o) cat (file i)
> {
>   cat @i stdout=@o;
> }
> 
> app (file o) cat2 (file i)
> {
>   systeminfo stdout=@o;
> }
> 
> app (pointfile o) generatepoints (file c, labeleddata f,  string mode, int Npoints)
> {
>   matlab_callgeneratepoints @c @f mode Npoints @o.points @o.error;
> }
> 
> #app (simulationfile o) runSimulation(string p)
> #{
> #  launchjob p @o.output;
> #}
> 
> #Files (using single file mapper)
> file config <"designspace.config">;
> labeleddata labeledpoints <"emptypoints.dat">;
> 
> type pointlog;
> 
> # Loop
> iterate passes {
> 
>     # Generate Parameters
>     pointfile np <simple_mapper;prefix="mypoints.",suffix=".dat">;
>     np = generatepoints(config,labeledpoints, "uniform", 50);
> 
>     int checkforerror = readData(np.error);
>     tracef("%s: %i\n", "Generate Parameters Error Value", checkforerror); 
>     
>     # Issue Jobs
>     #simulationfile simfiles[] <simple_mapper;location="/scratch/midway/phillicl/SwiftJobs/",prefix=@strcat("output.",passes,"."),suffix=".job">;
>     if(checkforerror==0) {
>         unlabeleddata pl = np.points;
>     	string parameters[] =readData(pl);
>     	foreach p,pindex in parameters {
>       		tracef("Launch Job for Parameters: %s\n", p);
>                 #simfiles[pindex] = runSimulation(p);
>     	}
>      }
> 
>     # Analyze Jobs
> 
>     # Generate Prediction
> 
> 
> 
>     # creates an array of datafiles named swifttest.<passes>.out to write to
>     file out[]<simple_mapper; location=".", prefix=@strcat("swifttest.",passes,"."),suffix=".out">;
> 
>     # creates a default of 10 files
>     foreach j in [1:@toInt(@arg("n","10"))] {
>       file data<"data.txt">;
>       out[j] = cat2(data);
>     }
> 
>     # try writing the iteration to a log file
>     file passlog <"passes.log">;
>     passlog = writeData(passes);
> 
>     # try reading from another log file
>     int readpasses = readData(passlog);
>     
>     # Write to the Output Log 
>     tracef("%s: %i\n", "Iteration :", passes);
>     tracef("%s: %i\n", "Iteration Read :", readpasses);
> 
> #} until (readpasses == 2);  # Determine if Done
> } until (passes == 1);  # Determine if Done
> 
> 
> On Sep 1, 2012, at 1:57 PM, Mihael Hategan <hategan at mcs.anl.gov> wrote:
> 
> > Can you post the entire script?
> > 
> > On Sat, 2012-09-01 at 12:29 -0500, Carolyn Phillips wrote:
> >> Yes, I tried that
> >> 
> >>        unlabeleddata pl = np.points;
> >>    	string parameters[] =readData(pl);
> >> 
> >> 
> >> and I got
> >> 
> >> Execution failed:
> >> 	mypoints..dat (No such file or directory)
> >> 
> >> On Aug 31, 2012, at 8:27 PM, Mihael Hategan <hategan at mcs.anl.gov> wrote:
> >> 
> >>> On Fri, 2012-08-31 at 20:11 -0500, Carolyn Phillips wrote:
> >>>> How would this line work for what I have below?
> >>>> 
> >>>>>> string parameters[] =readData(np.points);
> >>>> 
> >>> 
> >>> unlabeleddata tmp = np.points;
> >>> string parameters[] = readData(tmp);
> >>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> On Aug 31, 2012, at 7:49 PM, Mihael Hategan <hategan at mcs.anl.gov> wrote:
> >>>> 
> >>>>> Another bug.
> >>>>> 
> >>>>> I committed a fix. In the mean time, the solution is:
> >>>>> 
> >>>>> 
> >>>>> errorlog fe = np.errorlog;
> >>>>> 
> >>>>> int error = readData(fe);
> >>>>> 
> >>>>> On Fri, 2012-08-31 at 19:29 -0500, Carolyn Phillips wrote:
> >>>>>> Hi Mihael,
> >>>>>> 
> >>>>>> the reason I added the "@" was because
> >>>>>> 
> >>>>>> now this (similar) line
> >>>>>> 
> >>>>>>  if(checkforerror==0) {
> >>>>>>      string parameters[] =readData(np.points);
> >>>>>>     }
> >>>>>> 
> >>>>>> gives me this:
> >>>>>> 
> >>>>>> Execution failed:
> >>>>>> 	mypoints..dat (No such file or directory)
> >>>>>> 
> >>>>>> as in now its not getting the name of the file correct
> >>>>>> 
> >>>>>> On Aug 31, 2012, at 7:17 PM, Mihael Hategan <hategan at mcs.anl.gov> wrote:
> >>>>>> 
> >>>>>>> @np.error means the file name of np.error which is known statically. So
> >>>>>>> readData(@np.error) can run as soon as the script starts.
> >>>>>>> 
> >>>>>>> You probably want to say readData(np.error).
> >>>>>>> 
> >>>>>>> Mihael
> >>>>>>> 
> >>>>>>> 
> >>>>>>> On Fri, 2012-08-31 at 18:55 -0500, Carolyn Phillips wrote:
> >>>>>>>> So I execute an atomic procedure to generate a datafile, and then next
> >>>>>>>> I want to do something with that data file.  However, my program is
> >>>>>>>> trying to do something with the datafile before it has been written
> >>>>>>>> to.  So something with order of execution is not working.  I think the
> >>>>>>>> problem is that the name of my file exists, but the file itself does
> >>>>>>>> not yet, but execution proceeds anyway!
> >>>>>>>> 
> >>>>>>>> Here are my lines
> >>>>>>>> 
> >>>>>>>> type pointfile {
> >>>>>>>> unlabeleddata points;
> >>>>>>>> errorlog error;
> >>>>>>>> }
> >>>>>>>> 
> >>>>>>>> # Generate Parameters
> >>>>>>>> pointfile np <simple_mapper;prefix="mypoints.",suffix=".dat">; 
> >>>>>>>> np = generatepoints(config,labeledpoints, "uniform", 50);
> >>>>>>>> 
> >>>>>>>> int checkforerror = readData(@np.error);
> >>>>>>>> 
> >>>>>>>> This gives an error :
> >>>>>>>> mypoints.error.dat (No such file or directory)
> >>>>>>>> 
> >>>>>>>> If I comment out the last line.. all the files show up in the directory.  (e.g. mypoints.points.dat and mypoints.error.dat) )  and if forget to remove the .dat files from a prior run, it also runs fine!
> >>>>>>>> 
> >>>>>>>> How do you fix a problem like that?
> >>>>>>>> 
> >>>>>>>> _______________________________________________
> >>>>>>>> Swift-user mailing list
> >>>>>>>> Swift-user at ci.uchicago.edu
> >>>>>>>> https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user
> >>>>>>> 
> >>>>>>> 
> >>>>>> 
> >>>>> 
> >>>>> 
> >>>> 
> >>> 
> >>> 
> >> 
> > 
> > 
> 





More information about the Swift-user mailing list