Có thể kết hợp sức mạnh xử lý của 2 máy tính?


14

Dưới đây là một vài câu hỏi, tôi ước bạn có thể khai sáng cho tôi.

  1. Có thể kết hợp sức mạnh xử lý của 2 máy tính?
  2. Tôi phải làm nó như thế nào?

7
1) Chắc chắn. 2) Với khó khăn rất lớn.
Daniel R Hicks

Câu trả lời:


11

Không minh bạch khi một chương trình đang chạy bằng cách nào đó có thể sử dụng máy thứ hai để thực thi mã, vì chúng tách biệt về mặt logic mà không có cách nào để cpu giao tiếp hoặc truy cập bộ nhớ của nhau.

Điều đó không có nghĩa là bạn không thể kết hợp sức mạnh xử lý:

  1. Phần mềm cụ thể có thể có các thành phần có thể thực thi trên các máy khác, ví dụ như gấp protein, SETI @ home. Chúng có xu hướng chuyên biệt, tức là bạn không thể khởi động Excel và bảo nó sử dụng máy tính khác để tính toán.
  2. Nếu bạn đang thực hiện các tác vụ chuyên sâu của bộ xử lý, bạn có thể sử dụng máy thứ cấp để chạy chúng, ví dụ mã hóa / mã hóa lại luồng video.

Nếu bạn đang tìm cách khai thác máy tính thứ cấp bằng bất kỳ cách nào, việc có thể điều khiển từ xa là rất quan trọng. Hai cách để thực hiện việc này là thông qua một số loại truy cập từ xa (RDP, VNC) hoặc một cách khác như sức mạnh tổng hợp +.


1
Ví dụ: tôi có 4GB RAM trên máy tính xách tay và 4GB trên PC, RDP có cho phép tôi chạy hầu như một progran với 8GB RAM không?
TGamer

5

Một trong những dòng được sử dụng nhiều nhất của tôi - Có và Không!

Có, điều đó là có thể - đối với một số ứng dụng được thiết kế để hoạt động theo cách này. (Thường được gọi là một cụm - Đọc thêm ở đây )

Không, không thể (ít nhất là theo như tôi biết) để tháo hai máy tính ra khỏi kệ, "buộc" chúng lại với nhau và có được bộ nhớ kết hợp, sức mạnh xử lý và mọi thứ khác.


1
@ ~ quack có, và tôi đã nói cho một số ứng dụng nhất định ... Vì câu hỏi được gắn thẻ Windows-7, tôi cho rằng anh ta có nghĩa là một máy tính hàng ngày với bất kỳ chương trình nào trên kệ .... Dù sao - Không yêu cầu cụm Beowulf ứng dụng được viết đặc biệt? ... Tôi không phải là chuyên gia, chưa từng sử dụng một ứng dụng nào, nhưng tôi đã nhanh chóng đọc beowulf.org/overview/index.html (đặc biệt là hai đoạn cuối)
William Hilsum

xin lỗi, đã xóa nhận xét trước đó của tôi sau khi đọc lại và nhận thấy bạn đã liên kết với khái niệm phân cụm. beowulfs được thiết kế xung quanh các thành phần bên ngoài và là một cách để "gắn kết" nhiều hệ thống lại với nhau, nhưng bạn đúng là chúng không thực sự hoạt động cho các chương trình không được thiết kế riêng cho chúng.
quack quixote

4

Nó là rất có thể! Nhưng đánh giá bằng sự đơn giản của câu hỏi của bạn, tôi cho rằng bạn chỉ muốn chạy một chương trình sẽ làm cho máy tính của bạn nhanh gấp đôi, điều đó là không thể.

Bạn cần hiểu rằng khi một chương trình chạy, nó sẽ duy trì trạng thái của nó bằng cách kích hoạt CPU để di chuyển bộ nhớ giữa các thanh ghi HDD, RAM và CPU, cũng như địa chỉ trên các thành phần khác nhau (như thẻ video hoặc card mạng). Vấn đề với việc sử dụng CPU từ một máy tính khác để giúp bạn là nó cần truy cập vào cùng một bộ nhớ. Và việc duy trì hình ảnh phản chiếu của bộ nhớ máy tính của bạn trên một máy tính khác đòi hỏi quá nhiều chi phí đến mức nó dễ dàng đánh bại mục đích cố gắng thêm một máy tính khác để đạt được hiệu suất :)

