用于获取 C++ 中总核心数量的跨平台代码片段是什么?

发布于 12-01 18:27 字数 351 浏览 0 评论 0原文

可能的重复:
以编程方式检测物理处理器/核心的数量,或者如果超线程在 Windows、Mac 和 Linux 上处于活动状态

我想知道是否有任何跨平台(基于 std 或 boost 甚至 c)方法以跨平台方式获取内核总数? (适用于 Linux、Mac OS X 和 Windows)

Possible Duplicate:
Programatically detect number of physical processors/cores or if hyper-threading is active on Windows, Mac and Linux

I wonder if there is any crossplatform (std or boost based or even c) way to get totall number of cores in a crossplatform manner? (for linux Mac Os X and Windows)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

花想c2024-12-08 18:27:05

您可以使用 OpenMP 的 omp_get_max_threads () 函数。对于 g++,使用 -fopenmp 指令启用 OpenMP。对于 MS Visual Studio,请在项目属性 - 配置属性 - C/C++ - 语言中启用它。请注意,如果使用 omp_set_num_threads () 来限制 OpenMP 并行区域的线程数,则 omp_get_max_threads () 返回的硬件核心/线程数可能会少于实际数量。允许使用(不是程序启动时的问题)。您还应该注意,对于超线程 CPU,omp_get_max_threads () 不会返回硬件 CPU 核心的数量,而是返回 CPU 支持的硬件线程的数量(并且超线程提供的附加线程不会返回)相当削减它)。

You could use OpenMP's omp_get_max_threads () function. For g++, enable OpenMP with the -fopenmp directive. For MS Visual Studio enable it in project properties - configuration properties - C/C++ - language. Be aware that omp_get_max_threads () may return less than the actual number of hardware cores/threads if omp_set_num_threads () has been used to limit the number of threads an OpenMP parallel region is allowed to use (not an issue at program start). You should also be aware that for hyper threading CPUs omp_get_max_threads () doesn't return the number of hardware CPU cores, but of hardware threads the CPU supports (and the additional threads provided by hyper threading don't quite cut it).

冷心人i2024-12-08 18:27:05

哦,您可能需要开始组装...

http:// /code.google.com/p/geekinfo/source/browse/trunk/

继续提升

boost::thread::hardware_concurrency(); // returns number of cores/HT/procs

Oooh, you'll probably have to get down to assembly...

http://code.google.com/p/geekinfo/source/browse/trunk/

Or go boost:

boost::thread::hardware_concurrency(); // returns number of cores/HT/procs
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文