Mentre imparavo Julia dallo manual, volevo vedere se potevo convincere Julia a eseguire un calcolo duro su tutti e quattro i core della mia CPU in una volta. Ho lanciato Julia con questo comando;Filettature `remotecall` di Julia che danno risultati diversi
julia -p 4
Poi ho definito la seguente funzione, solo per lo scopo di fare un sacco di aritmetica. Il mod 13 è lì in modo che non stampi un numero enorme alla fine.
@everywhere function hard_computation()
bigexp = BigInt(999)^99999999
bigexp % 13
end
Poi dico Julia di fare questo in quattro processi separati.
for i in 1:4
push!(r, remotecall(i, hard_computation))
end
Quando ho fetch
Ed i valori in R, ho avuto [5, 6, 5, 5]
. L'ho provato diverse volte, e ho ottenuto; 5, 5, 5, 5, 5, 1, 5, 5, 5, 2, 0, 5, 5, 5, 5, 7
. La risposta corretta è 5
.
Quindi ... che cosa non va?
Informazioni di sistema;
- Julia 0.2.1
- Linux 3.5.0-17-generic (x86_64)
- Intel Core i5-2430M
Utilizzando l'HEAD del ramo master di GitHub, non posso ripeterlo sul mio wimpy e vecchio laptop a 32 bit a 2-core. Tutte le mie risposte (ripetute 30 volte) erano 5. – rickhg12hs
Se questo è riproducibile, sembra certamente un bug. Potresti voler aprire un problema. – StefanKarpinski