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
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
Wenn dies reproduzierbar ist, scheint es sicherlich wie ein Fehler. Möglicherweise möchten Sie ein Problem öffnen. – StefanKarpinski