gpt4 book ai didi

c - 了解多核 SMP 系统

转载 作者:可可西里 更新时间:2023-11-01 11:50:14 27 4
gpt4 key购买 nike

<分区>

我正在尝试了解多核 系统如何工作以及如何为具有多核 的系统编写高效程序。我知道这是一个非常难的话题,但我对最快的解决方案非常感兴趣。

首先,我试图了解线程是如何工作的。很明显,在大多数情况下,多线程可以显着提高性能。根据this页面,这是多线程的工作方式:

enter image description here

但为什么在 N 线程之间切换比一个接一个地运行 N 线程更快?线程如何在只有一个 CPU 的系统上工作?

接下来,什么是点或多核编程?我认为重点是在内核之间拆分线程并在它们之间拆分任务?但是如何在 4 个 CPU 的系统上平均拆分 8 个线程?

我必须使用 processor affinity 吗? (cpu_affinity) 在 CPU 之间拆分线程/进程?我可以在具有 4 个 CPU 的系统上使用 pthread_create 创建 4 个线程以在每个 CPU 上运行每个线程吗?

如何 hyper-threading有帮助吗?我们如何使用 CPU 缓存 为多核系统编程?

为什么像 MySQL 这样的大型旧项目很难充分利用多 CPU 系统的优势?

我对这个问题的理论感兴趣,也对 Linux 系统(使用 C)的实际解决方案/示例/项目/书籍/文章感兴趣。

我知道这是一个越来越重要的话题,我希望不止我一个人感兴趣。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com