[R-es] Alto rendimiento

javier.ruben.marcuzzi en gmail.com javier.ruben.marcuzzi en gmail.com
Mar Oct 11 19:48:43 CEST 2016


Estimado Carlos Ortega

Comprendo que hay que tener el paquete compilado para acceder al alto rendimiento, por lo cuál si está todo preparado para trabajar en un clúster y para aprovechar múltiples hilos, no habría problemas, calculo que si una librería no tiene esa tecnología no traería inconvenientes, ¿o  por el contrario si está distribuido crea varias instancias y al correr separadas hay “lío”?

Ejemplo esquemático para simplificar mi duda

paso 1) mllib,  
paso 2) mllib, 
paso 3) NO mllib “problema”
paso 4) mllib

Otra parte, hay un artículo que encontré donde da la pista para utilizar la tecnología de Microsoft pero en Linux, sin tener que pagar licencias.

https://blogs.technet.microsoft.com/machinelearning/2016/09/15/building-deep-neural-networks-in-the-cloud-with-azure-gpu-vms-mxnet-and-microsoft-r-server/

Hace unos años tuve que compilar un paquete en macosx con el compilador de Intel, si el código fuente no está preparado para procesar en varios núcleos, el compilador de Intel en Linux puede ser gratis y tiene una optimización mayor.

Posiblemente, Microsoft abrió una puerta para que casi cualquiera puede montar un cluster de R bajo Linux utilizando tecnología propietaria, algo como una gran donación a la ciencia.

Javier Rubén Marcuzzi

De: Carlos Ortega
Enviado: martes, 11 de octubre de 2016 14:21
Para: Javier Marcuzzi
CC: Carlos J. Gil Bellosta; r-help-es
Asunto: Re: [R-es] Alto rendimiento

Hola,

Son muchas cosas juntas... por separar:
• Las librerías de Microsoft.
o ¿Te refieres a las que soporta su versión de R: "Open R"?
o Están modificadas para que en Windows puedas utilizar fácilmente varios cores (varios hilos) utilizando una librería de Intel que se instala con la versión.
o Si es la versión que está en la nube, que también hablaron de ello (Azure Machine Learning), ahí tienen sus algoritmos propietarios que puedes complementarlos con "R" y gran parte de las librerías que están en CRAN.
• En este caso, en lo que te ayuda estar en su cloud si quieres usar sólo la parte de "R" es en tener por debajo máquinas con mucha RAM.
• Lo de "sparklyr":
o Si te montas varias máquinas en un clúster como dices e instalas Linux sobre el que pones Hadoop y Spark puedes con esta librería de RStudio trabajar en modo distribuido.
• El configurar un clúster de este tipo no es trivial....hay ejemplos comentado por ahí de cómo hacerlo en EC2 Amazon.
o Puedes ejecutar procesos de machine learning en modo paralelo, pero solamente los que incluyen las librerías MLlib de Spark que no son todos los que hay disponibles en CRAN, no todos los algoritmos son paralelizables. Pero sí que se contemplan los de clúster, los glm, randomForest, gbm, survival, etc (http://spark.rstudio.com/mllib.html). También es capaz de distribuir trabajos sobre H2O, que también tiene básicamente las mismas librerías que las MLlib con el añadido de "deeplearning".
o En este caso, escribes en lenguaje R (en concreto dplyr) y esta librería "traduce" a lenguaje que entiende Spark. Puedes como verás incluso lanzar igualmente sentencias SQL.

Saludos,
Carlos Ortega.
www.qualityexcellence.es



El 11 de octubre de 2016, 16:22, <javier.ruben.marcuzzi en gmail.com> escribió:
Estimado Carlos Gil Bellosta

¿Cómo está usted? En estos lados de América del sur comienza la primavera, desde la ventana miro la parra contando las posibles uvas, siempre aparece un ave que se arrima a la ventana o incluso llegan hasta la computadora como si supiesen usarla.

Ahora en R.

En ese esquema un modelo lineal tendría que ir con mlib que es aportada por sparklyr, en ese caso tendría toda la capacidad de proceso, pero no en un ml tradicional como modelo <- lm (y ~ var1 + var2).

En otras palabras http://spark.rstudio.com/mllib.html aporta beneficios, pero lo que está por fuera correría como el R de CRAN con un hilo del procesador.

Los otros días vi el video de la charla, no me quedo claro si Microsoft optimiza las librerías de sus repositorios al compilarlas o solo las de su propiedad.

Javier Rubén Marcuzzi

De: Carlos J. Gil Bellosta
Enviado: martes, 11 de octubre de 2016 10:59
Para: Javier Marcuzzi
CC: r-help-es
Asunto: Re: [R-es] Alto rendimiento

Hola, ¿qué tal?

Spark correría en tantos hilos como estuviese configurado a utilizar (con límite en los existentes). La promesa de sparklyr es que se trata de una mera interfaz que delega el procesamiento de datos en Spark. Spark paralelizaría (que de eso trata).

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com



El 11 de octubre de 2016, 15:55, <javier.ruben.marcuzzi en gmail.com> escribió:
Estimados

En el sitio de https://www.rstudio.com/  hay un aviso sobre http://spark.rstudio.com/index.html ( sparklyr ).

Microsoft publico un artículo donde comparan el R Server que está dentro de SQL server (o por separado, depende un poco), o el Microsoft R, junto con algunas librerías que se pueden compilar y obtener lo mismo en Ubuntu.

Supongamos que tengo el dinero como para comprar por ejemplo http://www.intel.la/content/www/xl/es/processors/xeon/xeon-processor-e7-family.html uno de estos procesadores con 36 núcleos.

Supongamos que tengo aún más dinero y puedo comprar 4 computadoras y colocarlas de tal forma que puedan trabajar en conjunto.

Ahora mi pregunta, spark (sparklyr) utiliza mis cuatro computadoras pero ¿un solo núcleo o los 36? (java usa solo un núcleo)

La parte de Microsoft utiliza los 36 procesadores, pero las librerías que están en los repositorios de Microsoft (no las de CRAN) ¿están optimizadas para los 36 procesadores?

O solo hay partes en spark como mlib o lo específico de R Microsoft optimizado, que puedan utilizar todos los núcleos y/o procesadores. Por ejemplo MCMCglmm ¿tiene beneficios en cualquiera de estas tecnologías o solo utiliza lo mismo que puede procesar en una portátil?

O si compro los cuatro equipos con 36 núcleos, instalo la versión de Microsoft junto con sparklyr y: ¿tengo una capacidad de cálculo impresionante, o esa capacidad es solo en sectores de R siendo el resto procesado en forma tradicional?

¿Hay comentarios al respecto desde la experiencia de alguno del grupo?

Javier Rubén Marcuzzi


        [[alternative HTML version deleted]]

_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es



        [[alternative HTML version deleted]]

_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es




-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es


	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es