我如何指示dask在代码外部使用分布式Client
作为调度程序,例如通过环境变量?
其动机是利用dask的一个关键特性 - 即从单个机器到分布式集群的透明性。然而,似乎有一件小事掩盖了这种透明度 - 需要通过代码注册Client
。
我可以通过config(文件/ env var)将命名调度程序(例如“同步”和“进程”)设置为instructed here,但是如何使用与分布式机制相同的机制?
理想情况下,我想设置如下:
DASK_SCHEDULER=distributed(scheduler_file=...)
作为一个环境变量,相当于在python代码中运行client = Client(scheduler_file=...)
。
这意味着EXACT相同的代码可以在不同的环境(本地和分布式)中运行。
一种方法是做add add传递调度器有一个参数;据说使用Argparse。因此,如果您为本地指定分布式或<127.0.0.1:port>,则可以使用python my_script.py <ip:port>
。