<br><br><div class="gmail_quote">On Wed, Oct 26, 2011 at 05:20, Toby Burnett <span dir="ltr">&lt;<a href="mailto:tburnett@uw.edu">tburnett@uw.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">







<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">A follow-up on a previous thread, and a difference with version 0.10. 
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">First the previous “ipcluster ssh –clusterfile …” worked nicely with only the need to specify a simple file.  Now it is necessary to specify not only the set
 of engines, but to set both engine and controller options for communication: perhaps the code that implements ipcluster could either set this, or clearly warn the user?</span></p></div></div></blockquote><div><br></div>

<div>I think we can add warnings to ipcluster <span style="background-color: transparent; ">(we do</span><span style="background-color: transparent; "> </span><a href="http://ipython.org/ipython-doc/dev/parallel/parallel_process.html#general-considerations" style="background-color: transparent; ">exactly that</a><span style="background-color: transparent; ">, first thing</span><span style="background-color: transparent; "> </span><span style="background-color: transparent; ">in the docs)</span><span style="background-color: transparent; ">, though I&#39;m actually not 100% sure how to distinguish the failure to connect event from a later shutdown, except by time</span><span style="background-color: transparent; ">.  The problem  with just &#39;set this&#39;, is there is no obvious answer to what should be set.  For instance, if your engines are tunneling their connection to the controller, then there is no need for the controller to listen on a public IP.  Further, if you have config files on the remote machine all set up, then there&#39;s nothing for ipcluster to do, nor any way for ipcluster to detect that your config is correct.  </span><span style="background-color: transparent; ">If we are to set the default IP to something other than localhost (This *mustn&#39;t* be done in general, but possibly when using ssh engines), should it be all interfaces, or just one of possibly many public IPs?</span></div>

<div><span style="background-color: transparent; "><br></span></div><div><span style="background-color: transparent; ">The reason we don&#39;t listen on external interfaces by default is that our communication is not encrypted (unauthorized execution is prevented, but not viewing of currently active result output) - anyone with access to the listening ports on your controller can see your output.  For this reason, we don&#39;t want to decide for you to listen on public interfaces, you have to make that choice.</span></div>

<div><br></div><div>But the real answer is that the SSH launcher is, in many ways, a regression from 0.10, notably:</div><div><br></div><div>* it depends on shared filesystem (assuming otherwise default config)</div><div>

* it requires the launching ssh processes to maintain connections (can&#39;t be used from a laptop, which disconnects)</div><div><br></div><div><span style="background-color: transparent; ">Among others.  Any improvements would be extremely welcome.</span></div>

<div><span style="background-color: transparent; "> </span></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal">

<span style="font-size:11.0pt;color:#1F497D"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">But my advice, thanks MinRK,  is to avoid ipcluster and start the controller and engines myself, in fact necessary if the controller and engines are not on
 a shared filesystem.  I’ve done so in a class with a loop like this<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        for host, n in self.engines.items():<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            for i in range(n):<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                cmd = &#39;ssh %s@%s ipengine --file=%s&amp;&#39;%(self.user,host,self.json_file)<u></u><u></u></span></p>
<p class="MsoNormal" style="text-indent:.5in"><span style="font-size:11.0pt;color:#1F497D">   os.system(cmd))<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                time.sleep(delay)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">It works, but leaves a lot of background ssh processes on the machine where this runs: studying the very elegant code in IPython/parallel/apps/launcher.py I’m
 sure that it should be easy to start n engines on host m by creating an SSHEngineSetLauncher. Am I right?</span></p></div></div></blockquote><div><br></div><div>Yes, just like you can write your own launchers for ipcluster to use, you can use our launchers outside ipcluster.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u><u></u></span></p>


<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><font color="#888888">
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">--Toby<u></u><u></u></span></p>
</font></div>
</div>

<br>_______________________________________________<br>
IPython-User mailing list<br>
<a href="mailto:IPython-User@scipy.org">IPython-User@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
<br></blockquote></div><br>