可以使单线程程序使用多核吗?

Chr*_*ris 14 cpu multi-core

标题说明了一切:有没有办法让设计为使用单个 CPU 内核的旧程序使用多个 CPU 内核?

bwD*_*aco 17

不幸的是,不能强制为单个 CPU 编写的遗留程序使用多个 CPU 内核。使用多个 CPU 内核需要多个线程,这些线程需要相互通信,同时确保不发生竞争条件和其他问题。旧的应用程序不能使用多于 CPU 的内核,除非它被重写以这样做,并且只有在应用程序的性质允许它被并行化的情况下。

  • 还值得注意的是,某些应用程序根本无法重写以考虑多核。这主要取决于过程的可并行性。不可平行过程的一个简单例子是人类繁殖:一个女人可以在 9 个月内生一个孩​​子。9个女人9个月可以生9个孩子,但是你不能用9个女人一个月生一个孩子。 (19认同)
  • 原则上,可以编写一个程序来分析另一个程序并尝试对其进行并行化。也就是说,即使是这个问题的非常有限的“简单”版本也已经产生了博士学位。过去几代人的论文和进展缓慢。完整的问题很可能是人工智能完成的。 (2认同)

小智 13

你的目标是什么?性能提升?遗憾的是,设计为仅使用 1 个内核的应用程序将无法使用更多内核。这就是“多线程”应用程序的全部内容。