Có rất ít thông tin được cung cấp, vì vậy câu trả lời này có thể không hữu ích 100%.
Vấn đề đầu tiên luôn xem xét là cấp phép trên máy từ xa. Nếu một số hạt nhân khởi động, nhưng một số khác thì không, có thể bạn đã hết giấy phép cho nhân trên máy đó. Phần còn lại của bài đăng này sẽ cho rằng việc cấp phép không phải là vấn đề.
kết nối Phương pháp
Giao diện hạt nhân từ xa trong Mathematica theo mặc định giả định rsh giao thức, mà không phải là sự lựa chọn phù hợp với nhiều môi trường, vì rsh không phải là một giao thức rất an toàn.
Tùy chọn khác là ssh, được hỗ trợ rộng rãi hơn nhiều. Có rất nhiều khách hàng ssh nhưng tôi sẽ tập trung vào một khách hàng đi kèm với Mathematica, cụ thể là WolframSSH.jar. Ứng dụng này dựa trên java, có lợi ích bổ sung khi làm việc giống nhau trên tất cả các nền tảng được hỗ trợ bởi Mathematica (Mac, Window và Linux).
Để tránh phải nhập mật khẩu cho mỗi kết nối hạt nhân, thuận tiện để tạo cặp khóa riêng/khóa công khai. Khóa riêng nằm trên máy tính của bạn và khóa công khai cần được đặt trên máy tính từ xa (thường nằm trong thư mục .ssh của thư mục chính ở xa).
Để tạo một private/public key là bạn có thể sử dụng các tập tin WolframSSHKeyGen.jar, như vậy:
java -jar c:\path\to\mathematica\SystemFiles\Java\WolframSSHKeyGen.jar
và làm theo các hướng dẫn trên hộp thoại mà đi lên. Khi hoàn tất, sao chép khóa công khai vào.thư mục ssh trên máy từ xa. Trong trường hợp của tôi, tôi gọi các phím kernel_key
và kernel_key.pub
được tự động đặt tên theo cách đó.
Bây giờ bạn có thể kiểm tra kết nối từ một dòng lệnh, như vậy (sử dụng lệnh ls
trên máy từ xa):
java -jar c:\path\to\mathematica\SystemFiles\Java\WolframSSH.jar --keyfile kernel_key [email protected] ls
Nếu công trình này, bạn sẽ có thể kết thúc ở phía bên Mathematica của nhiều thứ.
Kernel từ xa kết nối
Để thực hiện một kết nối bạn cần cài đặt sau, tên của máy từ xa:
machine = "machine.example.com";
Tên đăng nhập, thường $ UserName:
user = $UserName;
Vị trí nhị phân ssh:
ssh = FileNameJoin[{$InstallationDirectory, "SystemFiles", "Java", "WolframSSH.jar"}];
Các khóa riêng như mô tả ở trên:
privatekey = "c:\\users\\arnoudb\\kernel_key";
Lệnh khởi động cho các hạt nhân:
math = "math -mathlink -linkmode Connect `4` -linkname `2` -subkernel -noinit >& /dev/null &";
Một chức năng cấu hình để đưa mọi thứ với nhau:
ConfigureKernel[machine_, user_, ssh_, privatekey_, math_, number_] :=
SubKernels`RemoteKernels`RemoteMachine[
machine,
"java -jar \"" <> ssh <> "\" --keyfile \"" <> privatekey <> "\" " <> user <> "@" <> machine <> " \"" <> math <> "\"", number]
này sử dụng chức năng cấu hình và định nghĩa nó để sử dụng 4 hạt nhân từ xa:
remote = ConfigureKernel[machine, user, ssh, privatekey, math, 4]
này sẽ khởi chạy hạt nhân:
LaunchKernels[remote]
Lệnh này thẩm tra nếu các hạt nhân đều được kết nối và điều khiển từ xa:
ParallelEvaluate[$MachineName]
BTW, điều này xảy ra với Mathematica 8, được sử dụng để làm việc với Mathematica 7 – Ivan
Có ai đã xác nhận hoặc nhân rộng vấn đề này không? –
Tôi có thể xác nhận điều này không hoạt động. Tôi đã thử kết nối với hạt nhân địa phương của riêng tôi thông qua giao diện hạt nhân từ xa trên Mathematica 8.0.1, và nó không thành công với thông báo lỗi tương tự. –