<br><br><div class="gmail_quote">On Sat, Jan 7, 2012 at 23:27, Erik Petigura <span dir="ltr">&lt;<a href="mailto:eptune@gmail.com" target="_blank">eptune@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


Hi, Min.<br>
<div><br>
On Jan 7, 2012, at 4:51 PM, Min RK wrote:<br>
<br>
&gt; It would help a great deal to see your actual code, or better yet a minimal test case to cause the issue.<br>
&gt;<br>
<br>
</div>Here&#39;s the code that uses the IPython.parallel module.  This typically doesn&#39;t crash.  When I loop through it ~80 times, I get the too many files error:<br>
<br>
   def fitcandW(t,f,dL,par=False):<br>
       n = len(dL)<br>
       if par:<br>
           from IPython.parallel import Client<br>
           rc = Client()<br>
           lview = rc.load_balanced_view()<br>
           resL = lview.map(fitcand , n*[t] , n*[f] , dL, n*[False] ,block=True)<br>
       else:<br>
           resL = map(fitcand , n*[t] , n*[f] , dL)<br>
<br>
       return resL<br></blockquote><div><br></div><div>I would recommend taking a view as an argument to your function, rather than reestablishing the connection on every function call, which can be a slow operation:</div>

<div><br></div><div><div>def fitcandW(t,f,dL,view=None):</div><div>    n = len(dL)</div><div>    if view is not None:</div><div>        resL = view.map(fitcand , n*[t] , n*[f] , dL, n*[False], block=True)</div><div>    else:</div>

<div>        resL = map(fitcand , n*[t] , n*[f] , dL)</div><div><br></div><div>    return resL</div></div><div><br></div><div>It would also let you use the same function with various views more easily (load-balanced, direct, engine subsets, etc.).</div>

<div><br></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><br>
<br>
&gt; Is it your client process that is running out of FDs?<br>
&gt;<br>
&gt; Are you perchance creating clients repeatedly?  If at all possible, continue to use the same client for the duration of the process.  Creating a client opens several socket connections to speak to the cluster, and if they are not properly cleaned up, then your fd count will obviously rise.  Deleting a client *should* close all its sockets, but that assumes you have actually cleared all references to it (not always an easy task, especially in an interactive IPython session).  Client.close() will explicitly close all of its sockets.<br>



&gt;<br>
<br>
</div>I think this is the issue.  I added<br>
<br>
   rc.close()<br>
<br>
and the code ran to completion.<br>
<br>
Thanks!<br>
<span><font color="#888888"><br>
Erik<br>
</font></span><div><div><br>
<br>
&gt; -MinRK<br>
&gt;<br>
&gt; On Jan 7, 2012, at 16:00, Erik Petigura &lt;<a href="mailto:eptune@gmail.com" target="_blank">eptune@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; Dear IPython,<br>
&gt;&gt;<br>
&gt;&gt; I&#39;ve been running code on 8 engines via:<br>
&gt;&gt;<br>
&gt;&gt;  ipcluster start --n=8<br>
&gt;&gt;<br>
&gt;&gt; The code ran for a while, but then it died with:<br>
&gt;&gt;<br>
&gt;&gt;  ERROR: Internal Python error in the inspect module.<br>
&gt;&gt;  Below is the traceback from this internal error.<br>
&gt;&gt;  Traceback (most recent call last):<br>
&gt;&gt;    File &quot;/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/IPython/core/ultratb.py&quot;, line 750, in structured_traceback<br>
&gt;&gt;    File &quot;/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/IPython/core/ultratb.py&quot;, line 232, in _fixed_getinnerframes<br>
&gt;&gt;    File &quot;/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/inspect.py&quot;, line 1041, in getinnerframes<br>
&gt;&gt;    File &quot;/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/inspect.py&quot;, line 1001, in getframeinfo<br>
&gt;&gt;    File &quot;/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/inspect.py&quot;, line 456, in getsourcefile<br>
&gt;&gt;    File &quot;/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/inspect.py&quot;, line 485, in getmodule<br>
&gt;&gt;    File &quot;/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/inspect.py&quot;, line 469, in getabsfile<br>
&gt;&gt;    File &quot;/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/posixpath.py&quot;, line 347, in abspath<br>
&gt;&gt; OSError: [Errno 24] Too many open files<br>
&gt;&gt;<br>
&gt;&gt; I increased the limits on the number of open files from 256 to:<br>
&gt;&gt;<br>
&gt;&gt;  [537][/Users/petigura]$ launchctl limit maxfiles<br>
&gt;&gt;       maxfiles    1000000        1000000<br>
&gt;&gt;<br>
&gt;&gt; My code ran longer but died.  Is IPython opening a bunch of files when it manages its engines?<br>
&gt;&gt;<br>
&gt;&gt; Thanks in advance for any help.<br>
&gt;&gt;<br>
&gt;&gt; Erik<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; IPython-User mailing list<br>
&gt;&gt; <a href="mailto:IPython-User@scipy.org" target="_blank">IPython-User@scipy.org</a><br>
&gt;&gt; <a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
<br>
</div></div></blockquote></div><br>