2009-09-20 27 views
39

Me pregunto cuál es la mejor forma de implementar R. Matlab tiene el "compilador de matlab" (MCR). Se ha debatido sobre algo similar en el pasado para R que compilaría R en C o C++. ¿Alguien tiene alguna experiencia con el R to C Compiler (RCC) that was developed by John Garvin at Rice?¿Existe un compilador de R?

Lo he investigado, y parece ser el único proyecto que trabajó en la compilación del código R en código ejecutable. Y por lo que puedo decir, todavía no se está utilizando.

[Editar 1:]: Para ser claros, sé que hay interfaces C y C++ (y Java, Python, etc.) para R (rJava, rcpp, Rpy, etc.). Me pregunto acerca de formas específicas de compilar e implementar el código R sin instalar R por adelantado.

[Editar 2:]: John Mellor-Crummey me dice que todavía están trabajando en RCC y esperan que esté disponible en 4 meses más o menos (como muy pronto). Actualizaré esto más si encuentro algo más.

Respuesta

35

Un compilador de código de bytes formará parte de la versión R 2.13.Por defecto no se usa en este lanzamiento, pero está disponible; Espero que la versión 2.14 compile por defecto todos los paquetes base y recomendados. La página de ayuda de compilación :: compilación y el R Manual de instalación y administración proporcionan más detalles.

+0

¿Hay pistas/pautas sobre cuándo la compilación será efectiva? Mi intento más exitoso hasta ahora ha sido una búsqueda binaria, con 2 veces más velocidad; Había estado esperando secretamente que S4 se volviera realmente rápido, pero ¿tal suerte? –

+1

En este punto, las funciones y bucles grandes se beneficiarán. Llamar a las funciones compiladas usa el mismo mecanismo por ahora que llamar a las interpretadas, por lo que las cosas dominadas por la sobrecarga de llamada de función verán pocos cambios. Es probable que esto evolucione durante el próximo año más o menos. –

+5

Hoy publiqué un ejemplo de blog que se centra en los bucles (simples, estúpidos, poco realistas): http://dirk.eddelbuettel.com/blog/2011/04/12#the_new_r_compiler_package Estoy seguro de que habrá más publicaciones en esta vez R 2.13 .0 se lanza formalmente mañana. –

3

No he usado el paquete de Garvin y no sé qué es posible en esas líneas. Sin embargo:

Normalmente, las personas solo escriben funciones computacionalmente intensivas directamente en C/C++/Fortran, después de profiling para encontrar los cuellos de botella. Consulte el RCpp interface o el Calling C functions from R using .C and .Call para obtener ejemplos. El Scythe Statistical Library también es muy bueno para los usuarios R ya que los nombres de sintaxis/función son similares.

+0

Gracias, los enlaces son buenos. Sin embargo, estoy centrándome particularmente en el proceso de implementación, menos que el problema de rendimiento. – Shane

17

Me había olvidado del proyecto Rice, ha pasado un tiempo. Creo que el término operativo aquí se establece en la parte superior de la página del proyecto: Última actualización 3/8/06.

Y todos sabemos que R cambia mucho. Así que tengo sólo los pocos punteros estándar para usted:

  • Luke Tierney, que no sólo conoce mucho sobre partes internas de I pero igualmente sobre los compiladores de bytes, ha estado trabajando en un proyecto de este tipo. Nada listo todavía, y aún funcionaría junto con el motor R estándar.
  • Stephen Milborrow tiene la extensión Ra a R que funciona con su paquete justo a tiempo compilador jit
  • mi Introducción a la informática de alto rendimiento con tutoriales R (most recent tutorial slides from UseR! 2009) cubre el perfilado, la compilación de extensiones, la computación en paralelo con R,. .. parte, incluyendo Rcpp yy un poco sobre RInside.

En resumen: no hay manera de tener lo que desea formas específicas para compilar y desplegar código R sin necesidad de instalar R de antemano. Lo siento.

Editar/Actualizar (abril de 2011): nuevo paquete de Lucas compiler será parte de la I 2.13.0 (a ser publicado en abril de 2011), pero no 'activado' por defecto que se espera para R 2.14.0 esperado para Octubre de 2011.

Edición/Actualización (diciembre de 2011): El profesor Tierney acaba de lanzar un massive 100+ page paper en el compilador de código de bytes.

+0

Gracias Dirk! No he revisado la página de Luke recientemente. Su papel/tutorial de informática de alto rendimiento es fantástico. Tomé la última fecha actualizada que significa exactamente lo que dices, pero solo quería verificar. :) – Shane

6

¿Por qué la gente tiene miedo al implementar R? Estoy bastante seguro de haber visto esta pregunta antes.

Instalar R es pan comido (en realidad, no dice qué sistema operativo le importa). Para Windows es un .exe. archivo, ejecútelo, diga "sí" varias veces y listo. Sospecho que el instalador exe probablemente también tiene indicadores para la instalación desatendida.

+4

R es fácil. Algunos paquetes y sus dependencias no lo son, especialmente si estos involucran ciertos otros lenguajes. Me vienen a la mente Java y Tcl/Tk. – Iterator

3

Check-out el compilador P que implementa un subconjunto de R. Sobre todo, listas, matrices, vectores, etc son implementados, así como lsfit, chol, SVD, ...

Puede descargar gratis versión en

www.ptechnologies.org

Se acelera cálculos sustancialmente.

mejor,

AS

+9

Sería aún más convincente si no fuera de código cerrado ... –

Cuestiones relacionadas