我正在尝试使用ipyparallel在集群上并行处理对象列表,但是出现错误,提示打开了太多文件。我正在使用Jupyter笔记本,可以在群集上启动230个引擎。
我正在使用Jupyter笔记本,可以启动群集上的230个引擎。 尝试在引擎上导入功能时,出现以下错误:
`OSError: [Errno 23] Too many open files in system:`
The common solution on Google is to increase the limit on ressources: ulimit -Su 20000
`ulimit -a` gives me
`core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 515236
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited`
这是代码
`import ipyparallel as ipp
rc = ipp.Client()
dview = rc[:]
lbview = rc.load_balanced_view()
with rc[:].sync_imports():# import numpy here and everywhere
from foo import bar`
当我将引擎数量减少到〜130时,该代码起作用。我尝试异步加载函数(在引擎的一半上,然后在另一半上)。但是在第二次加载它们时会发生错误。 Jupyter笔记本正在运行的节点上的文件似乎保持打开状态。