gpt4 book ai didi

multithreading - 单词的关系::'Thread' 和 'Core'

转载 作者:行者123 更新时间:2023-12-02 07:09:52 25 4
gpt4 key购买 nike

程序创建/能够创建的线程数与 CPU 的数量或内核有任何关系/约束吗? thread 这个词与 Cores of CPU 有什么关系吗?

最佳答案

计算机只能并行运行 number_of_cores 个线程。如果一个系统只有一个核心,那么一次只有一个线程运行。多任务处理只是通过在很短的时间内连续运行每个线程来“模拟”。

通常,操作系统会在核心上任意安排线程。例如,一个线程的一个量程可以在一个内核上运行,而同一线程的下一个量程可以在另一个内核上运行。这就是为什么当你运行一个 cpu-heavy 线程时,你会看到两个核心都很忙。这允许单线程进程通过在多个内核之间分配负载来利用多核系统,具体取决于不同的可用性。

不仅如此,操作系统允许线程“锁定”在一个或多个内核上,因此它仅在指定的内核上运行。那叫affinity mask在 Windows 上。今天的多核感知软件可以利用这一点并将某些线程专用于某些内核以优化其工作负载。游戏这样做是为了将 AI 专用于一个核心,例如为另一个核心渲染。为了高效地做到这一点,软件必须知道系统有多少个核心,并根据该数量创建和分配线程。

类似的并行编程框架(例如 OpenMP)对内核进行计数以有效地并行化操作。他们创建与系统内核数量一样多的线程,以获得物理并行性的最佳性能。

我认为这是核心数和线程数之间关系的唯一情况。

关于multithreading - 单词的关系::'Thread' 和 'Core',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7141312/

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