<HTML><HEAD><TITLE></TITLE>
<META content="text/html; charset=unicode" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.7600.16671"></HEAD>
<BODY><BR>
<P>Hello,<BR><BR>I have a problem I've been struggling with for months, and I'm thinking that folks that deal with parallel processing are the most likely ones to be able to solve it.&nbsp; </P>
<P>I have this simple code that I run in R on various Windows XP and Windows 7:<BR><BR>system("swat_Edit.exe",wait=FALSE,invisible=FALSE)<BR>system("swat2009.exe")<BR><BR>(Both swat_Edit.exe and swat2009.exe are compiled in Fortran.&nbsp; I have access to the swat2009.exe source code, but not to the swat_Edit.exe source code.)</P>
<P>In the first of the above two lines, swat_Edit.exe opens hundreds of ASCII files having data descriptive of water basin characteristics, edits them, and then closes them.&nbsp; In the second line, swat2009.exe reads those files to calculate streamflow at the water basin outlet.&nbsp;&nbsp; These two code lines are actually part of a loop in which the set of ASCII files is revised and the corresponding streamflow is calculated, and the loop typically cycles about 10,000 times.&nbsp; In each new&nbsp;cycle the streamflow calculated from the previous cycle is&nbsp;needed to direct swat_Edit.exe in revising the ASCII files so that swat2009.exe can calculate the streamflow for the new cycle.</P>
<P>Now, the problem is this: swat2009.exe sometimes begins executing BEFORE swat_Edit.exe finishes revising and closing all the ASCII files.&nbsp; As a partial remedy, I insert a Sys.sleep() line like this:</P><PRE><FONT face="Times New Roman">system("swat_Edit.exe",wait=FALSE,invisible=FALSE)</FONT></PRE><PRE><FONT face="Times New Roman">Sys.sleep(7)<BR>system("swat2009.exe")</FONT></PRE>
<P>But this doesn't always work.&nbsp; It might work for, say, 7,553 cycles, but then on the 7,554th swat2009.exe starts before swat_Edit.exe is quite finished, and then the whole set of simulations, which takes a day or two, must start all over again.&nbsp; Also, Sys.sleep() adds time to the whole process.&nbsp; The higher the argument in Sys.sleep(), the less likely the crash, but the more the slow down - and the risk of swat2009.exe starting too soon is never completely eliminated even for Sys.sleep() times that far exceed the average time it takes swat_Edit.exe to complete its task.</P>
<P>The common sense reader might say, "Why not change the 'wait=FALSE' argument in the first line to 'wait=TRUE'?"&nbsp; Well, if I do that the command won't execute.&nbsp; I can change 'invisible=FALSE' to 'invisible=TRUE', but that doesn't seem to make a difference.</P>
<P>The problem is worst&nbsp;on my Core-i7, but also happens on an old single-processor computer I have.</P>
<P>MPICH and Rmpi are installed on my computers, and I'm hoping that I can somehow use them to&nbsp;positively prevent swat2009.exe from starting before swat_Edit.exe finishes.&nbsp; </P>
<P>I'm a newbie as far as mpi goes.&nbsp; Any ideas?&nbsp; Your help would be much appreciated.</P>
<P>John Joseph</P>
<P><FONT size=2></FONT>&nbsp;</P>
<P><FONT size=2></FONT><BR><BR>&nbsp;</P>
<P><FONT size=2></FONT>&nbsp;</P></BODY></HTML>