问题描述
迟钝的调度程序似乎将所有本地变量广播给占用我所有内存的工人。工人不需要大部分数据。设置如下:
- Main.py:父脚本,它在脚本顶部导入Func.py。然后,它将大量按时间索引的数据帧加载到内存中。
- Func.py:Main.py导入的脚本。这是dask localcluster初始化的地方。我注意到在导入此脚本之后但在调用之前,辅助内存开始显着增加(可能是因为辅助程序正在获取要加载到Main.py中的数据副本)。而不是将所有数据加载到工作程序中,我希望Func.py使用
client.map(par_funcs.some_func,iterable_list)
,其中some_func可能是从functools.partial 创建的部分函数。
- par_funcs.py:许多小的函数只能在较大的数据集的一部分上使用。由Func.py导入。这个想法是因为Func.py正在处理数据帧,它将在适当的时候扩展到dask群集,而不是按日期循环遍历列。
我尝试设置memory_limit,在Main.py的不同位置导入Func.py,在Main.py中初始化集群,client.cancel(vars),读取dask documentation。似乎大多数人都面临相反的问题:将数据分散给工人,而不是要求工人不要加载数据。
任何帮助将不胜感激!
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)