分布式工作人员的Dask工作人员资源

分布式工作人员的Dask工作人员资源

问题描述:

在分布式多处理工作人员中定义工作人员资源(http://distributed.readthedocs.io/en/latest/resources.html)时,是否为所有进程定义了资源池?分布式工作人员的Dask工作人员资源

例如,工人主机上我运行:

dask-worker --nprocs 8 --resources HOST=1 

现在,如果我认为需要resources={"HOST":1}任务(s)没有这样的保证,只有那些机器上的过程中的一个将执行这一任务在特定时刻?

resources关键字均匀地应用于所有进程。 全部工人将获得一个单一的HOST资源。一般来说,对于机构群集上的成熟部署,我建议避免使用--nprocs关键字,而是分别创建每个dask工作进程;这更明确。

dask-worker scheduler-address:8786 --resources 
dask-worker scheduler-address:8786 
dask-worker scheduler-address:8786 
dask-worker scheduler-address:8786 
dask-worker scheduler-address:8786 
dask-worker scheduler-address:8786 
dask-worker scheduler-address:8786 
dask-worker scheduler-address:8786 
+0

我明白了......所以在我的例子中,如何确保只有其中一名工作人员执行特定任务?如果我仍然使用nprocs并定义要求HOST:1,那么所有进程将同时运行。另一方面,如果我需要HOST:8那么......它们都不会运行? 对于没有共同保姆的单独过程,同样的问题。 – evilkonrex

+0

资源不限制多次运行任务,它们限制哪些工作人员可以运行哪些任务。上面的示例避免了'--nprocs'应该完全显式化。我建议避免使用'--nprocs'关键字。 – MRocklin

+0

我明白了,我们将从使用--nprocs转移到使用我们自己的流程管理器并明确启动多个流程。 让我再解释一下我的情况。这个想法是,单个主机上的工作进程仍然共享某些资源。因此,当我运行需要主机上所有资源的任务时,该主机上只有一个工作人员可以同时运行。我认为多线程工作者很简单,但是有一个支持多个工作进程的这种情况的功能吗? PS - 我们可以在我们的工人代码中实现一些资源同步,但它变得更复杂 – evilkonrex