<br><br><div class="gmail_quote">On Mon, Oct 24, 2011 at 08:13, Toby Burnett <span dir="ltr">&lt;<a href="mailto:tburnett@uw.edu" target="_blank">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">Thanks for the clarifications, but my complaint was really that I don’t understand why it started the engines, and then shut them down. Are those tcgetattr
 messages significant?</span></p></div></div></blockquote><div><br></div><div>ipcluster did not shut them down, they stopped themselves, presumably because they couldn&#39;t connect. <span style="background-color:transparent">The tcgetattr messages are probably not significant, I think they are warnings about the tunneled session not being a real shell.</span></div>


<div><br></div><div>The odds are, your engines are not able to see your controller.  Especially if it looks like the engines are shutting down after two seconds - the default timeout for registration.  You can view the logs in ~/.ipython/profile_default/log/ipengine-&lt;pid&gt;.log.  Did you specify the controller&#39;s IP as one visible from the other nodes? The default is localhost, which won&#39;t be visible to the engines. For security reasons, we don&#39;t listen on external interfaces by default, which means that you have to do at least some configuration if you want to use nonlocal engines.</div>


<div><br></div><div>When debugging, it is often much easier to *not* use ipcluster, and use ipcontroller and one or more calls to ipengine itself.  Until you have one engine connected manually to the controller, the opacity of ipcluster is counterproductive.  All the ipcluster script does is call ipcontroller once, and ipengine a few times, so the behavior should not be different.  The Launcher classes are just ways to call ipengine in various contexts.  The SSH launcher is essentially: `ssh &lt;host&gt; &quot;ipengine&quot;`, but with some extra args to match profiles, and send log output to files.</div>


<div><br></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>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">--Toby<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"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt"> MinRK [mailto:<a href="mailto:benjaminrk@gmail.com" target="_blank">benjaminrk@gmail.com</a>]
<br>
<b>Sent:</b> Sunday, October 23, 2011 14:24<br>
<b>To:</b> Toby Burnett<br>
<b>Cc:</b> <a href="mailto:ipython-user@scipy.org" target="_blank">ipython-user@scipy.org</a><br>
<b>Subject:</b> Re: [IPython-User] parallel ssh problems<u></u><u></u></span></p><div><div></div><div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p>
<div>
<p class="MsoNormal">On Sun, Oct 23, 2011 at 11:38, Toby Burnett &lt;<a href="mailto:tburnett@uw.edu" target="_blank">tburnett@uw.edu</a>&gt; wrote:<u></u><u></u></p>
<p class="MsoNormal">Sorry, after reading the instructions, I realized that I set the wrong value, but there is some confusion between the online help and instructions in the generated config-ssh/ipcluster_config.py, so I put in both lines.<u></u><u></u></p>



<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Argh, when in conflict, the online docs are out of date.  I&#39;ll update them now.  The default config files are automatically generated from the configurable objects,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">so a fresh `ipython profile create &lt;name&gt; --parallel` can&#39;t be out of date.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"><br>
c.IPClusterEngines.engine_launcher_class = &#39;SSHEngineSetLauncher&#39;<br>
c.IPClusterEngines.engine_launcher = &#39;IPython.parallel.apps.launcher.SSHEngineSetLauncher&#39;<u></u><u></u></p>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Changes from 0.11-0.12:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">  * added the _class to be more clear<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">  * allowed launchers from IPython.parallel.apps.launcher to be specified by classname only, for convenience.  In fact, you can now just specify &#39;SSH&#39; or &#39;MPIExec&#39;, and it will resolve to &#39;IPython.parallel.apps.launcher.SSHFooLauncher&#39;.<u></u><u></u></p>



</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Obviously, trying to clarify things without updating the docs is not a great success.  What you have is exactly right for a config file to work on both 0.11 and 0.12.  I will add a deprecation warning on the old name, so that users moving
 from 0.11 to 0.12 get some help, and some more detail to docs and helpstrings, to hopefully avoid future confusion.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"><br>
