直接在专用的Dask工作人员上运行任务



一个简单的代码 - nippet如下:注释后跟###很重要..

from dask.distributed import Client
### this code-piece will get executed on a dask worker.
def task_to_perform():
    print("task in progress.")
    ## do something here..
    print("task is over.!")
### whereas the below code will run on client side, 
### assume on a different node than worker
client= Client("127.0.01:8786")
future = client.submit(task_to_perform)
print("task results::", future.result())

因此,执行的控制流就是这样:dask-client将将任务提交给dask-scheduler,而调度程序将呼吁基于可用工人必须提交任务的工作人员。<<<<<<<<<<<<<<<<<<<</p>

但是,我们是否有任何机制在DASK中可以通过这些机制来提交我的任务,以绕过Dask-Scheduler?

您可以选择一个特定的工人来通过使用workers=关键字提交

来运行任务
client.submit(func, *args, workers='tcp://worker-address:port')

您可以通过查看工人的日志或调用client.scheduler_info()来获得地址。有关workers=关键字的更多信息可在此处找到:http://distributed.readthedocs.io/en/latest/locality.html#user-control

请注意,这仍然可以通过调度程序路由任务。客户只告诉调度程序在哪里安排任务。

相关内容

最新更新