不要将数据广播给工作人员

问题描述

迟钝的调度程序似乎将所有本地变量广播给占用我所有内存的工人。工人不需要大部分数据。设置如下:

  1. Main.py:父脚本,它在脚本顶部导入Func.py。然后,它将大量按时间索引的数据帧加载到内存中。
  2. Func.py:Main.py导入的脚本。这是dask localcluster初始化的地方。我注意到在导入此脚本之后但在调用之前,辅助内存开始显着增加(可能是因为辅助程序正在获取要加载到Main.py中的数据副本)。而不是将所有数据加载到工作程序中,我希望Func.py使用client.map(par_funcs.some_func,iterable_list),其中some_func可能是从functools.partial
  3. 创建的部分函数
  4. par_funcs.py:许多小的函数只能在较大的数据集的一部分上使用。由Func.py导入。这个想法是因为Func.py正在处理数据帧,它将在适当的时候扩展到dask群集,而不是按日期循环遍历列。

我尝试设置memory_limit,在Main.py的不同位置导入Func.py,在Main.py中初始化集群,client.cancel(vars),读取dask documentation。似乎大多数人都面临相反的问题:将数据分散给工人,而不是要求工人不要加载数据。

任何帮助将不胜感激!

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)