將兩台機器的資源無縫整合到一個虛擬機器中是否可行?

將兩台機器的資源無縫整合到一個虛擬機器中是否可行?

假設我有一個設計為在單一電腦上運行的普通桌面應用程序,例如視訊編輯應用程式。此類應用程式通常會產生運算要求較高的後台線程,例如視訊渲染。

我想知道將這些繁重的計算線程「卸載」到更強大的機器上,並以對用戶來說無縫的方式進行,在技術上是否可行。使用者的機器將僅運行 UI 線程,而其餘的繁重工作則在功能更強大的遠端機器上處理。我們假設執行緒執行計算所需的資料(在我們的範例中為視訊檔案)在遠端電腦的磁碟上可用。

我知道讓兩個完全不同的處理器上的兩個線程相互通信並不容易,就好像它們在同一台機器上運行一樣 - 但我想知道是什麼根本限制這是,以及是否有針對此用例的任何已知解決方案。

答案1

設計為在單一電腦上執行的「普通」桌面應用程式無法以這種方式拆分其執行緒。

這需要一個帶有編程的電腦間接口的專門構建的應用程式來完成此操作,例如遠端桌面應用程式。

在一般情況下,如果兩台電腦之間沒有專用的高速連接,連接中涉及的延遲將導致螢幕不適合過於動態的視訊應用。

答案2

這非常依賴任務,也取決於您如何無縫定義。

對於某些類型的負載,這種情況已經發生。事實上,您定義的影片編輯任務在某些情況下可以做到這一點 - 該術語是「渲染農場」。

更一般地說,許多類型的「雲端運算」都解決了這個問題。

(這個答案的問題是你如何定義無縫 - 當然有架構 - 主要是軟體架構 - 可以監督並使這種操作無縫 - 但它們需要適度複雜和任務相關的設置。並非所有任務都適合這個模型要么- 特別是在頻寬可能成為問題或任務無法並行的情況下。

相關內容