Я новичок в DASK и хотел бы протестировать запуск DASK в кластере. В кластере есть головной сервер и несколько других узлов. Я могу войти в другие узлы с помощью простого ssh без пароля, как только я войду на главный сервер. Я хотел бы запустить простую функцию для перебора большого массива. Функция определена ниже. Он предназначен для преобразования dt64 в объект numpy datetime.
import xarray as xr
import numpy as np
from dask import compute, delayed
import dask.multiprocessing
from datetime import datetime, timedelta
def converdt64(dt64):
ts = (dt64 - np.datetime64('1970-01-01T00:00:00Z')) / np.timedelta64(1, 's')
return datetime.utcfromtimestamp(ts)
Затем на терминале я перебираю массив 1D размером N, применяя эту функцию.
values = [delayed(convertdt64)(x) for x in arraydata]
results1 = compute(*values,scheduler='processes’)
Это использует несколько ядер на головном сервере и работает, хотя и медленно. Затем я попытался запустить функцию на нескольких узлах кластера с помощью клиента, как показано ниже:
from dask.distributed import Client
client = Client("10.140.251.254:8786 »)
results = compute(*values, scheduler='distributed’)
Совсем не работает. Есть несколько предупреждений и одно сообщение об ошибке, как показано ниже.
distributed.comm.tcp - WARNING - Could not set timeout on TCP stream: [Errno 92] Protocol not available
distributed.comm.tcp - WARNING - Closing dangling stream in <TCP local=tcp://10.140.251.254:57257 remote=tcp://10.140.251.254:8786>
CancelledError: convertdt64-0205ad5e-214b-4683-b5c4-b6a2a6d8e52f
Я также попробовал dask.bag и получил то же сообщение об ошибке. В чем могут быть причины того, что параллельные вычисления на кластере не работают? Это связано с некоторой конфигурацией сервера / сети или неправильным использованием клиента DASK? Заранее спасибо за вашу помощь !
С наилучшими пожеланиями
Шеннон Икс
...then I tried to launch the function on several nodes of the cluster by using the Client as below:
У меня были похожие проблемы при попытке запустить задачи в планировщике. Узлы соединяются нормально. Однако попытка отправить задачи приводит к отмене.
Задокументированные примеры были либо локальными, либо из того же узла, что и планировщик. Когда я переместил своего клиента на узел планировщика, проблема исчезла.