Python 如何按Dask列出正在运行的进程?
我正从达斯克开始。为了我自己的理解(以及我想向其演示dask的同事的理解),我想构造一个基本的数据帧,执行一个基本的操作,并将执行时间与只使用熊猫的实现进行比较。这是我非常简单的尝试:Python 如何按Dask列出正在运行的进程?,python,dask,Python,Dask,我正从达斯克开始。为了我自己的理解(以及我想向其演示dask的同事的理解),我想构造一个基本的数据帧,执行一个基本的操作,并将执行时间与只使用熊猫的实现进行比较。这是我非常简单的尝试: import dask import dask.multiprocessing import dask.dataframe as dd import pandas as pd import time dask.set_options(get=dask.multiprocessing.get) start =
import dask
import dask.multiprocessing
import dask.dataframe as dd
import pandas as pd
import time
dask.set_options(get=dask.multiprocessing.get)
start = time.time()
df = dd.from_pandas(pd.DataFrame(data={'a': list(range(10))}), npartitions=4)
df['a'].apply(lambda x: time.sleep(2))
end = time.time()
print(f'time elapsed: {end - start}')
我之所以使用多处理调度程序,是因为我希望在单独的shell中看到进程出现在ps aux | grep python
调用中。然而,我没有看到他们。出于演示目的,是否有一种方法列出dask正在使用的所有进程
作为记录,我确实看到了运行时间的改进。pandas实现(此处未显示)需要20秒,而dask版本需要4秒。但是,考虑到我使用了4个分区,我预计需要5个分区。如果您使用的是多处理调度程序,那么Dask会在每次调用
计算时创建并销毁一个多处理.Pool
对于演示,我通常使用,它包括一个漂亮的仪表板,其中包含显示流程、活动等的页面
$ pip install dask[complete] bokeh
or
$ conda install dask bokeh
然后
谢谢当我运行我在问题中发布的代码时,我仍然没有看到太多的变化,但是使用time.sleep()
可能不是一个好方法。
from dask.distributed import Client
client = Client()
# navigate to http://localhost:8787/status