omp_set_num_threads例程用于设置硬件线程或软件线程吗?

问题描述 投票:0回答:1

我最近开始研究并行计算以及实现示例,但是我无法弄清楚omp_set_num_threads例程是否为程序设置了硬件线程或软件线程的限制。

parallel-processing openmp openmpi
1个回答
0
投票

Mark的评论是正确的,因为在制造时配置了可用的内核数量。 BIOS设置,管理程序,操作系统或用于启动程序的其他软件层可能会进一步限制它。

出于对程序的“可见”处理,omp_set_num_threads()设置用于执行下一个并行区域的OpenMP线程数。因此,它是软件线程的数量。请注意,您可以使用的内核数量要少于可用的内核数量,这意味着您正在正在订购系统,即,使内核处于空闲状态。您还可以将更大的数字传递给omp_set_num_threads(),并通过订阅系统,即,多个软件线程在同一内核上运行。

通常,除非您想显式地订阅不足或订阅过多,否则无需使用omp_set_num_threads(),因为通常OpenMP会检测程序的可用内核并将其用作默认内核。

© www.soinside.com 2019 - 2024. All rights reserved.