gcc OpenMP实现:它如何动态设置线程数?

gcc OpenMP实现:它如何动态设置线程数?,gcc,openmp,Gcc,Openmp,如果设置omp_set_dynamic1,gcc如何确定最佳线程数?OpenMP保留了它的实现定义,但我想知道gcc是如何实现它的 谢谢 GCC使用libgomp运行库实现OpenMP。它是编译器的一部分,其源代码在GCC使用的相同GPL许可证下免费提供。您可以下载GCC的某些点版本并检查libgomp文件夹,也可以浏览。此链接适用于GCC 4.8.3的最新稳定版本。从GCC4.9开始,libgomp实现了OpenMP 4.0特性,这使得源代码更难理解 实现动态线程数的逻辑可以在中的gomp_r

如果设置omp_set_dynamic1,gcc如何确定最佳线程数?OpenMP保留了它的实现定义,但我想知道gcc是如何实现它的


谢谢

GCC使用libgomp运行库实现OpenMP。它是编译器的一部分,其源代码在GCC使用的相同GPL许可证下免费提供。您可以下载GCC的某些点版本并检查libgomp文件夹,也可以浏览。此链接适用于GCC 4.8.3的最新稳定版本。从GCC4.9开始,libgomp实现了OpenMP 4.0特性,这使得源代码更难理解


实现动态线程数的逻辑可以在中的gomp_resolve_num_threads中找到。基本上,它只支持动态设置并行节组合构造的线程数,并尝试将团队中的线程数设置为该构造中不同节的数目。

GCC使用libgomp运行时库实现OpenMP。它是编译器的一部分,其源代码在GCC使用的相同GPL许可证下免费提供。您可以下载GCC的某些点版本并检查libgomp文件夹,也可以浏览。此链接适用于GCC 4.8.3的最新稳定版本。从GCC4.9开始,libgomp实现了OpenMP 4.0特性,这使得源代码更难理解

实现动态线程数的逻辑可以在中的gomp_resolve_num_threads中找到。基本上,它只支持动态设置并行节组合构造的线程数,并尝试将团队中的线程数设置为与构造中的不同节数相等