Ubuntu 多线程的实用性

Ubuntu 多线程的实用性

可能重复:
Ubuntu 是否针对多核 CPU 进行了优化?

我正在寻找一台新的笔记本电脑,一台可以安装(和多重启动)Ubuntu 的笔记本电脑。有些笔记本电脑提供多线程处理器,但我想知道拥有这样的核心是否有意义:Ubuntu 操作系统是否支持它,是否有(许多)应用程序支持它?

提前致谢!

答案1

所有笔记本电脑都允许多线程工作。即使没有超线程的英特尔笔记本电脑通常也至少有 2 个 CPU 内核,因此您仍将获得 SMP 支持。不过,许多应用程序不使用线程,因此这些应用程序通常看不到任何好处,或者可能不明显。即使没有它,内核也可以在启动时将进程放在其他内核上,从而使程序运行得更快。

答案2

我最近买了一台 Intel i7 2670QM 笔记本电脑。它有 4 个内核,外加 4 个虚拟内核(8 个内核)。我不得不承认,我对这个处理器并不十分满意。Firefox 通常支持多线程,但大多数程序不支持,因此我通常只使用这个 CPU 最大性能的 15-25%。如果让我重来一次,我可能会选择内核更少、每个内核功率更大的 CPU。幸运的是,随着多核系统越来越流行,更多的软件将变成多线程的,但我们目前还没有做到这一点。

答案3

尽管内核确实负责将核心分配给进程,但可以使用查看并手动设置进程的 CPU 亲和性taskset- 请参阅。但是,应该说这只在非常特殊的情况下使用,例如,在基准测试或故障排除任务中,想要在一个特定核心中运行一个进程。可以使用query taskset for that affinity:man taskset找到进程的 pid ,它将返回类似 的内容。ps -oe pid,argstaskset -p <pid>pid 2027's current affinity mask: 1

要查找可用的处理单元数量,请使用nproc- 请参阅man nproc。如果您需要在单个核心上运行旧应用程序或游戏,则可以使用 启动它taskset -c <core> <app>。(核心从 0 开始)。可以使用 P 开关后跟 n(所需数字)使其他程序(例如 xargs)与并行执行单元一起运行 - 请参阅man xargs

相关内容