他们说 i5 7500T 有 4 个内核(因此,在这种情况下是 4 个线程)。例如,当我使用 Python 计算第 100 万个斐波那契数(仅单线程,每个数字都依赖于其前一个)时,需要 5.5 秒。当我同时启动其中 2 个进程时,它们都需要 6.3 秒,而当我启动 3 个或 4 个进程时,需要的时间甚至更长(每个进程 10 多秒)。
这怎么能称为“多核”呢?当我使用具有多个核心的大型服务器时,n
当核心数小于 时,1 到 的处理n
都花费相同的时间,并且 各不相同n
。
答案1
每个核心单独运行速度都很快,但它们都需要访问共享资源,例如缓存和内存。因此,多核工作会增加您可以完成的工作量,但也可能造成瓶颈。
您的数学计算可能受到内存的严重限制,并且已达到内存带宽的极限。
单核运行需要 5.5 秒,而双核运行需要 6.3 秒,这意味着你完成了两倍的工作仅有的比连续完成这项工作要多花 5.5 秒(总共 11 秒),节省了 0.8 秒。你实际上节省了 4.7 秒真实世界时间(11 - 6.3),同时完成工作而不是一个接一个地完成。
多核并不意味着你可以在相同的时间内完美地完成两倍的工作量,但它确实意味着你可以实现比使用仅有的一个核心。
如果现在使用全部 4 个核心时所有进程需要 10 秒才能完成,那么仍然完成速度比在单核上完成四次工作(需要 22 秒)要快。您用不到两倍的时间完成了四倍的工作。