<div dir="ltr"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><font color="#666666">You seem to be interested in the situation where resources are added to a cluster (or maybe freed up by other jobs completing) and having a running MPI job get notified asynchronously that there are newly available resources it can make a bid for.</font></blockquote>

<div> </div><div>Absolutely, this is what I want to do. But first of all I tried to know why MPI as the leader of HPC clusters world didn't include this concept in its standard (May be it's totally against the HPC world!). With Mr.Solt, Mr.Gropp and your guides now I know the answer of that "Why?"</div>

<div> </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><font color="#666666">This idea of the cluster manager pushing resources to a job without regard to where the job is in its execution would bring lots of new issues. I am not aware of anybody having made a serious attempt to even define what would be needed inside the MPI standard to let applications catch and act on an asynchronous notification like this.</font><br>

</blockquote><div> </div><div>I heard about (I'm not sure) something like this in "MPI/GAMMA Project" [<a href="http://www.disi.unige.it/project/gamma/mpigamma/">1</a>], which pushes additional resources to a running MPI cluster and when the running program reaches mpi_barrier point those new resources are getting involved (completely asynchronous).</div>

<div> </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<font color="#666666">My first guess is that pushing an offer of additional resource would not be very hard to design into a resource manager but the MPI API side of how to react asynchronously to that offer would be very complex.</font><br>

</blockquote><div>
 <br></div><div>You are right, the automatic way for handling this, is really breathtaking. for example, if we divided a loop for 5 machines and the cluster is running now, how we can involve a new (6th) machine without restarting the entire cluster?!</div>

<div> </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><font color="#666666">Running job decides to try for more resource vs resource manager tries to volunteer more resource to running job</font></blockquote>

<div> </div><div>In PVM we have two functions pvm_addhosts and pvm_delhosts [<a href="http://docs.cray.com/books/004-3686-001/html-004-3686-001/vemjlb.html">2</a>] and they can more or less handle the first type ("<font color="#000000">Running job decides to try for more resource") but the great issue is with the second one: "</font><font color="#000000">resource manager tries to volunteer more resource to running job</font><font color="#000000">" which means jobs are not aware about those new resources.</font></div>

<div> </div><div>Any help or Idea in this concept would be greatly appreciated.</div><div> </div><div> </div><div>[1]  <a href="http://www.disi.unige.it/project/gamma/mpigamma/">http://www.disi.unige.it/project/gamma/mpigamma/</a></div>

<div>[2]  <a href="http://docs.cray.com/books/004-3686-001/html-004-3686-001/vemjlb.html">http://docs.cray.com/books/004-3686-001/html-004-3686-001/vemjlb.html</a><br></div><div> </div><div> </div><div> </div><div>Regards,</div>

<div>Siavash</div></div>