iPython中的多处理:当我没有打开任何文件时打开的文件太多了?

时间:2015-06-14 00:19:46

标签: python multiprocessing ipython

我有一个IPython笔记本,我作为多线程运行,并且已经转换为尝试在多个处理器上运行。除非有人认为查看其中的特定部分会有所帮助,否则我将不会引用大量代码。它的要点是我试图在PyOpenCL周围包装一个负载平衡器,所以我需要提供多个独立的队列 - 部分是为了解决一个特定的问题(粒子模拟),部分是为了学习练习。

在任何时候我都没有故意打开任何文件,但它却因此错误而崩溃:

Traceback (most recent call last):   
File "//anaconda/lib/python3.4/site-packages/IPython/core/interactiveshell.py", line 3035, in run_code   
File "<ipython-input-23-d29c87aba720>", line 1, in <module>
    co.convergeStep(mags[3])   
File "<ipython-input-17-0eac43f0bbbf>", line 62, in convergeStep
    evt=self.nlb.qTask(evtList,(b,k),b.forces,k,out=b.forceAccum,out2=k.forceAccum,sum=True) 
File "<ipython-input-13-0f26b8ae660e>", line 36, in qTask
    t=StagingThread(waitlist,c,self.pool)   
File "<ipython-input-10-549b980aea87>", line 7, in __init__
    self.killme=mp.Event()   
File "//anaconda/lib/python3.4/multiprocessing/context.py", line 91, in Event   
File "//anaconda/lib/python3.4/multiprocessing/synchronize.py", line 336, in __init__   
File "//anaconda/lib/python3.4/multiprocessing/context.py", line 76, in Condition   
File "//anaconda/lib/python3.4/multiprocessing/synchronize.py", line 215, in __init__   
File "//anaconda/lib/python3.4/multiprocessing/context.py", line 81, in Semaphore   
File "//anaconda/lib/python3.4/multiprocessing/synchronize.py", line 127, in __init__   
File "//anaconda/lib/python3.4/multiprocessing/synchronize.py", line 60, in
__init__ OSError: [Errno 24] Too many open files

我在考虑的背景中是否有打开文件的东西?

看起来我在失败时产生了11个进程。我在OS X 10.10.3,Python 3.4.3,IPython 3.1下运行。我没有使用multiprocessing.Pool(至少不是故意的)。看起来事件中发生了失败?在处理这个问题时还会出现其他异常,但它们主要是太多的文件错误,然后是一些回溯失败以及其他看起来像上述其中一个的结果......

0 个答案:

没有答案