用法:
class distributed.scheduler.Scheduler(loop=None, delete_interval='500ms', synchronize_worker_interval='60s', services=None, service_kwargs=None, allowed_failures=None, extensions=None, validate=None, scheduler_file=None, security=None, worker_ttl=None, idle_timeout=None, interface=None, host=None, port=0, protocol=None, dashboard_address=None, dashboard=None, http_prefix='/', preload=None, preload_argv=(), plugins=(), **kwargs)
动态分布式任务调度器
调度程序跟踪工作人员、数据和计算的当前状态。调度程序监听事件并通过适当地控制工作人员来响应。它不断尝试使用工作人员来执行不断增长的 dask 图。
所有事件都被快速处理,在相对于它们的输入(通常是恒定大小)的线性时间内,通常在一毫秒内。为了实现这一点,调度程序会跟踪很多状态。每个操作都保持这个状态的一致性。
调度器通过 Comm 对象与外界通信。即使同时聆听多个客户,它也能保持一致且有效的世界观。
调度程序通常使用
dask-scheduler
可执行文件启动:$ dask-scheduler Scheduler started at 127.0.0.1:8786
或者在 LocalCluster 中,客户端在没有连接信息的情况下启动:
>>> c = Client() >>> c.cluster.scheduler Scheduler(...)
用户通常不直接与调度程序交互,而是与客户端对象
Client
交互。状态
调度程序包含以下状态变量。列出了每个变量及其存储的内容和简要说明。
- 任务:
{task key: TaskState}
调度程序当前已知的任务
- 任务:
- 无法运行:
{TaskState}
“no-worker” 状态下的任务
- 无法运行:
- 工作人员:
{worker key: WorkerState}
当前连接到调度程序的工作人员
- 工作人员:
- 闲置的:
{WorkerState}
: 未充分利用的一组工人
- 闲置的:
- 饱和:
{WorkerState}
: 一组不是over-utilized的工人
- 饱和:
- host_info:
{hostname: dict}
: 有关每个工作程序主机的信息
- host_info:
- 客户:
{client key: ClientState}
当前连接到调度程序的客户端
- 客户:
- 服务:
{str: port}
: 在此调度程序上运行的其他服务,例如 Bokeh
- 服务:
- 环形:
IOLoop
: 正在运行的 Tornado IOLoop
- 环形:
- client_comms:
{client key: Comm}
对于每个客户端,一个用于接收任务请求和报告任务状态更新的 Comm 对象。
- client_comms:
- stream_comms:
{worker key: Comm}
对于每个工人,我们都接受刺激并报告结果的 Comm 对象
- stream_comms:
- task_duration:
{key-prefix: time}
我们期望某些函数花费的时间,例如
{'sum': 0.25}
- task_duration:
相关用法
- Python distributed.scheduler.Scheduler.workers_to_close用法及代码示例
- Python distributed.scheduler.Scheduler.transition用法及代码示例
- Python distributed.secede用法及代码示例
- Python distributed.protocol.serialize.register_generic用法及代码示例
- Python distributed.Client.gather用法及代码示例
- Python distributed.recreate_tasks.ReplayTaskClient.recreate_task_locally用法及代码示例
- Python distributed.diagnostics.plugin.SchedulerPlugin用法及代码示例
- Python distributed.Client.ncores用法及代码示例
- Python distributed.Client.retire_workers用法及代码示例
- Python distributed.Client.unregister_worker_plugin用法及代码示例
- Python distributed.fire_and_forget用法及代码示例
- Python distributed.Client.set_metadata用法及代码示例
- Python distributed.Client.scheduler_info用法及代码示例
- Python distributed.Client.submit用法及代码示例
- Python distributed.Client.compute用法及代码示例
- Python distributed.SpecCluster.scale用法及代码示例
- Python distributed.get_worker用法及代码示例
- Python distributed.SpecCluster.scale_up用法及代码示例
- Python distributed.Client.nthreads用法及代码示例
- Python distributed.comm.resolve_address用法及代码示例
注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 distributed.scheduler.Scheduler。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。