ℕʘʘ*_*ḆḽḘ 5 python multithreading pandas fuzzywuzzy dask
我使用的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)
Run Code Online (Sandbox Code Playgroud)
但是,代码的变体现在已经运行了10个小时,并且还没有结束.我在Windows任务管理器中注意到了
RAM utilization 非常低,对应于我的数据大小CPU usage 每2/3秒左右从0%反弹至最高5%20 Python processes的大小是100MB,一个Python进程可能包含30GB大小的数据(我有一个128 GB的机器和8核CPU)问题是:预期的行为是什么?我在dask这里设置一些选项显然是非常错误的吗?
当然,我明白细节取决于我到底在做什么,但也许上面的模式已经可以说出某些事情是非常错误的?
非常感谢!!
当然,我知道具体细节取决于我到底在做什么,但也许上面的模式已经可以看出有些事情是严重错误的?
这是非常正确的。识别性能问题很棘手,尤其是在并行计算发挥作用时。以下是我想到的一些事情。
helper可能会做一些奇怪的事情。一般来说,解决这些问题的一个好方法是创建一个最小的、完整的、可验证的示例来分享,其他人可以轻松地重现和使用。通常,在创建这样的示例时,您无论如何都会找到问题的解决方案。但如果这种情况没有发生,至少您可以将责任转嫁给库维护人员。在创建这样的示例之前,大多数库维护者都懒得花时间,几乎总是有太多特定于手头问题的细节来保证免费服务。
| 归档时间: |
|
| 查看次数: |
1330 次 |
| 最近记录: |