H2O GBM замедляется при добавлении большего количества ядер

#h2o

Вопрос:

Обучение следующей модели GBM на 2 ядрах против 96 ядер (на EC2 c5.large и c5.metal) приводит к более быстрому времени обучения при использовании меньшего количества ядер. Я проверил счетчик воды, чтобы убедиться, что все сердечники работают.

Время тренировки: c5.большой (2 ядра): ~1 минута c5.металлический (96 ядер): ~2 минуты Подробности тренировки:

 training set size     6840 rows x 95 cols

seed                  1
ntrees                1000
max_depth             50
min_rows              10
learn_rate            0.005
sample_rate           0.5
col_sample_rate       0.5
stopping_rounds       2
stopping_metric       "MSE"
stopping_tolerance    1.0E-5
score_tree_interval   500
histogram_type        "UniformAdaptive"
nbins                 800
nbins_top_level       1024
 

Есть какие-нибудь мысли о том, почему это происходит?

Ответ №1:

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

  1. вычислительное время на каждом отдельном ядре
  2. общение время для общения и сбора результатов

Если у вас небольшие данные и много ядер, алгоритм может замедлиться из-за огромной связи. Попробуйте, например, 4, 6, 10 ядер вместо 96 для ускорения.

Комментарии:

1. Спасибо. Эта проблема известна при добавлении узлов в кластер: docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/… Таким образом, это предполагает, что то же самое верно и для ядер в одном узле.