[R-es] foreach, snow, caret

daniel daniel319 en gmail.com
Mar Ene 29 13:34:34 CET 2013


Tania.

Afortunadamente el paquete caret tiene un sitio donde da ejemplos de
su funcionamiento http://caret.r-forge.r-project.org/index.html (que
habrías encontrado con una simple búsqueda con Google, o haciendo lo
que Javier te indica con el help de R).

Como podrás ver en ese sitio algunas funciones de caret utilizan la
función foreach (del paquete foreach). foreach es equivalente a
realizar bucles del tipo "for loops" pero con el agregado de poder
realizarlo en paralelo, para lo cual tiene que tener un backend
iniciado.  El problema con foreach es que gasta mucho tiempo en la
comunicación entre los núcleos para obtener los resultados de los
diferentes núcleos y hacer que estos encajen. foreach es sólo
recomendable si tienes relativamente pocas rondas a través de
funciones que llevan mucho tiempo. Las funciones de caret que lo usan
probablemente tienden a cumplir con esta particularidad. Pero te
aconsejo que hagas la experiencia de controlar el tiempo usando %do% y
%dopar%, o usando el paquete caret en una sesión en paralelo y en otra
no (para lo cual tienes que registrar el backend que vas a usar).

El paquete snow te permite conectar multiples estaciones de trabajo en
paralelo.  No tengo experiencia con ese paquete ya que cuando utilicé
foreach lo utilicé los cores de mi estación de trabajo con los
paquetes multicore y doMC en las versiones de linux Ubunto y CentOs.
Revolution Analitycs tenía un paquete para Windows pero mi experiencia
(hace dos años atrás, creo que para R 2.12)  intentando ejecutar
funciones en paralelo bajo Windows fue mala, desconozco como será hoy
la situación.

Daniel Merino

El día 29 de enero de 2013 00:09, Marcuzzi, Javier
<javier.ruben.marcuzzi en gmail.com> escribió:
> Estimado Tania Patiño
>
> En mi R escribí:
> ?foreach
> ?snow
> ?caret
>
> El más simple es foreach (por cada...), pero R no tiene estas por
> decirlo de alguna forma, en la base, se requieren librerías específicas
> para su utilización, el mismo R ante mi pregunta ?foreach ?snow, sugiere
> que cambie la pregunta, por ejemplo:
> de ?foreach a ??foreach
> Entonces en la respuesta aparecen los paquetes que tengo instalados y la
> función foreach.
> ¿Es de esperar el mismo comportamiento o especificación para todos los
> paquetes?, aunque parezca ilógico en cada paquete la misma función puede
> ser utilizada con diferencias.
> ¿En que paquete estaba pensando utilizar esta parte del lenguaje R?
> Cuándo usted se interrogo por las diferencias seguramente fue en un
> contexto de trabajo, creo que es recomendable que especifique un poco de
> esto para buscar respuestas adecuadas, algún ejemplo relacionado, etc.
>
> Javier Marcuzzi
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es



-- 
Daniel



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