and I set c.SSHEngineSetLauncher.engines to {&#39;tev01&#39;:4}, another machine from the one I ran ipcluster<br>
The results follow: the last line is very confusing; I have no idea where it got the non-extentent machine names.<u></u><u></u></p>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">ha, that&#39;s just a poor choice on my part.  When you start multiple engines on a single host, their keys in the dict that tracks them (which you are seeing in the log message) will be &#39;host0&#39;, &#39;host1&#39;, &#39;host2&#39;, etc..  Obviously, that doesn&#39;t
 sit well with nodeNN machine naming, because they still look like machine names.  I&#39;ll add a &#39;/&#39; separator, so it&#39;s clearer that these are four engines on &#39;tev01&#39;, not one engine each on &#39;tev011&#39; etc.<u></u><u></u></p>



</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"><br>
tev11:~/analysis[878]$ipcluster start --profile=ssh &amp;<u></u><u></u></p>
<div>
<p class="MsoNormal">[IPClusterStart] Using existing profile dir: u&#39;/phys/users/tburnett/.ipython/profile_ssh&#39;<br>
will start the following engines: {&#39;tev01&#39;: 4}<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">[IPClusterStart] Starting ipcluster with [daemon=False]<br>
[IPClusterStart] Creating pid file: /phys/users/tburnett/.ipython/profile_ssh/pid/ipcluster.pid<u></u><u></u></p>
</div>
<p class="MsoNormal">[IPClusterStart] Starting LocalControllerLauncher: [&#39;/phys/users/olsont/TEV/Glast/python27/bin/python2.7&#39;, u&#39;/phys/users/olsont/TEV/Glast/python27/lib/python2.7/site-packages/ipython-0.11-py2.7.egg/IPython/parallel/apps/ipcontrollerapp.py&#39;,
 &#39;--log-to-file&#39;, &#39;--log-level=20&#39;, u&#39;--profile-dir=/phys/users/tburnett/.ipython/profile_ssh&#39;]<br>
[IPClusterStart] Process &#39;/phys/users/olsont/TEV/Glast/python27/bin/python2.7&#39; started: 20849<br>
[IPClusterStart] [IPControllerApp] Using existing profile dir: u&#39;/phys/users/tburnett/.ipython/profile_ssh&#39;<br>
[IPClusterStart] Scheduler started [leastload]<br>
[IPClusterStart] Starting 24 engines<br>
[IPClusterStart] Process &#39;ssh&#39; started: 20868<br>
[IPClusterStart] Starting SSHEngineSetLauncher: [&#39;ssh&#39;, &#39;-tt&#39;, u&#39;tburnett@tev01&#39;, &#39;/phys/users/olsont/TEV/Glast/python27/bin/python2.7&#39;, u&#39;/phys/users/olsont/TEV/Glast/python27/lib/python2.7/site-packages/ipython-0.11-py2.7.egg/IPython/parallel/apps/ipengineapp.py&#39;,
 &#39;--log-to-file&#39;, &#39;--log-level=20&#39;]<br>
[IPClusterStart] Process &#39;ssh&#39; started: 20869<br>
[IPClusterStart] Process &#39;ssh&#39; started: 20870<br>
[IPClusterStart] Process &#39;ssh&#39; started: 20871<br>
[IPClusterStart] Process &#39;engine set&#39; started: [None, None, None, None]<br>
[IPClusterStart] tcgetattr: Invalid argument<br>
[IPClusterStart] tcgetattr: Invalid argument<br>
[IPClusterStart] tcgetattr: Invalid argument<br>
[IPClusterStart] tcgetattr: Invalid argument<br>
[IPClusterStart] [IPEngineApp] Using existing profile dir: u&#39;/phys/users/tburnett/.ipython/profile_default&#39;<br>
[IPClusterStart] [IPEngineApp] Using existing profile dir: u&#39;/phys/users/tburnett/.ipython/profile_default&#39;<br>
[IPClusterStart] [IPEngineApp] Using existing profile dir: u&#39;/phys/users/tburnett/.ipython/profile_default&#39;<br>
[IPClusterStart] [IPEngineApp] Using existing profile dir: u&#39;/phys/users/tburnett/.ipython/profile_default&#39;<br>
[IPClusterStart] Connection to tev01 closed.<br>
[IPClusterStart] Process &#39;ssh&#39; stopped: {&#39;pid&#39;: 20870, &#39;exit_code&#39;: 255}<br>
[IPClusterStart] Connection to tev01 closed.<br>
[IPClusterStart] Process &#39;ssh&#39; stopped: {&#39;pid&#39;: 20869, &#39;exit_code&#39;: 255}<br>
[IPClusterStart] Connection to tev01 closed.<br>
[IPClusterStart] Process &#39;ssh&#39; stopped: {&#39;pid&#39;: 20868, &#39;exit_code&#39;: 255}<br>
[IPClusterStart] Connection to tev01 closed.<br>
[IPClusterStart] Process &#39;ssh&#39; stopped: {&#39;pid&#39;: 20871, &#39;exit_code&#39;: 255}<br>
[IPClusterStart] Process &#39;engine set&#39; stopped: {&#39;tev012&#39;: {&#39;pid&#39;: 20870, &#39;exit_code&#39;: 255}, &#39;tev013&#39;: {&#39;pid&#39;: 20871, &#39;exit_code&#39;: 255}, &#39;tev010&#39;: {&#39;pid&#39;: 20868, &#39;exit_code&#39;: 255}, &#39;tev011&#39;: {&#39;pid&#39;: 20869, &#39;exit_code&#39;: 255}}<u></u><u></u></p>



<div>
<div>
<p class="MsoNormal"><br>
_______________________________________________<br>
IPython-User mailing list<br>
<a href="mailto:IPython-User@scipy.org" target="_blank">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><u></u><u></u></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div></div></div>
</div>

</blockquote></div><br>