[Swift-user] Resuming jobs when script has changed
Bronevetsky, Greg
bronevetsky1 at llnl.gov
Tue May 20 00:30:28 CDT 2014
Thanks Mihael. I just tried using your operations in my test code (below). It seems to detect whether the files do/don't exist and seems to try to generate the files but they never appear in my directory. During a fresh run in an empty directory I get the following output:
Swift 0.94.1 swift-r7114 cog-r3803
RunID: 20140519-2230-4lyyh8me
Progress: time: Mon, 19 May 2014 22:30:03 -0700
Progress: time: Mon, 19 May 2014 22:30:04 -0700 Stage in:1 Submitting:1
Progress: time: Mon, 19 May 2014 22:30:09 -0700 Active:1 Checking status:1
path=g/g15/bronevet/apps/swift-0.94.1/examples/test/work/dataF, exists=false
Generating file://localhost/_concurrent/data-5fbfabc7-8f5d-4240-82b1-4c7ecfdc33aa-path=g/g15/bronevet/apps/swift-0.94.1/examples/test/work/copyF, exists=false
Generating file://localhost/_concurrent/copy-44d394f6-53f3-4f5b-9ec9-fa2c19f5fcdf- from file://localhost/_concurrent/data-5fbfabc7-8f5d-4240-82b1-4c7ecfdc33aa-Final status: Mon, 19 May 2014 22:30:09 -0700 Finished successfully:3
Greg Bronevetsky
Lawrence Livermore National Lab
(925) 424-5756
bronevetsky at llnl.gov
http://greg.bronevetsky.com
import "common";
type file;
string WORK_PATH="/g/g15/bronevet/apps/swift-0.94.1/examples/test/work";
app (file outF) writeFile(string message) {
echo message stdout=@filename(outF);
}
app (file outF) copyFile(file inF) {
cp @filename(inF) @filename(outF);
}
file data;
file dataOld <single_file_mapper; file="dataF">;
if(!exists(@strcat(WORK_PATH, "/dataF"))) {
tracef("Generating %M\n", data);
(data) = writeData("hello");
} else
{ data = dataOld; }
file copy;
file copyOld <single_file_mapper; file="copyF">;
if(!exists(@strcat(WORK_PATH, "/copyF"))) {
tracef("Generating %M from %M\n", copy, data);
(copy) = copyFile(data);
} else
{ copy = copyOld; }
-----Original Message-----
From: Mihael Hategan [mailto:hategan at mcs.anl.gov]
Sent: Monday, May 19, 2014 4:25 PM
To: Bronevetsky, Greg
Cc: swift-user at ci.uchicago.edu
Subject: Re: [Swift-user] Resuming jobs when script has changed
Here's the swift part. It will only work with absolute paths. It can probably be modified to only work with relative paths.
type file;
app (file outf) existsApp(string path) {
existsApp path stdout=@filename(outf); }
(boolean result) exists(string path) {
result = readData(existsApp(path));
}
file there <"/bin/bash">;
file notthere <"/bin/notthere">;
tracef("Y %b\n", exists(@filename(there))); tracef("N %b\n", exists(@filename(notthere)));
And existsApp:
#!/bin/bash
# add leading / since @filename removes it # this will not work with swift > 0.94 if [ -f "/$1" ]; then
echo "true"
else
echo "false"
fi
On Mon, 2014-05-19 at 15:28 -0700, Mihael Hategan wrote:
> On Mon, 2014-05-19 at 22:21 +0000, Bronevetsky, Greg wrote:
> > Thanks, Mihael! I've modified my original code based on your suggestions (new code below) but I'm getting the following error:
> > Could not start execution
> > Procedure exists is not defined.
>
> Sorry. That's where your implementation of exists for absolute path
> names goes. I'll send you the relevant code shortly. I'm working on
> the array splitting issue now.
>
> Mihael
>
>
> _______________________________________________
> 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