Mejore el tiempo de ejecución de h2o DRF en un clúster de múltiples nodos

Actualmente estoy corriendoh2oEl algoritmo DRF es un clúster EC2 de 3 nodos (el servidor h2o abarca los 3 nodos). Mi conjunto de datos tiene 1 millón de filas y 41 columnas (40 predictores y 1 respuesta).

Yo uso elR enlaces para controlar el clúster y la llamada de RF es la siguiente

model=h2o.randomForest(x=x,
                       y=y,
                       ignore_const_cols=TRUE,
                       training_frame=train_data,
                       seed=1234,
                       mtries=7,
                       ntrees=2000,
                       max_depth=15,
                       min_rows=50,
                       stopping_rounds=3,
                       stopping_metric="MSE",
                       stopping_tolerance=2e-5)

Para el clúster de 3 nodos (c4.8xlarge, red mejorada activada), esto toma aproximadamente 240 segundos; la utilización de la CPU es entre 10-20%; La utilización de RAM es entre 20-30%; La transferencia de red es de entre 10 y 50 MB / s (entrada y salida). Se construyen 300 árboles hasta que se detiene temprano.

En unnodo único clúster, puedo obtener los mismos resultados en aproximadamente 80 segundos. Entonces, en lugar de una aceleración de 3 veces esperada, obtengo una desaceleración de 3 veces para el clúster de 3 nodos.

Investigué un poco y encontré algunos recursos que informaban el mismo problema (aunque no tan extremo como el mío). Ver, por ejemplo:https://groups.google.com/forum/#!topic/h2ostream/bnyhPyxftX8

Específicamente, el autor dehttp://datascience.la/benchmarking-random-forest-implementations/ señala que

Si bien no es el enfoque de este estudio, hay indicios de que ejecutar las implementaciones de bosques aleatorios distribuidos (por ejemplo, H2O) en múltiples nodos no proporciona el beneficio de velocidad que uno esperaría (debido al alto costo de enviar los histogramas en cada división durante red).

tambiénhttps://www.slideshare.net/0xdata/rf-brighttalk apunta a 2 implementaciones DRF diferentes, donde una tiene una sobrecarga de red más grande.

Creo que me encuentro con los mismos problemas que se describen en los enlaces anteriores. Como puedo mejorarh2o¿El rendimiento DRF en un clúster de múltiples nodos? ¿Hay alguna configuración que pueda mejorar el tiempo de ejecución? Cualquier ayuda muy apreciada!

Respuestas a la pregunta(2)

Su respuesta a la pregunta