如何解决不要将数据广播给工作人员
迟钝的调度程序似乎将所有本地变量广播给占用我所有内存的工人。工人不需要大部分数据。设置如下:
- 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 举报,一经查实,本站将立刻删除。