В последних двух сообщениях (Многопроцессорность, Ray) я сравнивал эффект от распараллеливания заданий обучения с использованием многопроцессорности Sklearn и Ray.

В этом посте я запускаю тот же эксперимент (обучение модели XGboost на наборе данных 20 ​​групп новостей 50 раз) с использованием Dask.

Что такое Даск?

Dask — это библиотека параллельных вычислений, построенная на Python. Dask позволяет легко управлять распределенными работниками и превосходно справляется с большими распределенными рабочими процессами обработки данных. Даск-кластер состоит из трех разных компонентов: централизованного планировщика, одного или нескольких рабочих процессов и одного или нескольких клиентов, которые выступают в качестве точки входа для пользователя для отправки задач в кластер.

При использовании XGBoost с dask необходимо вызывать интерфейс XGBoost dask со стороны клиента. dask-xgboost — это оболочка вокруг xgboost, которую можно использовать для настройки XGBoost, передачи данных и предоставления возможности XGBoost параллельно обучать деревья с градиентным усилением в фоновом режиме, используя все рабочие процессы, доступные Dask.

В этом эксперименте я сначала создал локальный кластер в одноузловом режиме, а затем подключил distributed.Client к этому кластеру, настроив среду для выполнения необходимых вычислений. Кроме того, я разделил обучающие данные на 25 частей.

Основное отличие интерфейса XGBoost от Dask заключается в том, что мы передаем наш клиент Dask в качестве дополнительного аргумента для выполнения вычислений.

Вы можете найти блокнот реализации на моем GitHub.

Заключение

  • Как видно из приведенной выше диаграммы, обучение XGboost на кластере Dask с 4 рабочими процессами примерно в 9 раз медленнее, чем многопроцессорная обработка на 4 ядрах.
  • Отчасти это вызвано тем, что поиск наилучшей конфигурации кластера и разделения данных не является тривиальным и требует более системного подхода.

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.