我试着像这样做并行工作:
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时相同。我是不是遗漏了什么?
发布于 2021-03-08 03:35:22
当要执行的计算释放GIL时,进程内并行将很好地工作,以便多个线程可以同时运行。这适用于许多数值库,如pandas和numpy,如您所链接的示例中所使用的。然而,文本处理很可能使用python解释器,因此GIL会阻止多个线程同时运行-因此CPU利用率为100%,而不是更高。
您可能希望尝试使用进程,这就像更改为
client = Client(processes=True) (但有许多配置选项)
https://stackoverflow.com/questions/66498123
复制相似问题