Hola a tod en s, estoy realizando unas operaciones con muchos datos con el paquete "vegan", concretamente la función "metaMDS" y me gustaría saber si puedo usar más de un procesador a la vez para acelerar los cálculos. He visto el paquete "multicore" pero no sé usarlo, ¿alguien lo ha usado para algo así? Gracias y saludos, Javier -- http://oikos.inf.um.es
Hola, ¿qué tal? La infraestructura para paralelizar depende mucho del sistema operativo. Por tanto, sería conveniente que en futuras preguntas al respecto indicases qué SO utilizas. De hecho, por lo que sé, multicore corre sólo en UNIX y derivados (Linux, Mac). Tienes ejemplos de uso aquí: http://www.datanalytics.com/blog/2010/09/01/el-paquete-multicore-de-r/ En la vista de paquetes para "high performance" en R tienes un resumen de las opciones existentes: http://cran.r-project.org/web/views/HighPerformanceComputing.html Puede que el paquete "foreach" sea un buen punto de partida. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 1 de marzo de 2011 16:04, Javier Martinez Lopez <javier.martinez en um.es> escribió:> Hola a tod en s, > > estoy realizando unas operaciones con muchos datos con el paquete > "vegan", concretamente la función "metaMDS" y me gustaría saber si > puedo usar más de un procesador a la vez para acelerar los cálculos. > He visto el paquete "multicore" pero no sé usarlo, ¿alguien lo ha > usado para algo así? > > Gracias y saludos, > > Javier > > -- > http://oikos.inf.um.es > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >
Tienes toda la razón! Uso ubuntu linux 10.04 64bits. Miraré el post que me has enlazado. Gracias, Javier 2011/3/1 Carlos J. Gil Bellosta <cgb en datanalytics.com>:> Hola, ¿qué tal? > > La infraestructura para paralelizar depende mucho del sistema > operativo. Por tanto, sería conveniente que en futuras preguntas al > respecto indicases qué SO utilizas. De hecho, por lo que sé, multicore > corre sólo en UNIX y derivados (Linux, Mac). Tienes ejemplos de uso > aquí: > > http://www.datanalytics.com/blog/2010/09/01/el-paquete-multicore-de-r/ > > En la vista de paquetes para "high performance" en R tienes un resumen > de las opciones existentes: > > http://cran.r-project.org/web/views/HighPerformanceComputing.html > > Puede que el paquete "foreach" sea un buen punto de partida. > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > > > > > > El día 1 de marzo de 2011 16:04, Javier Martinez Lopez > <javier.martinez en um.es> escribió: >> Hola a tod en s, >> >> estoy realizando unas operaciones con muchos datos con el paquete >> "vegan", concretamente la función "metaMDS" y me gustaría saber si >> puedo usar más de un procesador a la vez para acelerar los cálculos. >> He visto el paquete "multicore" pero no sé usarlo, ¿alguien lo ha >> usado para algo así? >> >> Gracias y saludos, >> >> Javier >> >> -- >> http://oikos.inf.um.es >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- http://oikos.inf.um.es
miguel.angel.rodriguez.muinos en sergas.es
2011-Mar-02 09:34 UTC
[R-es] usar multiples procesadores en R
Hola Javier. El tema de la paralelización con R es apasionante y nada trivial. En primer lugar hay que tener muy claro qué se pretende hacer para optar por una solución adecuada. Existen varios métodos como MPI, PVM, sockets, ... Sin entrar en detalles farragosos te recomiendo que utilices una solución basada en sockets (ya que parece que pretendes usar el multicore de un equipo y no un cluster de máquinas o procesadores). Esta solución creo que es la mejor para trabajar con los cores de nuestra máquina y facilita mucho la programación. Llegado a este punto creo que debes conocer la existencia de snowfall http://cran.es.r-project.org/web/packages/snowfall/index.html Imagina que quieres iniciar un proceso en 2 cores de tu máquina: ## Iniciamos el proceso; sfInit(parallel=TRUE, cpus=2, type="sock") sfClusterSetupRNG() sfClusterApply(1:2, rnorm) ## El 1º da 1 elemento, el 2º da 2 elementos SfClusterApply(1:2, function(x) rnorm(1)) ## llama a rnorm(1) en cada uno de los nodos ..... ## Si queremos usar balanceo de carga... sfClusterApplyLB(1:2, function(x) rnorm(1)) ..... Un buen comienzo es echarle un ojo a los ejemplos que Knaus ofrece en la documentación del paquete. Un Saludo, =======================================================Miguel Ángel Rodríguez Muíños Dirección Xeral de Innovación e Xestión da Saúde Pública Consellería de Sanidade Xunta de Galicia ======================================================= -----Mensaje original----- De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r-project.org] En nombre de Javier Martinez Lopez Enviado el: martes, 01 de marzo de 2011 16:05 Para: r-help-es en r-project.org Asunto: [R-es] usar multiples procesadores en R Hola a tod en s, estoy realizando unas operaciones con muchos datos con el paquete "vegan", concretamente la función "metaMDS" y me gustaría saber si puedo usar más de un procesador a la vez para acelerar los cálculos. He visto el paquete "multicore" pero no sé usarlo, ¿alguien lo ha usado para algo así? Gracias y saludos, Javier -- http://oikos.inf.um.es _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. See more languages: http://www.sergas.es/aviso_confidencialidad.htm
La disponibilidad de multiples nucleos o de multiples procesadores ofrece la posibilidad de paralelización. Este es un recurso fantastico para procesar lineas independientes de trabajo. El problema con la paralelización es que el código debe estar preparado para aprovechar el procesamiento paralelo. No estoy al tanto si el paquete vegan esta preparado para trabajar en paralelo y se me ocurre que ningun paquete standar lo esté. Todavia estamos en una etapa donde la paralelización es una artesania . Si el problema es aplicar un paquete a un problema grande y el paquete no esta paralelizado, no importa cuanto procesadores podamos declarar, el proceso tendra lugar en uno solo de ellos. Prof. Julio Di Rienzo Estadística y Biometría FCA- U.N. Córdoba IBS-RARG President http://sites.google.com/site/juliodirienzo "Biometry, the active pursuit of biological knowledge by quantitative methods." (R.A. Fisher, 1948) 2011/3/2 <miguel.angel.rodriguez.muinos@sergas.es>> Hola Javier. > > El tema de la paralelización con R es apasionante y nada trivial. > > En primer lugar hay que tener muy claro qué se pretende hacer para optar > por una solución adecuada. > Existen varios métodos como MPI, PVM, sockets, ... > Sin entrar en detalles farragosos te recomiendo que utilices una solución > basada en sockets (ya que parece que pretendes usar el multicore de un > equipo y no un cluster de máquinas o procesadores). Esta solución creo que > es la mejor para trabajar con los cores de nuestra máquina y facilita mucho > la programación. > > Llegado a este punto creo que debes conocer la existencia de snowfall > http://cran.es.r-project.org/web/packages/snowfall/index.html > > Imagina que quieres iniciar un proceso en 2 cores de tu máquina: > ## Iniciamos el proceso; > sfInit(parallel=TRUE, cpus=2, type="sock") > sfClusterSetupRNG() > sfClusterApply(1:2, rnorm) ## El 1º da 1 elemento, el 2º da 2 elementos > SfClusterApply(1:2, function(x) rnorm(1)) ## llama a rnorm(1) en cada uno > de los nodos > ..... > ## Si queremos usar balanceo de carga... > sfClusterApplyLB(1:2, function(x) rnorm(1)) > ..... > > Un buen comienzo es echarle un ojo a los ejemplos que Knaus ofrece en la > documentación del paquete. > > > Un Saludo, > =======================================================> Miguel Ángel Rodríguez Muíños > Dirección Xeral de Innovación e Xestión da Saúde Pública > Consellería de Sanidade > Xunta de Galicia > =======================================================> > > > > > > > -----Mensaje original----- > De: r-help-es-bounces@r-project.org [mailto: > r-help-es-bounces@r-project.org] En nombre de Javier Martinez Lopez > Enviado el: martes, 01 de marzo de 2011 16:05 > Para: r-help-es@r-project.org > Asunto: [R-es] usar multiples procesadores en R > > Hola a tod@s, > > estoy realizando unas operaciones con muchos datos con el paquete "vegan", > concretamente la función "metaMDS" y me gustaría saber si puedo usar más de > un procesador a la vez para acelerar los cálculos. > He visto el paquete "multicore" pero no sé usarlo, ¿alguien lo ha usado > para algo así? > > Gracias y saludos, > > Javier > > -- > http://oikos.inf.um.es > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > Nota: A información contida nesta mensaxe e os seus posibles documentos > adxuntos é privada e confidencial e está dirixida únicamente ó seu > destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, > por favor elimínea. A distribución ou copia desta mensaxe non está > autorizada. > > Nota: La información contenida en este mensaje y sus posibles documentos > adjuntos es privada y confidencial y está dirigida únicamente a su > destinatario/a. Si usted no es el/la destinatario/a original de este > mensaje, por favor elimínelo. La distribución o copia de este mensaje no > está autorizada. > > See more languages: http://www.sergas.es/aviso_confidencialidad.htm > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Hola, Como alternativa, me bajaría la versión de R "free" de Revolution-Analytics que presume de gestionar bastante mejor que R los objetos grandes en memoria. http://www.revolutionanalytics.com/downloads/ Y adicionalmente, volvería al principio de la consulta de este hilo y pediría ver el código utilizado en el procesado por si hubiera alguna posibilidad de optimizarlo. Saludos, Carlos Ortega www.qualityexcellence.es 2011/3/2 Julio Alejandro Di Rienzo <dirienzo.julio@gmail.com>> La disponibilidad de multiples nucleos o de multiples procesadores ofrece > la > posibilidad de paralelización. > Este es un recurso fantastico para procesar lineas independientes de > trabajo. > El problema con la paralelización es que el código debe estar preparado > para > aprovechar el procesamiento paralelo. No estoy al tanto si el paquete vegan > esta preparado para trabajar en paralelo y se me ocurre que ningun paquete > standar lo esté. Todavia estamos en una etapa donde la paralelización es > una > artesania . Si el problema es aplicar un paquete a un problema grande y el > paquete no esta paralelizado, no importa cuanto procesadores podamos > declarar, el proceso tendra lugar en uno solo de ellos. > > Prof. Julio Di Rienzo > Estadística y Biometría > FCA- U.N. Córdoba > IBS-RARG President > http://sites.google.com/site/juliodirienzo > "Biometry, the active pursuit of biological > knowledge by quantitative methods." > (R.A. Fisher, 1948) > > > > 2011/3/2 <miguel.angel.rodriguez.muinos@sergas.es> > > > Hola Javier. > > > > El tema de la paralelización con R es apasionante y nada trivial. > > > > En primer lugar hay que tener muy claro qué se pretende hacer para optar > > por una solución adecuada. > > Existen varios métodos como MPI, PVM, sockets, ... > > Sin entrar en detalles farragosos te recomiendo que utilices una solución > > basada en sockets (ya que parece que pretendes usar el multicore de un > > equipo y no un cluster de máquinas o procesadores). Esta solución creo > que > > es la mejor para trabajar con los cores de nuestra máquina y facilita > mucho > > la programación. > > > > Llegado a este punto creo que debes conocer la existencia de snowfall > > http://cran.es.r-project.org/web/packages/snowfall/index.html > > > > Imagina que quieres iniciar un proceso en 2 cores de tu máquina: > > ## Iniciamos el proceso; > > sfInit(parallel=TRUE, cpus=2, type="sock") > > sfClusterSetupRNG() > > sfClusterApply(1:2, rnorm) ## El 1º da 1 elemento, el 2º da 2 elementos > > SfClusterApply(1:2, function(x) rnorm(1)) ## llama a rnorm(1) en cada uno > > de los nodos > > ..... > > ## Si queremos usar balanceo de carga... > > sfClusterApplyLB(1:2, function(x) rnorm(1)) > > ..... > > > > Un buen comienzo es echarle un ojo a los ejemplos que Knaus ofrece en la > > documentación del paquete. > > > > > > Un Saludo, > > =======================================================> > Miguel Ángel Rodríguez Muíños > > Dirección Xeral de Innovación e Xestión da Saúde Pública > > Consellería de Sanidade > > Xunta de Galicia > > =======================================================> > > > > > > > > > > > > > > > -----Mensaje original----- > > De: r-help-es-bounces@r-project.org [mailto: > > r-help-es-bounces@r-project.org] En nombre de Javier Martinez Lopez > > Enviado el: martes, 01 de marzo de 2011 16:05 > > Para: r-help-es@r-project.org > > Asunto: [R-es] usar multiples procesadores en R > > > > Hola a tod@s, > > > > estoy realizando unas operaciones con muchos datos con el paquete > "vegan", > > concretamente la función "metaMDS" y me gustaría saber si puedo usar más > de > > un procesador a la vez para acelerar los cálculos. > > He visto el paquete "multicore" pero no sé usarlo, ¿alguien lo ha usado > > para algo así? > > > > Gracias y saludos, > > > > Javier > > > > -- > > http://oikos.inf.um.es > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > Nota: A información contida nesta mensaxe e os seus posibles documentos > > adxuntos é privada e confidencial e está dirixida únicamente ó seu > > destinatario/a. Se vostede non é o/a destinatario/a orixinal desta > mensaxe, > > por favor elimínea. A distribución ou copia desta mensaxe non está > > autorizada. > > > > Nota: La información contenida en este mensaje y sus posibles documentos > > adjuntos es privada y confidencial y está dirigida únicamente a su > > destinatario/a. Si usted no es el/la destinatario/a original de este > > mensaje, por favor elimínelo. La distribución o copia de este mensaje no > > está autorizada. > > > > See more languages: http://www.sergas.es/aviso_confidencialidad.htm > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]
miguel.angel.rodriguez.muinos en sergas.es
2011-Mar-02 12:10 UTC
[R-es] usar multiples procesadores en R
Hola Julio. No estoy de acuerdo contigo. Efectivamente, el "proceso tendrá lugar en uno solo de ellos" como bien dices porque la función en cuestión no está programada para ser ejecutada simultáneamente en varios procesadores (o núcleos de un procesador). Pero sí podemos hacer que cada operación se ejecute en núcleos (cores) distintos, con lo que conseguiremos acelerar el proceso "paralelizando" la ejecución del programa. http://journal.r-project.org/2009-1/RJournal_2009-1_Knaus+et+al.pdf Un Saludo, Miguel. ________________________________ De: Julio Alejandro Di Rienzo [mailto:dirienzo.julio@gmail.com] Enviado el: miércoles, 02 de marzo de 2011 12:23 Para: Rodríguez Muíños, Miguel Ángel CC: javier.martinez; r-help-es Asunto: Re: [R-es] usar multiples procesadores en R La disponibilidad de multiples nucleos o de multiples procesadores ofrece la posibilidad de paralelización. Este es un recurso fantastico para procesar lineas independientes de trabajo. El problema con la paralelización es que el código debe estar preparado para aprovechar el procesamiento paralelo. No estoy al tanto si el paquete vegan esta preparado para trabajar en paralelo y se me ocurre que ningun paquete standar lo esté. Todavia estamos en una etapa donde la paralelización es una artesania . Si el problema es aplicar un paquete a un problema grande y el paquete no esta paralelizado, no importa cuanto procesadores podamos declarar, el proceso tendra lugar en uno solo de ellos. Prof. Julio Di Rienzo Estadística y Biometría FCA- U.N. Córdoba IBS-RARG President http://sites.google.com/site/juliodirienzo "Biometry, the active pursuit of biological knowledge by quantitative methods." (R.A. Fisher, 1948) ________________________________ Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. See more languages: http://www.sergas.es/aviso_confidencialidad.htm [[alternative HTML version deleted]]