Если я использую Dask-Jobqueue на высокопроизводительном компьютере (HP C), мне все равно нужно использовать Dask-ML (ie. joblib.parallel_backend('dask'
) для запуска кодов scikit-learn?
Скажем, у меня есть следующий код:
from dask_jobqueue import PBSCluster
cluster = PBSCluster(cores=36,
memory='100GB',
project='P48500028',
queue='premium',
interface='ib0',
walltime='02:00:00')
cluster.scale(100)
from dask.distributed import Client
client = Client(cluster)
from sklearn.datasets import make_classification
from sklearn.svm import SVC
from sklearn.model_selection import GridSearchCV
X, y = make_classification(n_samples=2000, n_features=20, n_classes=2, 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)
Поскольку я использую Dask-Jobqueue на HP C (ie. Я подключен к экземпляру HP C) , когда я запускаю свой код, будет ли весь мой код уже распределен в кластере (поскольку я указал cluster.scale(100)
)? Если да, то нужны ли мне последние 3 строки кода выше, в которых используется Dask-ML? Или мой код может быть таким:
from dask_jobqueue import PBSCluster
cluster = PBSCluster(cores=36,
memory='100GB',
project='P48500028',
queue='premium',
interface='ib0',
walltime='02:00:00')
cluster.scale(100)
from dask.distributed import Client
client = Client(cluster)
from sklearn.datasets import make_classification
from sklearn.svm import SVC
from sklearn.model_selection import GridSearchCV
X, y = make_classification(n_samples=2000, n_features=20, n_classes=2, 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)
grid_search.fit(X, y)
Будет ли последняя строка кода выше grid_search.fit(X, y)
не запускаться ни на одном кластере Dask после того, как я удалил joblib.parallel_backend('dask')
? Или он по-прежнему будет работать в кластере, поскольку я ранее заявлял cluster.scale(100)
?
Заранее большое спасибо.