2014-05-11 16 views
9

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
+1

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

+0

Se questo è riproducibile, sembra certamente un bug. Potresti voler aprire un problema. – StefanKarpinski

risposta

0

Falso allarme, tutti; scopre che la mia RAM è stata danneggiata.

Problemi correlati