我正在尝试使用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配置。
答案 0 :(得分:1)
cluster = PBSCluster(cores=240,
memory="1GB",
您给Dask Jobqueue构造函数的值是单个节点的单个作业的值。因此,这里您要的是一个拥有240个内核的节点,而今天这可能已经没有意义了。
如果您只能启动一项工作,那么dask-jobqueue的模型可能对您不起作用。建议使用dask-mpi作为替代方案。