Nhưng loại những thứ có thể được phân chia giữa nhiều máy tính là kết xuất hình ảnh hoặc một số tính toán toán học có thể hoạt động độc lập.


3

Nếu những gì bạn đang tìm kiếm là một phương pháp kết hợp sức mạnh xử lý của hai PC thành một, thì cách "dễ nhất" là cấu hình cả hai chúng thành máy chủ ảo bằng phần mềm như VMWare ESXi (Được báo trước điều này sẽ yêu cầu thiết bị để có phần cứng tương thích) và tạo một nhóm tài nguyên hoặc cụm và tạo một máy ảo sử dụng tài nguyên của cả hai máy tính. Điều này sẽ không giúp bạn có được tốc độ gấp 2 lần (Bạn sẽ mất tài nguyên do ảo hóa) và là một giải pháp hạn chế do các yêu cầu tương thích có thể có nhưng đó là câu trả lời "chính xác" nhất cho câu hỏi của bạn. Máy ảo sẽ hoạt động như một PC duy nhất với khả năng xử lý của cả hai máy chủ trừ đi chi phí cần thiết để duy trì ảo hóa.


Tôi sợ giao tiếp giữa các máy chủ sẽ là nút cổ chai.
gronostaj

1
Vâng, giao tiếp giữa các máy chủ có thể là một nút cổ chai, đây là một phần của chi phí liên quan. Các mạng không phải gigabit sẽ là thủ phạm chính của việc này, nhưng với tính khả dụng của gigabit rẻ tiền và phổ biến, tôi không cảm thấy như thế này đặc biệt bị phạt. Tuy nhiên, điều đó đúng với tất cả các xử lý phân tán mạng và VM là một kịch bản có thể sử dụng được nhiều hơn với sự phức tạp ít hơn đáng kể so với các Cuộc gọi Thủ tục từ xa và các ứng dụng được viết tùy chỉnh dành riêng cho (dù sao cũng phải là máy tính phân tán mạng).
George Spiceland

2

Tôi đồng ý với các câu trả lời khác:

  • Nếu bạn có một sổ làm việc Excel nhiều trang, khổng lồ và bạn muốn có thể chạy Excel nhanh gấp đôi (cập nhật công thức và kịch bản, chạy macro, v.v.), bạn sẽ không gặp may.
  • Nếu bạn có một ứng dụng tùy chỉnh dễ dàng phân vùng, chẳng hạn như tìm căn bậc hai của mọi số nguyên từ 1 đến 1.000.000, bạn có thể dễ dàng chia vấn đề thành từng mảnh và phân phối chúng.
  • Nếu bạn có một ứng dụng tùy chỉnh như tính toán 1.000.000 chữ số đầu tiên của số pi (pi), bạn có thể làm được, nếu bạn hiểu rõ không gian vấn đề.

Nếu bạn đang nói về việc phát triển phần mềm để chạy trong môi trường phân tán (nhiều máy tính), đây là một số gợi ý:

  • Sử dụng các cuộc gọi thủ tục từ xa (RPC) . Giống như bạn có thể tạo một máy chủ lưu trữ một máy chủ tệp hoặc máy chủ web, RPC cho phép bạn tạo một máy, về cơ bản là máy chủ CPU. Về mặt khái niệm, bạn sẽ có một máy chủ, đó là máy khách RPC và nó sẽ gọi các chức năng thư viện sẽ được thực thi trong suốt trên máy chủ. Ở dạng đơn giản nhất, kiến ​​trúc này sẽ không mang lại cho bạn bất kỳ lợi ích hiệu năng nào, vì chỉ có một CPU sẽ được thực thi bất cứ lúc nào. Tuy nhiên, trong mô hình không đồng bộ, máy khách có thể bắt đầu một quy trình từ xa trên máy chủ và sau đó thực hiện các thao tác khác trong khi máy chủ đang chạy.
  • Sử dụng ngôn ngữ được thiết kế để xử lý song song, chẳng hạn như Hợp nhất song song C (UPC) . Đây là một phần mở rộng của ngôn ngữ C với các phương tiện cho dữ liệu phân tán và thực thi đồng thời. Người giới thiệu:
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.