python–Dask:非常低的CPU使用率和多线程?这是预期的吗?

python–Dask:非常低的CPU使用率和多线程?这是预期的吗?,第1张

概述我在how to parallelize many (fuzzy) string comparisons using apply in Pandas?使用dask基本上我做一些计算(没有写任何东西到磁盘)调用Pandas和Fuzzywuzzy(可能不会释放GIL显然,如果这有帮助),我运行如下:dmaster = dd.from_pandas(master,

我在how to parallelize many (fuzzy) string comparisons using apply in Pandas?使用dask

基本上我做一些计算(没有写任何东西到磁盘)调用Pandas和fuzzywuzzy(可能不会释放GIL显然,如果这有帮助),我运行如下:

dmaster = dd.from_pandas(master,npartitions=4)dmaster = dmaster.assign(my_value=dmaster.original.apply(lambda x: helper(x,slave),name='my_value'))dmaster.compute(get=dask.multiprocessing.get)

但是,代码的变体现在已经运行了10个小时,并且还没有结束.我在windows任务管理器中注意到了

> RAM利用率非常低,与我的数据大小相对应
> cpu使用率每2/3秒左右从0%反d至最高5%
>我有大约20个大小为100MB的Python进程,以及一个可能包含30GB大小的数据的Python进程(我有一个128 GB的机器和8核cpu)

问题是:预期的行为是什么?在这里设置一些dask选项显然是非常错误的吗?

当然,我明白细节取决于我到底在做什么,但也许上面的模式已经可以说出某些事情是非常错误的?

非常感谢!!

最佳答案

Of course,I understand the specifics depends on what exactly I am doing,but maybe the patterns above can already tell that something is horribly wrong?

这是很好的选择.识别性能问题很棘手,尤其是在并行计算发挥作用时.以下是一些想到的事情.

>多处理调度程序必须在每次之间在不同进程之间移动数据.序列化/反序列化周期可能非常昂贵.使用distributed scheduler可以更好地处理这个问题.
>你的功能助手可能会做一些奇怪的事情.
>通常使用apply,即使在Pandas中,最好避免使用.

通常,解决这些问题的一个好方法是创建一个minimal,complete,verifiable example来分享其他人可以轻松复制和播放的内容.通常在创建这样的示例时,无论如何都能找到问题的解决方案.但是,如果这种情况至少发生,那么你可以将其转移给图书馆维护者.在创建这样的示例之前,大多数图书馆维护者都懒得花时间,几乎总是有太多细节特定于手头的问题以保证免费服务. 总结

以上是内存溢出为你收集整理的python – Dask:非常低的CPU使用率和多线程?这是预期的吗?全部内容,希望文章能够帮你解决python – Dask:非常低的CPU使用率和多线程?这是预期的吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1206339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存