2014-05-11 31 views
9

Khi học Julia từ manual, tôi muốn xem liệu tôi có thể khiến Julia chạy một phép tính cứng trên cả bốn lõi CPU của tôi cùng một lúc. Tôi đã giới thiệu Julia với lệnh này;Chủ đề Julia `remotecall` cho kết quả khác nhau

julia -p 4 

Sau đó, tôi đã xác định hàm sau, chỉ với mục đích thực hiện rất nhiều phép tính. Các mod 13 là có để nó không in một số lượng lớn cuối cùng.

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

Sau đó, tôi yêu cầu Julia làm điều này trong bốn quy trình riêng biệt.

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

Khi tôi fetch chỉnh giá trị trong r, tôi nhận được [5, 6, 5, 5]. Tôi đã thử nó nhiều lần, và có; 5, 5, 5, 5, 5, 1, 5, 5, 5, 2, 0, 5, 5, 5, 5, 7. Câu trả lời đúng là 5.

Vì vậy, ... có vấn đề gì?

Thông tin hệ thống;

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

Sử dụng HEAD của nhánh chính của GitHub, tôi không thể lặp lại điều này trên máy tính xách tay lõi kép 32-bit cũ và đáng sợ của tôi. Tất cả các câu trả lời của tôi (lặp lại 30 lần) là 5. – rickhg12hs

+0

Nếu điều này có thể lặp lại, nó chắc chắn có vẻ giống như một lỗi. Bạn có thể muốn mở một vấn đề. – StefanKarpinski

Trả lời

0

báo động sai, tất cả mọi người; hóa ra RAM của tôi bị hỏng.

Các vấn đề liên quan