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

2024-05-21 08:40:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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个进程产生了。我运行的是OSX10.10.3,Python3.4.3,iPython3.1。我没有用多处理.池(至少不是故意的)。看起来失败是偶然发生的?在处理这个异常时也会发生其他异常,但它们大多是文件错误太多,然后是一些回溯失败,以及其他一些看起来像是由上述某个原因引起的。。。在


Tags: 文件inpyselfinputsynchronizeinitlib