Dask:具有一个工作程序的多个节点上的作业,仅在一个节点上运行

时间:2019-05-26 12:56:57

标签: python parallel-processing jupyter dask

我正在尝试使用python函数处理某些文件,并希望使用dask在PBS集群上并行化任务。在群集上,我只能启动一项工作,但可以访问10个节点,每个节点有24个核心。

所以我的PBSCluster看起来像这样:

import dask
from dask_jobqueue import PBSCluster
cluster = PBSCluster(cores=240,
                     memory="1GB",
                     project='X',
                     queue='normal',
                     local_directory='$TMPDIR',
                     walltime='12:00:00',
                    resource_spec='select=10:ncpus=24:mem=1GB',
                    )
cluster.scale(1) # one worker 
from dask.distributed import Client
client = Client(cluster)     
client

在达斯克的集群显示1个具有240个核心的工作线程之后(不确定是否有意义)。 当我运行

result = compute(*foo, scheduler='distributed') 

并访问分配的节点,只有其中之一实际上正在运行计算。我不确定是否使用正确的PBS配置。

1 个答案:

答案 0 :(得分:1)

cluster = PBSCluster(cores=240,
                     memory="1GB",

您给Dask Jobqueue构造函数的值是单个节点的单个作业的值。因此,这里您要的是一个拥有240个内核的节点,而今天这可能已经没有意义了。

如果您只能启动一项工作,那么dask-jobqueue的模型可能对您不起作用。建议使用dask-mpi作为替代方案。

相关问题