直接 运行 专门的 dask worker 上的任务
Directly running a task on a dedicated dask worker
一个简单的代码片段如下:### 后面的注释很重要..
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,调度程序将根据可用的 worker 调用它必须提交给任务的 worker .
但是我们在 dask 中是否有任何机制可以让我绕过 dask-scheduler 在 dedicated/particular worker 上提交我的任务?
您可以通过使用 workers=
关键字提交
选择一个特定的工人运行 任务
client.submit(func, *args, workers='tcp://worker-address:port')
您可以通过查看工作人员的日志或致电 client.scheduler_info()
来获取地址。有关 workers=
关键字的更多信息,请参见此处:http://distributed.readthedocs.io/en/latest/locality.html#user-control
请注意,这仍然通过调度程序路由任务。客户端只是告诉调度程序在哪里调度任务。
一个简单的代码片段如下:### 后面的注释很重要..
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,调度程序将根据可用的 worker 调用它必须提交给任务的 worker .
但是我们在 dask 中是否有任何机制可以让我绕过 dask-scheduler 在 dedicated/particular worker 上提交我的任务?
您可以通过使用 workers=
关键字提交
client.submit(func, *args, workers='tcp://worker-address:port')
您可以通过查看工作人员的日志或致电 client.scheduler_info()
来获取地址。有关 workers=
关键字的更多信息,请参见此处:http://distributed.readthedocs.io/en/latest/locality.html#user-control
请注意,这仍然通过调度程序路由任务。客户端只是告诉调度程序在哪里调度任务。