将两台机器的资源无缝合并到一台虚拟机中是否可行?

将两台机器的资源无缝合并到一台虚拟机中是否可行?

假设我有一个普通的桌面应用程序,设计为在单台机器上运行,例如视频编辑应用程序。此类应用程序通常会产生计算要求高的后台线程,例如视频渲染。

我想知道从技术上来说,将这些繁重的计算线程“卸载”到更强大的机器上,并以对用户无缝的方式进行操作是否可行。用户的机器将只运行 UI 线程,而其余繁重的工作则由更强大的远程机器处理。我们假设线程执行计算所需的数据(在我们的示例中为视频文件)在远程机器的磁盘上可用。

我知道让两个完全不同的处理器上的两个线程像在同一台机器上运行一样互相通信并不容易 - 但我想知道根本限制这里是,是否有任何已知的针对此用例的解决方案。

答案1

设计为在单台机器上运行的“普通”桌面应用程序无法以这种方式拆分其线程。

这需要一个专门构建的应用程序和已编程的计算机间接口来实现,例如远程桌面应用程序。

一般情况下,如果两台计算机之间没有专用的高速连接,连接中的延迟会导致屏幕不适合过于动态的视频应用。

答案2

这非常依赖于任务,并且还取决于您如何无缝地定义。

对于某些类型的负载,这种情况已经发生。事实上,在某些情况下,您定义的视频编辑任务就可以做到这一点 - 术语为“渲染农场”。

更一般地说,许多类型的“云计算”解决了这个问题。

(这个答案的问题在于如何定义无缝 - 当然有架构 - 主要是软件架构 - 可以监督并使这种操作无缝 - 但它们需要中等复杂度和任务相关的设置。并非所有任务都适合这种模型 - 特别是在带宽可能成为问题或任务无法并行化的情况下。)

相关内容