Trong mạng, chúng tôi chia sẻ Tệp (Trình điều khiển đĩa) hoặc Cơ sở dữ liệu. Nhưng làm thế nào chúng ta có thể chia sẻ CPU hoặc RAM qua mạng.
Trong mạng, chúng tôi chia sẻ Tệp (Trình điều khiển đĩa) hoặc Cơ sở dữ liệu. Nhưng làm thế nào chúng ta có thể chia sẻ CPU hoặc RAM qua mạng.
Câu trả lời:
Để thực hiện việc này, (các) chương trình truy cập tài nguyên CPU / RAM phải được thiết kế riêng để truy cập các tài nguyên đã nói. Một hệ thống được thiết lập theo cách này được gọi là một cụm và cách chia sẻ tài nguyên điển hình là với một giao thức gọi là MPI (giao diện truyền thông điệp). Nó là một bản tải xuống miễn phí và sử dụng nó với Linux có thể mang lại một cụm mạnh mẽ (thậm chí có thể là siêu máy tính) với chi phí tối thiểu, nhưng một lần nữa nó lại vô dụng trừ khi bạn có các chương trình được thiết kế đặc biệt để tận dụng MPI. Có một số hướng dẫn cụm tốt ngoài đó, nếu bạn vẫn quan tâm, bạn nên kiểm tra một.
Chỉnh sửa:
Tôi muốn giới thiệu hướng dẫn ở đây nếu bạn muốn thiết lập một cụm. Tôi đã tạo ra một cụm bằng cách làm theo hướng dẫn này khoảng một năm trước và nó hoạt động khá tốt. Hướng dẫn này hơi cũ, vì vậy một số tệp có thể không chính xác nơi hướng dẫn nói (đôi khi các tệp được di chuyển trong các bản phân phối Linux khác nhau / mới hơn) nhưng nếu bạn không quen với Linux thì đó không phải là vấn đề. Hướng dẫn sử dụng phiên bản MPI cũ hơn, nhưng tôi đã sử dụng phiên bản mới nhất và không có vấn đề nào không dễ giải quyết. Tùy thuộc vào những gì bạn đang làm thực sự có thể có một chương trình ngoài đó có thể tận dụng lợi thế của Bộ KH & ĐT. Tôi biết có một số chương trình mã hóa video và crunching lợi dụng MPI có thể được tải xuống từ các nguồn phổ quát.
Bạn có thể chia sẻ RAM bằng đĩa RAM, nhưng trông giống như chia sẻ đĩa thông thường, ngoại trừ việc chúng nằm trong RAM của máy tính khác. Không có cách trực tiếp nào để một máy tính sử dụng RAM của máy tính khác như thể đó là RAM của chính nó, nhưng có một số cách để sử dụng RAM của máy tính khác. Thêm vào đó trong đoạn tiếp theo.
Đối với việc chia sẻ CPU, điều đó là có thể nhưng không có tiêu chuẩn duy nhất nào cho nó. Bạn không thể chỉ chia sẻ nó và để một máy tính khác lấy tài nguyên cần thiết. Thay vào đó, bạn cần phải có các ứng dụng được thiết kế đặc biệt có thể hoạt động trên nhiều máy tính cùng một lúc. Điều này thường được gọi là điện toán phân tán và được sử dụng bởi một số dự án nghiên cứu như SETI @ Home, Einstein @ Home, Climateprediction.net và nhiều dự án khác.
Về cơ bản các chương trình hoạt động theo cách có một máy chủ trung tâm phân phối công việc cần thực hiện. Máy tính trên mạng tải các đơn vị công việc từ máy tính trung tâm và xử lý chúng. Sau đó, máy tính trung tâm nhận kết quả từ khách hàng và hợp nhất chúng thành một kết quả gắn kết. Bằng cách này, máy tính "chia sẻ" tài nguyên CPU và RAM qua mạng. Nhược điểm của điều này là các chương trình cần phải được thực hiện theo cách để hoạt động qua mạng và ngay bây giờ máy tính phân tán không đủ phổ biến trong các sử dụng phổ biến cho máy tính nên chỉ có một số ít chương trình chuyên dụng hỗ trợ. Mặt khác, nó thường được sử dụng cho các mục đích khoa học vì rẻ hơn khi có được số lượng lớn máy tính cá nhân hoặc sân chơi 3 so với việc truy cập vào máy tính lớn.
Bạn đã rơi vào một vấn đề XY , bạn không nên hỏi "làm thế nào tôi có thể chia sẻ máy tính cpu và ram accros" nhưng "làm thế nào tôi có thể sử dụng nhiều máy tính để làm cho bản kết xuất của tôi sử dụng ZZZZZ nhanh hơn?"
Nó phụ thuộc rất nhiều vào phần mềm bạn đang sử dụng và nội dung bạn đang hiển thị (bạn đang chuyển mã video hay bạn đang kết xuất mô hình / video 3D?).
Để chọn một vài ví dụ, phần mềm 3D miễn phí Blender hỗ trợ kết xuất phân tán , nơi bạn có thể có nhiều máy tính cùng hoạt động để tạo một đầu ra. Nếu bạn đang thực hiện kết xuất video, một số người nhanh chóng tìm thấy dự án nguồn mở MediaEncodingCluster cho phép bạn kết xuất các tệp video và âm thanh bằng nhiều máy tính.
Hệ điều hành duy nhất tôi biết cho phép chia sẻ CPU / RAM là plan9. Ở đó bạn có thể xuất / gắn kết hầu hết mọi thứ. Điều này không có nghĩa là màn trình diễn là tốt, tất nhiên.
Nó sẽ là một tính năng tốt để chia sẻ cpu / ram cho các tác vụ qua mạng. Hiện tại chúng tôi vẫn bị ràng buộc một chút các khái niệm cũ để giữ các chương trình trong hộp nơi xảy ra sự cố, nhưng chúng tôi có thể cho phép nhiều cpus trên cùng một máy truy cập vào cùng một đoạn mã. Chúng tôi có một phương pháp (ít nhất) làm một cái gì đó như thế này. java trên các trang web hoạt động bằng cách sử dụng cả máy chủ và máy khách, nhưng nó vẫn bị khóa theo cách máy chủ-máy khách để thực hiện mọi việc (nơi máy chủ chứa hầu hết dữ liệu). Những gì chúng ta cần để có thể phân công nhiệm vụ cho các máy theo cách tương tự như khi chúng ta có nhiều cpus (ngoại trừ máy hoạt động cần phải có snip chương trình và snip dữ liệu được giao. nếu bản thân các nhiệm vụ không có tính chất đơn giản và có thể dẫn đến các nút thắt mới hình thành. Tôi thích ý tưởng đó '