#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:
Я думаю, причина в том, что параллельная скорость состоит из двух основных компонентов:
- вычислительное время на каждом отдельном ядре
- общение время для общения и сбора результатов
Если у вас небольшие данные и много ядер, алгоритм может замедлиться из-за огромной связи. Попробуйте, например, 4, 6, 10 ядер вместо 96 для ускорения.
Комментарии:
1. Спасибо. Эта проблема известна при добавлении узлов в кластер: docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/… Таким образом, это предполагает, что то же самое верно и для ядер в одном узле.