Dask: работа на нескольких узлах с одним работником, запуск только на одном узле - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь обработать некоторые файлы с помощью функции python и хотел бы распараллелить задачу на кластере PBS с помощью dask. В кластере я могу запустить только одно задание, но у меня есть доступ к 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

После кластера в Dask показан 1 рабочий с 240 ядрами (не уверен, имеет ли это смысл). Когда я бегу

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

и получить доступ к выделенным узлам, только один из них фактически выполняет вычисления. Я не уверен, что использую правильную конфигурацию PBS.

1 Ответ

1 голос
/ 02 июня 2019
cluster = PBSCluster(cores=240,
                     memory="1GB",

Значения, которые вы задаете конструкторам Dask Jobqueue, являются значениями для одного задания для одного узла. Итак, здесь вы запрашиваете узел с 240 ядрами, что, вероятно, не имеет смысла сегодня.

Если вы можете запустить только одну работу, то модель dask-jobqueue, вероятно, вам не подойдет. Я рекомендую посмотреть на dask-mpi в качестве альтернативы.

...