Как включить dask для параллельного обучения на всех компьютерах (а не только на узле драйвера) на кластерах блоков данных с несколькими компьютерами? - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь запустить пример dask на https://examples.dask.org/machine-learning.html для блоков данных.

Мой python 3 код:

from dask.distributed import Client, progress 
client = Client(processes=False, threads_per_worker=8,
        n_workers=2, memory_limit='6GB')
client

Я не уверен, почему у него всегда такие жалобы?

 distributed.worker - WARNING - Memory use is high but worker has no data to store to disk. Perhaps some other process is leaking memory? Process memory: 5.31 GB -- Worker memory limit: 4.00 GB

Кроме того,

from sklearn.datasets import make_classification
from sklearn.svm import SVC
from sklearn.model_selection import GridSearchCV
import pandas as pd

 X, y = make_classification(n_samples=1000000, random_state=0)


 param_grid = {"C": [0.001, 0.01, 0.1, 0.5, 1.0, 2.0, 5.0, 10.0],
      "kernel": ['rbf', 'poly', 'sigmoid'],
      "shrinking": [True, False]}

 grid_search = GridSearchCV(SVC(gamma='auto', random_state=0, probability=True),
                   param_grid=param_grid,
                   return_train_score=False,
                   iid=True,
                   cv=3,
                   n_jobs=-1)

 import joblib

 with joblib.parallel_backend('dask'):
    grid_search.fit(X, y)

Когда я проверял использование процессора в ganglia на кластере блоков данных, который имеет 1 драйвер и 1 - 64 рабочих только драйвер занят и все рабочие машины простаивают.

Кластер включает автоматическое масштабирование.

Посты в Распараллеливание в кластере dask и Распараллеливание на кластере dask не помогают.

Почему только драйвер занят?

Также я попытался:

from dask_jobqueue import PBSCluster, HTCondorCluster, JobQueueCluster, LSFCluster, MoabCluster, OARCluster, SGECluster, SLURMCluster

cluster = SLURMCluster(cores=16,
             memory="1GB",
             disk='1GB',
             project='test_project',
             queue='premium',
             interface='eth0')# 'ib0',
             #job_cls=SLURMJob)
             #walltime='02:00:00')

cluster.scale(100)  # Start 100 workers in 100 jobs that match the description above

из dask.distributed import Client клиент = клиент (кластер)

но это не работает.

спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...