核心数和逻辑处理器数有什么区别?

核心数和逻辑处理器数有什么区别?

我一直在用我的电脑上做一些图像处理埃尔达斯想象。具体来说,我正在对影像运行 5x5 中值滤波器。我可以在 Erdas 批处理命令窗口中指定同时发生的进程数。当我指定 16 个同时发生的进程时,我观察到了异常行为,这导致我仔细检查了机器上的处理器数量。我使用以下命令提示符命令来评估处理器的数量:

wmic cpu > cpu.txt

部分结果如下:

Number of Cores: 8 
Number of Logical Processors: 16

在 Erdas 等软件环境中,内核数量与逻辑处理器数量有何不同?想象一下,用户可以指定同时运行的进程数。我正在尝试确定是否应指定 8 个或 16 个同时运行的进程以最大程度地提高效率。

答案1

超线程将使一个物理核心在操作系统中显示为两个。

超线程本质上允许一个核心同时执行两组指令,具体取决于指令的性质。当它首次推出时(早在 2002 年,当时非常流行,超频者和当时的新博主疯狂地争论超线程与真正的多核 - 有些事情永远不会改变),它有点像“双核精简版”。为了使超线程的使用对现有软件和操作系统透明,它们被设计为显示为两个核心,因此内核可以继续使用其现有的调度和负载平衡并利用超线程而无需进行任何更改(当然,后来进行了优化)。这就是为什么它以这种方式开始的原因 - 这样超线程 CPU 就可以成为已经具有多处理器支持的平台上的直接替代品。

无论如何,由于效率取决于应用程序的性质,您可能希望在 8 和 16 处进行基准测试(如果进程不是 CPU 密集型的,而是网络或 IO 密集型的,则基准测试更高)。

答案2

核心数 (8) 表示实际的物理核心数。对于每个实际存在的处理器核心,操作系统会处理两个虚拟或逻辑核心,并在可能的情况下在它们之间共享工作负载。

多处理系统包括多个完整的处理单元,而多线程则旨在通过使用线程级和指令级并行来提高单个核心的利用率。由于这两种技术是互补的,因此它们有时会在具有多个多线程 CPU 的系统和具有多个多线程核心的 CPU 中结合使用。

请参阅维基百科文章超线程多线程

答案3

逻辑 CPU 通常用于描述芯片上的 CPU 总数。8 个核心是芯片上的物理核心。因此,每个 CPU 可以同时处理多个进程,从而为您提供 16 个逻辑处理器。超线程允许一个核心同时完成两个任务。因此,由于每个超线程有 8 个核心,因此您将总共拥有 16 个逻辑处理器。

从根本上讲,核心是真实存在的,即芯片上有 8 个物理核心。而逻辑处理器是芯片上可以进行计算的任何东西。所有核心都是逻辑处理器,但并非所有逻辑处理器都是核心。

相关内容