【发布时间】:2017-02-24 11:10:11
【问题描述】:
我刚刚开始使用 dask,但我仍然对如何使用多线程或使用集群执行简单的 pandas 任务感到困惑。
让我们以pandas.merge() 和dask 数据帧为例。
import dask.dataframe as dd
df1 = dd.read_csv("file1.csv")
df2 = dd.read_csv("file2.csv")
df3 = dd.merge(df1, df2)
现在,假设我要在具有 4 个内核的笔记本电脑上运行它。如何为这个任务分配 4 个线程?
看来正确的做法是:
dask.set_options(get=dask.threaded.get)
df3 = dd.merge(df1, df2).compute()
这将使用尽可能多的线程(即,笔记本电脑上有尽可能多的具有共享内存的内核,4)?如何设置线程数?
假设我在一个拥有 100 个内核的设施中。如何以与使用qsub 向集群提交作业相同的方式提交此文件? (类似于通过 MPI 在集群上运行任务?)
dask.set_options(get=dask.threaded.get)
df3 = dd.merge(df1, df2).compute
【问题讨论】:
-
你试过
dd.merge(df1, df2).compute(num_workers=4)吗? -
@Boud 您在文档中的什么地方遇到过这个?
-
@Boud 谢谢。我会删除这个问题---虽然我仍然不确定 MPI 方面:)
-
不要删除它可能对其他人有用
标签: python multithreading pandas cluster-computing dask