我知道sysconf(_SC_NPROCESSORS_ONLN)
会给我逻辑处理器的数量。但是如何获得物理处理器的数量呢?
答案 0 :(得分:3)
@Havoc P: 离线cpus未显示在/ proc / cpuinfo。
CPU拓扑由/ sys / devices / system / cpu / cpu * / topology / *
描述答案 1 :(得分:1)
你可以解析/ proc / cpuinfo并计算不同“物理id:”行的数量。有点讨厌,但我不知道是否有更好的选择。如果您正在使用GLib或其他具有正则表达式支持的库,那么它会更容易。或者你可以popen()一个命令行,如果你感觉真的很hacky。示例命令行位于:http://www.brandonhutchinson.com/Understanding_proc_cpuinfo.html
答案 2 :(得分:1)
我认为获取此信息的最佳方法是使用hwloc:http://www.open-mpi.org/projects/hwloc/。
它们提供了大量用户工具,可以让您了解系统的cpu拓扑,但它们还提供了一个可以在C中使用的库:http://www.open-mpi.org/projects/hwloc/doc/v1.1.1/#interface
答案 3 :(得分:0)
或许this answer类似的问题确实有帮助。关于代码不正确的评论,但它可能是一个很好的起点。