<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 9, 2015 at 12:37 PM, Mihael Hategan <span dir="ltr"><<a href="mailto:hategan@mcs.anl.gov" target="_blank">hategan@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="im HOEnZb">Hi Ketan,<br>
<br>
On Fri, 2015-01-09 at 11:17 -0600, Ketan Maheshwari wrote:<br>
[...]<br>
> ><br>
</span><span class="im HOEnZb">> > Not automagically! You pass the stdout/stderr file names to the app<br>
> > command line using stdout= and stderr=.<br>
> ><br>
><br>
> True. However, the scheme is not quite consistent due to the following<br>
> behavior:<br>
><br>
> -- When specifying stdout and stderr in command line, I do not specify them<br>
> in directories. Yet, if I map them in non-existent directories, Swift will<br>
> create those directories and put the stdout/stderr files in them. This does<br>
> not happen with other files even if they are specified in command line.<br>
<br>
</span><span class="im HOEnZb">I do not think that is true. Swift creates directory structures for all<br>
input and output files, whether they are specified on the command line<br>
or not. If this isn't working, then we are talking about a bug, but the<br>
code was designed to do this from the start. I did a quick check and it<br>
seems to work fine for both 0.95 and trunk.<br></span></blockquote><div><br></div><div>May be it is a bug. See the attached tarball which have example cases of things that work and does not. touchafile1.swift illustrates this above point. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="im HOEnZb">
<br>
><br>
</span><span class="im HOEnZb">> -- If a file is specified as output file in app definition but does not<br>
> appear in the command line, Swift will still bring it in as an output.<br>
> Again, this will happen only if the file is mapped at top level and not in<br>
> any directory.<br>
<br>
</span><span class="im HOEnZb">I do not believe that to be true either. Swift stages in all files that<br>
are parameters to and app and stages out all files that are returns from<br>
an app. There is no code to treat files differently based on whether<br>
they are in sub-directories or not. Again, if this isn't working on a<br>
specific version of the code, we may be looking at a bug. I checked<br>
this, too, and it works on 0.95 and trunk with the simple configurations<br>
I tried.<br></span></blockquote><div> </div><div>touchafile2.swift illustrates this point.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="im HOEnZb">
<br>
><br>
> ><br>
</span><span class="im HOEnZb">> > So in all cases swift honors what you tell it to honor. The question is<br>
> > what is it that you really want here:<br>
> > - is it to automatically create multiple versions of files when an app<br>
> > specifies the same output file and there are multiple invocations?<br>
> ><br>
><br>
> Yes. The app specifies it alright but the executable does not specify it on<br>
> command line.<br>
<br>
</span><span class="im HOEnZb">I am not sure how that answers the question above. What I meant was<br>
this:<br>
<br>
foreach i in [0:10] {<br>
  file outf <"out.txt">;<br>
  outf = echo(i);<br>
}<br>
<br>
where echo(i) is an app that returns a file.<br>
<br>
The question was whether you are suggesting that the code above should<br>
be valid code. It is not currently because it violates the local<br>
consistency rule. In other words, writing the equivalent of this in a<br>
shell script will result in out.txt being overwritten, and that results<br>
in nondeterminism based on exactly how the echo() invocations are<br>
ordered.<br></span></blockquote><div><br></div><div>I understand this is not a valid code because successive echo invocations will overwrite the out.txt. This is why I want it to be like this:</div><div><br></div><div>foreach i in [0:9]{</div><div>  file outf <single_file_mapper; file=strcat("outdir", i, "/out.txt")>;</div><div>  outf = echo(i);</div><div>}</div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="im HOEnZb">
<br>
</span><span class="im HOEnZb">> > - or is it for swift to ignore the directory in the remote app output<br>
> > when staging out files (but not locally)?<br>
<br>
Mihae<br>
<br>
</span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Swift-user mailing list<br>
<a href="mailto:Swift-user@ci.uchicago.edu">Swift-user@ci.uchicago.edu</a><br>
<a href="https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user" target="_blank">https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user</a><br>
</div></div></blockquote></div><br></div></div>