scale_x_discrete manipulation ggtitle ggplot change r multicore

manipulation - scale_x_discrete



¿Paquete R que utiliza automáticamente varios núcleos? (5)

Me he dado cuenta de que R solo usa un núcleo al ejecutar uno de mis programas, lo que requiere muchos cálculos. Me gustaría aprovechar mi procesador multi-core para que mi programa se ejecute más rápido. En realidad, aún no he investigado la pregunta en profundidad, pero apreciaría beneficiarme de sus comentarios porque no tengo un buen conocimiento en ciencias de la computación y para mí es difícil obtener información fácilmente comprensible sobre ese tema.

¿Hay algún paquete que permita a R usar automáticamente varios núcleos cuando sea necesario?

Supongo que no es tan simple.


Como dijo David Heffernan, eche un vistazo al Blog of revolution Analytics. Pero debes saber que la mayoría de los paquetes son para Linux. Entonces, si usas windows será mucho más difícil. De todos modos, eche un vistazo a estos sitios:

Revolution Aquí encontrará una conferencia sobre paralelización en R. La conferencia es realmente muy buena, pero, como dije, la mayoría de los consejos son para Linux.

Y este hilo aquí en analizará algunas implementaciones en Windows.


En esta pregunta siempre obtienes respuestas muy cortas. La solución más fácil según mi opinión es el paquete snowfall , basado en la nieve. Es decir, en una sola computadora con Windows con múltiples núcleos. Vea también aquí el artículo de Knaus et al para un ejemplo simple. Snowfall es una envoltura alrededor del paquete snow, y te permite configurar un multinúcleo con algunos comandos. Definitivamente es menos molesto que la mayoría de los otros paquetes (no probé todos).

En una nota al margen, de hecho, solo hay algunas tareas que pueden ser paralelizadas, por la sencilla razón de que tiene que ser capaz de dividir las tareas antes de que el cálculo multinúcleo tenga sentido. La familia de apply es obviamente una opción lógica para esto: cálculos múltiples e independientes , lo cual es crucial para el uso de múltiples núcleos. Cualquier otra cosa no siempre es tan fácilmente multicorre.

Lea también esta discusión sobre sfApply y funciones personalizadas .


Microsoft R Open incluye bibliotecas de subprocesos múltiples para mejorar el rendimiento de R. Funciona en Windows / Unix / Mac todo tipo de SO. Es de código abierto y se puede instalar en un directorio separado si tiene alguna instalación R (de CRAN) existente. También puede usar el popular IDE Rstudio con esto. Desde su inicio, R fue diseñado para usar solo un solo hilo (procesador) a la vez. Incluso hoy en día, R funciona de esa manera a menos que esté vinculado con las bibliotecas BLAS / LAPACK de múltiples subprocesos.

Las máquinas de múltiples núcleos de hoy ofrecen potencia de procesamiento paralelo. Para aprovechar esto, Microsoft R Open incluye bibliotecas de matemáticas de subprocesos múltiples. Estas bibliotecas hacen posible que tantas operaciones R comunes, como la matriz multiplicada / inversa, la descomposición de la matriz y algunas operaciones matriciales de alto nivel, computen en paralelo y utilicen toda la potencia de procesamiento disponible para reducir los tiempos de cálculo.

Por favor revise el siguiente enlace:

https://mran.revolutionanalytics.com/rro/#about-rro

http://www.r-bloggers.com/using-microsoft-r-open-with-rstudio/


R solo puede hacer uso de múltiples núcleos con la ayuda de paquetes adicionales, y solo para algunos tipos de operación. Las opciones se analizan en detalle en la Vista de tareas de computación de alto rendimiento en CRAN

Actualización: de R Los paquetes complementarios de la versión 2.14.0 no son necesariamente necesarios debido a la inclusión del paquete paralelo , ya que un paquete recomendado enviado con R. paralelo incluye la funcionalidad de los paquetes multinúcleo y snow , prácticamente sin cambios.


La forma más fácil de aprovechar los multiprocesadores es el paquete multicore que incluye la función mclapply (). mclapply () es una versión multinúcleo de lapply (). Por lo tanto, cualquier proceso que pueda usar lapply () se puede convertir fácilmente a un proceso mclapply (). Sin embargo, multinúcleo no funciona en Windows. Escribí una publicación de blog sobre este último año que podría ser útil. El paquete Revolution Analytics creado, doSMP , NO es una versión de subprocesos múltiples de R. Es efectivamente una versión de multinúcleo para Windows.

Si su trabajo es vergonzosamente paralelo , es una buena idea sentirse cómodo con el tipo de estructuración lapply (). Eso le dará un fácil acceso a mclapply () e incluso a la computación distribuida utilizando la misma abstracción.

Las cosas se ponen mucho más difíciles para las operaciones que no son "vergonzosamente paralelas".

[EDITAR]

Como nota al margen, Rstudio se está volviendo cada vez más popular como una interfaz para R. Me encanta Rstudio y lo uso a diario. Sin embargo, debe tenerse en cuenta que Rstudio no juega bien con Multicore (al menos a partir de octubre de 2011 ... Entiendo que el equipo de RStudio va a solucionar este problema). Esto se debe a que Rstudio hace un poco de bifurcación entre bambalinas y estas bifurcaciones entran en conflicto con los intentos de Multicore de bifurcar. Por lo tanto, si necesita multinúcleo, puede escribir su código en Rstuido, pero ejecutarlo en una sesión simple de Jane R.