multithreading - Julia @everywhere variables
parallel-processing julia-lang (1)
Para encontrar las funciones (y macros) que Spencer señaló en un paquete pequeño y agradable, revise ParallelDataTransfer.jl . Las pruebas son buenos ejemplos de uso (y el IC muestra que estas pruebas transmiten v0.5 en todas las plataformas).
Para su problema, puede usar la función sendto
:
z = randn(10, 10); sendto(workers(), z=z)
@everywhere println(z)
Estoy tratando de implementar código en paralelo usando Julia. Estoy usando la macro @everywhere para hacer que todos los procesos obtengan datos de RemoteRef.
¿Es posible usar un nombre de variable que solo está definido en el primer proceso en la expresión @everywhere y especificar de algún modo que deseo que envíe el valor de esa variable, y no el nombre de la variable, a todos los procesos?
Ejemplo:
r = RemoteRef()
put(r, data)
@everywhere data = fetch(r)
Esto devuelve un error porque r
no está definido en todos los procesos.
¿Cómo debo mover datos a todos los procesos?
Además, ¿puedo decirle a Julia que ponga el valor en lugar del nombre de la variable en la expresión? Algo parecido a cómo name = "John"; println("Hello, $name")
name = "John"; println("Hello, $name")
imprimirá "Hello, John"