Cada vez que veo una pregunta sobre el procesamiento paralelo en R, utiliza la función foreach
. Como los bucles for
no son muy parecidos a R, ¿existe una versión paralela de apply
? De ser así, ¿por qué no es más popular?¿Las extensiones paralelas R rompen la metáfora `aplicar`?
Respuesta
Existen numerosas versiones paralelas de *apply
, empezando por
parLapply()
en la nievemclapply()
en múltiples núcleosmpi.apply()
en RPMI
, así como paquetes dedicados tales como papply (posiblemente ya no se mantenga).
¿Son tan fáciles de usar que nadie hace preguntas sobre ellos entonces? :-) Tal vez solo han sido las últimas semanas, pero ha habido bastantes preguntas foreach y ninguna sobre esto. La búsqueda de estos tres en SO arroja resultados solo para mclapply(), y luego no tantos. –
Puede comenzar con un documento de encuesta como, por ejemplo, [este en JSS] (http://www.jstatsoft.org/v31/i01/paper). –
Ese es un documento práctico. –
@Dirk es correcto. Añadiría que el paquete plyr
ahora tiene soporte para un back-end paralelo.
En el caso del paquete plyr
, puede darse el caso de que poco se menciona porque caer en un backend paralelo no toma ningún pensamiento: es sólo una bandera.
Creo que puede tener razón en que no recibe ninguna mención porque simplemente funciona. ¿Por qué no funciona de la misma manera con aplicar? En última instancia, parece ser la metáfora correcta: deje que las bibliotecas manejen la paralelización y todo lo que tiene que hacer el usuario es decidir si desea que se ejecute en paralelo o no ... –
Pragmáticamente hablando, algunas de estas funciones son bastante nuevas y las personas simplemente comenzando a adoptarlo. – Iterator
Sí, pero foreach parece ser el más nuevo de ellos y es el que recibe toda la atención ... –
- 1. ¿Está utilizando extensiones paralelas?
- 2. ¿TransactionScope no funciona con las extensiones paralelas?
- 3. ¿Reactivarán las Extensiones reactivas (Rx) la Biblioteca de tareas paralelas?
- 4. R aplicar la función con múltiples parámetros
- 5. Metáfora identificable en Java?
- 6. ¿Cuán paralelas son las pruebas paralelas en Ruby 1.9.3?
- 7. ASP.NET: cómo se procesan las solicitudes paralelas
- 8. Cómo utilizar las estrategias paralelas en Haskell
- 9. Scala tareas paralelas únicamente en las declaraciones
- 10. ios rompen anidado bucle
- 11. Uso de extensiones paralelas con el atributo ThreadStatic. ¿Podría perder memoria?
- 12. ¿Se rompen las expresiones condicionales dentro de los paquetes?
- 13. ¿Cuál es una buena metáfora de la inyección de dependencia?
- 14. Extensiones Grand Central vs Parallel
- 15. Aplicar una función a una matriz de distancia en R
- 16. R: usando ddply para aplicar funciones a subconjuntos de datos
- 17. detectar "problemillas" en líneas paralelas a las curvas de Bézier
- 18. ¿Accediendo a matrices paralelas en las plantillas de Django?
- 19. ¿Qué operaciones en las colecciones paralelas de Scala están paralelizadas?
- 20. ¿Los punteros son privados en las secciones paralelas de OpenMP?
- 21. ¿Los navegadores modernos aún limitan las descargas paralelas?
- 22. MSBUILD 4.0 falla en las extensiones AJAX
- 23. C#: ¿Por qué las mutaciones en las estructuras de solo lectura no se rompen?
- 24. ¿Por qué las diversas extensiones JPEG?
- 25. ¿Qué pasó con las extensiones nunit/rowtest?
- 26. redirigir todas las extensiones .html a .php
- 27. Comenzando con las extensiones de thunderbird
- 28. Delayed_job - ¿Varias colas paralelas?
- 29. ¿Dónde almacena google chrome las extensiones desempaquetadas?
- 30. Tutorial para las extensiones shell de Windows
En mi caso, el atractivo de 'foreach' es que me permite pasar más de una variable a la función, elegir cómo ensamblar los resultados y es más legible que los equivalentes' apply'. Sin embargo, no sé cómo se comparan en términos de velocidad. – Backlin
@Backlin: Pero las mismas críticas podrían hacerse de 'for' vs.' apply' (las versiones no paralelas), y las personas discuten a gritos por la familia apply. Es tan estilo como algo de velocidad ... –