Dask并行作业并不比没有Dask更好

2024-04-29 02:09:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着这样做:

from dask.distributed import Client
import joblib
from sklearn.feature_extraction.text import TfidfVectorizer

client = Client(processes=False)             # create local cluster

with joblib.parallel_backend('dask'):
    tfidf.fit(corpus)

但是CPU使用率是100%到400%,与没有Dask时相同。我错过什么了吗

https://ml.dask.org/joblib.html


Tags: textfromimportclientfalsecreatesklearnfeature
1条回答
网友
1楼 · 发布于 2024-04-29 02:09:52

当要执行的计算释放GIL时,进程内并行性将很好地工作,以便多个线程可以同时运行。许多数字库(如pandas和numpy)都是如此,正如您链接到的示例中所使用的那样。然而,文本处理可能使用python解释器,因此GIL防止一次运行多个线程——因此CPU利用率为100%,而不是更高

您可能希望尝试使用流程,这与更改为

client = Client(processes=True) 

(但有许多配置选项)

相关问题 更多 >