gpt4 book ai didi

c++ - 多线程 (openMP) - 有多少并行线程

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:26 25 4
gpt4 key购买 nike

我想知道在8核的硬件上是否可以并发运行超过8个线程。

如果是这样,使用 openMP 并行化 N 个计算,我可以创建大小为 N/8 的 block ,并在每个线程中进一步 fork 成 (N/8)/8 个线程,甚至更多?

嵌套并行化时会发生什么情况?我还有 8 个可用线程用于嵌套并行吗?

谢谢!!

最佳答案

8核在给定的时间点最多只能同时运行8个线程。但是,很大程度上取决于您的线程在做什么。如果他们正在执行 CPU 密集型任务,则不建议生成比内核数量更多的线程(几个可能没问题)。否则过多的上下文切换和缓存未命中将开始降低性能。但是,如果有大量 I/O,线程可能会阻塞很多,不使用 CPU,因此您可以并行运行更多线程。

底线是,您需要在特定情况下、特定环境中衡量性能。

另见 this related thread .

关于c++ - 多线程 (openMP) - 有多少并行线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10178108/

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