2014-05-11 2 views
9

Während ich Julia von der manual lernte, wollte ich sehen, ob ich Julia dazu bringen konnte, eine harte Berechnung auf allen vier CPU-Kernen gleichzeitig auszuführen. Ich habe Julia mit diesem Befehl gestartet;Julia `remotecall` Threads geben unterschiedliche Ergebnisse

Dann habe ich die folgende Funktion definiert, nur für den Zweck einer Menge von Arithmetik. Der Mod 13 ist da, damit am Ende keine große Zahl gedruckt wird.

@everywhere function hard_computation()   
    bigexp = BigInt(999)^99999999 
    bigexp % 13 
end 

Dann sage ich Julia, dies in vier getrennten Prozessen zu tun.

for i in 1:4 
    push!(r, remotecall(i, hard_computation)) 
end 

Als ich fetch die Werte in r ed, bekam ich [5, 6, 5, 5]. Ich habe es mehrere Male versucht, und habe; 5, 5, 5, 5, 5, 1, 5, 5, 5, 2, 0, 5, 5, 5, 5, 7. Die richtige Antwort lautet 5.

Also ... was läuft schief?

Systeminfo;

  • Julia 0.2.1
  • Linux 3.5.0-17-generic (x86_64)
  • Intel Core i5-2430M
+1

Mit dem Kopf von GitHub Master-Zweig, kann ich das nicht auf meinem wimpy und alten 32-Bit-2-Core-Laptop wiederholen. Alle meine Antworten (30 Mal wiederholt) waren 5. – rickhg12hs

+0

Wenn dies reproduzierbar ist, scheint es sicherlich wie ein Fehler. Möglicherweise möchten Sie ein Problem öffnen. – StefanKarpinski

Antwort

0

Fehlalarm, jeder; stellt sich heraus, dass mein RAM beschädigt war.