Python i平行';s LoadBalancedView内存膨胀,如何避免?
此问题可能与尚未标记为已解决的问题有关Python i平行';s LoadBalancedView内存膨胀,如何避免?,python,ipython,jupyter,ipython-parallel,Python,Ipython,Jupyter,Ipython Parallel,此问题可能与尚未标记为已解决的问题有关 我也在这里打开了这个问题 我想通过在本地控制台中执行ipcluster start,在jupyter笔记本中使用python和ipyparallel并行执行多个任务,并使用4个本地引擎。 除此之外,还可以使用DirectView,我使用LoadBalancedView映射一组任务。每个任务大约需要0.2秒(虽然可能有所不同),每个任务执行一个MySQL查询,在其中加载一些数据,然后对其进行处理 处理大约45000个任务可以很好地工作,但是,我的记忆力增长非
我也在这里打开了这个问题 我想通过在本地控制台中执行
ipcluster start
,在jupyter笔记本中使用python和ipyparallel并行执行多个任务,并使用4个本地引擎。
除此之外,还可以使用DirectView
,我使用LoadBalancedView
映射一组任务。每个任务大约需要0.2秒(虽然可能有所不同),每个任务执行一个MySQL查询,在其中加载一些数据,然后对其进行处理处理大约45000个任务可以很好地工作,但是,我的记忆力增长非常快。这实际上很糟糕,因为我想用超过660000个任务运行另一个实验,我无法再运行了,因为它会增加我16 GB的内存限制,然后本地驱动器上的内存交换开始了。但是,当使用
DirectView
时,我的内存会相对变小,而且永远不会满。但我实际上需要LoadBalancedView
即使在没有数据库查询的情况下运行最小的工作示例,也会发生这种情况(参见下文) 我对ipyparallel库不是很熟悉,但我读过一些关于ipcontroller所做的日志和缓存的内容,这可能会导致这种情况。我仍然不确定这是否是一个bug,或者我是否可以更改一些设置来避免我的问题 运行MWE 对于在Windows 10上运行的Python 3.5.3环境,我使用以下(最新)软件包:
- ipython 6.1.0
- ipython_genutils 6.1.0
- I并行6.0.2
- jupyter 1.0.0
- jupyter_客户端4.4.0
- jupyter_控制台5.0.0
- jupyter_core 4.2.0
LoadBalancedView
,而不需要巨大的内存增长(如果可能的话):
- 在控制台上启动
ipcluster启动
- 使用以下三个单元格运行jupyter笔记本:
<1st cell> import ipyparallel as ipp rc = ipp.Client() lview = rc.load_balanced_view() <2nd cell> %%px --local import time <3rd cell> def sleep_here(i): time.sleep(0.2) return 42 amr = lview.map_async(sleep_here, range(660000)) amr.wait_interactive()
作为ipp并行导入IPY rc=ipp.Client() lview=rc.load\u balanced\u view() %%px——本地 导入时间 这里的def sleep_(i): 睡眠时间(0.2) 返回42 amr=lview.map_async(此处为sleep_,范围为660000)) amr.wait_interactive()