Estoy tratando de paralelizar (usando snow::parLapply
) algún código que depende de un paquete (es decir, un paquete que no sea snow
). Los objetos a los que se hace referencia en la función llamada por parLapply
se deben pasar explícitamente al clúster utilizando clusterExport
. ¿Hay alguna forma de pasar un paquete completo al clúster en lugar de tener que nombrar explícitamente todas las funciones (incluidas las funciones internas de un paquete llamadas por las funciones del usuario) en clusterExport
?Pasar un paquete completo a un grupo de nieve
5
A
Respuesta
6
instalar el paquete en todos los nodos, y tener su código de llamada library(thePackageYouUse)
en todos los nodos a través de uno de los comandos disponibles, huevo algo así como
clusterApply(cl, library(thePackageYouUse))
Creo que el paquete parallel
que viene con las versiones R recientes tiene ejemplos - - véase, por ejemplo aquí desde help(clusterApply)
donde el paquete boot
se carga en todas partes:
## A bootstrapping example, which can be done in many ways:
clusterEvalQ(cl, {
## set up each worker. Could also use clusterExport()
library(boot)
cd4.rg <- function(data, mle) MASS::mvrnorm(nrow(data), mle$m, mle$v)
cd4.mle <- list(m = colMeans(cd4), v = var(cd4))
NULL
})
Cuestiones relacionadas
- 1. ¿Se puede pasar un paquete a un servicio?
- 2. Pasar un archivo completo a argumentos de JVM
- 3. ¿Cómo ejecutar un paquete completo de MiniTest sin Rake?
- 4. ¿Es posible pasar un grupo de métodos arbitrario como parámetro a un método?
- 5. ¿Cómo puedo eliminar por completo un paquete en Perl?
- 6. ORM Equivalente para un esquema de estrella/copo de nieve
- 7. Uso de nieve (y nieve) con AWS para procesamiento paralelo en R
- 8. Autorizar a un grupo de seguridad completo para realizar una Acción en ASP.Net MVC
- 9. Cómo imprimir un muñeco de nieve con Ruby
- 10. Cómo pasar una opción que contiene un espacio a un paquete en LaTeX/XeLaTeX
- 11. Un paquete completo de WiX 3.6 ejemplo de arranque de un .NET 4 Client Profile
- 12. DailogFragment - getArguments/setArguments - ¿por qué pasar argumentos en un paquete?
- 13. ¿Cómo pasar un URI a un intento?
- 14. ¿Cómo pasar un evento a un método?
- 15. @link a otro paquete dentro de un paquete-info.java
- 16. ¿Puedo pasar un objeto Javascript a un Android WebView?
- 17. la conversión de un grupo método de extensión a un delegado con un tipo genérico
- 18. Mover un grupo de configuración personalizado a un archivo separado
- 19. Forma fácil de seleccionar rápidamente un grupo de opciones completo en el cuadro de selección
- 20. Acceda a múltiples versiones de un paquete en Java
- 21. Pasando un paquete en startActivity()?
- 22. TFS: Pasar de un servidor a otro
- 23. Pasar los parámetros de paquete de paquete de arranque a msi
- 24. Enviando un paquete a través de un módulo kernel
- 25. Pasar un evento como un parámetro a un método
- 26. ¿Cómo deshabilitar los registradores de una clase o de un paquete completo?
- 27. Pasar el valor del grupo de propiedades de una tarea de MsBuild a otra
- 28. cómo determinar si un valor aparece en un grupo a grupo
- 29. Pasar credenciales de un servicio wcf a otro servicio wcf
- 30. ¿Cómo creo un grupo de subprocesos?
Gracias Dirk. ¿Hay alguna razón por la cual hacer 'clusterExport (ls())' sería peligroso? Esto no ayudaría a pasar las funciones de los paquetes, pero ahorraría muchos dolores de cabeza para paralelizar rápidamente los bucles (¡alguien más, no el mío!) Que dependen de una tonelada de variables globales. – Michael
Es solo un mal diseño, ya que utiliza un enfoque scattershot plus sink de cocina. Diseña lo que necesitas en una solución en serie, luego haz que sea paralelo. –
Bastante, gracias por la ayuda. – Michael