![运行第二台计算机作为额外的处理器](https://linux22.com/image/1382266/%E8%BF%90%E8%A1%8C%E7%AC%AC%E4%BA%8C%E5%8F%B0%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%9C%E4%B8%BA%E9%A2%9D%E5%A4%96%E7%9A%84%E5%A4%84%E7%90%86%E5%99%A8.png)
我有一台笔记本电脑,液晶显示屏坏了,但使用外接显示器时一切正常。我想知道是否可以将它作为额外的处理器连接到我的主 PC(主 PC 已经很旧了,它只有单核处理器),如果可以,该怎么做?我目前用网线将它们连接起来,这样我就可以访问笔记本电脑的硬盘,但我想用它来给我的 PC 增加一点功率。我的 PC 和笔记本电脑都有 2 GB 的内存,运行的是 Windows Vista SP2
答案1
有不同的方法可以获得更强的并行处理能力。
一种是在同一台计算机中安装第二个处理器。另一种方法是安装两台计算机并将它们连接起来。这两种方法都可以,但这两种方法的作用取决于您使用的程序。
一些基础知识:在 Windows 上,您可以拥有多个进程。每个进程可以有多个线程。Windows 调度程序决定哪个线程(不是进程!)在哪个 CPU 上运行以及何时运行。此调度内置于 Windows,它是一项核心功能。
如果您的程序需要并行执行两件事,例如显示响应式 GUI 并进行一些后台计算,那么您通常会编写两个线程。如果您只有一个 CPU,那么线程将按顺序运行。如果您有两个 CPU,那么线程将并行运行。如果您有四个 CPU,那么线程将在两个 CPU 上运行,并且您还有两个 CPU 可供其他线程(来自其他进程)使用。
所有这些都只在一台计算机上完成。Windows 只在同一台计算机上调度线程。因此,如果你想加快图像处理程序的速度,你需要在计算机中安装更多 CPU。
有可用的并行化系统,它们由不同的计算机组成。这些系统附带一个框架,可为您提供进行多计算机并行化所需的额外功能。一台计算机中的两个 CPU 共享相同的内存,因此您可以轻松地将线程从 CPU1 移动到 CPU2,反之亦然。但是不同计算机中的两个 CPU 无法直接访问相同的内存,因此需要一种方法将程序及其数据从一台计算机移动到另一台计算机。这是通过使用特殊框架来实现的。
有很多 Windows 应用程序只支持一个线程,也有很多 Windows 应用程序是多线程的,但我还没有看到支持在不同机器上并行运行的标准应用程序。上次我在现实生活中看到这种情况是在大学的并行编程课程中 :)。简而言之,理论上你可以使用第二台计算机来加速你的任务,但实际上你无法这样做。如果你想使用额外的速度,那么你将需要额外的程序中的额外任务,并在另一台计算机上手动运行这些程序。或者你需要编写自己的程序,将计算分布到多台计算机上。