任务作业队列动态分配的工作者资源

问题描述 投票:1回答:1

我是dask.jobqueue的新用户,由于这个,我正试图安排任务。

要启动的任务数量可能有所不同(从几十个到几百个),并且这些任务之间的依赖关系图可能非常复杂。而且,这些任务中每一项的资源需求都可能有很大差异,因为有些任务将是高度多线程的,而另一些则不会。但是,我不认为目前可以动态改变“工人”的资源。

例如代码片段:

@dask.delayed()
def first_task(...)
    """mono thread task
    """
...
@dask.delayed()
def second_task(...)
    """higly multithreaded task
    """
...

cluster = PBSCluster(...)
cluster.scale(...) # or cluster.adapt(...)
client = Client(cluster)

first_return = first_task()# mono thread
second_return = second_task(first_return) # threaded
third_task(second_return) # highly multitraded

# launch tasks
third_task.compute()

由于.compute()可以触发处理,该处理可以接受命名参数'resources',但据我了解(https://distributed.dask.org/en/latest/resources.html)对应于先前在创建集群时通知给每个工作人员的资源,这不对应于我正在寻找的每个工作人员的资源动态管理。

基本上,可以从:切换到>

third_task.compute(resources={...})

与要处理的每个任务更相关的事物?附加每个dask.delayed所需的资源吗?

@dask.delayed(resources={"cpu":1, "ram": "5GB"})
def first_task(...)
...
@dask.delayed(resources={"cpu":24, "ram": "120GB"})
def third_task(...)
...
third_task.compute()

谢谢,

我是dask.jobqueue的新用户,由于这个原因,我正尝试安排任务。启动的任务数量可以变化(从几十个到几百个不等),并且这些任务之间的依赖关系图...

python resources dask worker
1个回答
0
投票

截至2020-03-27答案为否

© www.soinside.com 2019 - 2024. All rights reserved.