On Tue, Nov 27, 2018 at 12:10:27AM +0100, Brice Goglin via cfarm-users wrote: > Instead of hardwiring Linux-specific things, many projects now just use > hwloc [1] to get such kind of topology information in a portable way > (that's what I use cfarm for). On the command-line, you'd just do > "hwloc-calc -N core all" to get the number of cores, but there's also a > C API to do that.
Cool stuff :-) gcc110 (a power7, 2 packages, 16 cores, 64 threads): $ hwloc-ls -s --no-io depth 0: 1 Machine (type #1) depth 1: 2 NUMANode (type #2) depth 2: 16 Package (type #3) depth 3: 16 L3Cache (type #4) depth 4: 16 L2Cache (type #4) depth 5: 16 L1dCache (type #4) depth 6: 16 L1iCache (type #4) depth 7: 16 Core (type #5) depth 8: 64 PU (type #6) gcc112 (a power8, 2 DCMs (i.e. 2 packages, 4 dies), 20 cores, 160 threads): $ hwloc-ls -s --no-io depth 0: 1 Machine (type #1) depth 1: 2 Group0 (type #7) depth 2: 4 NUMANode (type #2) depth 3: 4 Package (type #3) depth 4: 20 L3Cache (type #4) depth 5: 20 L2Cache (type #4) depth 6: 20 L1dCache (type #4) depth 7: 20 L1iCache (type #4) depth 8: 20 Core (type #5) depth 9: 160 PU (type #6) gcc135 (a power9, 2 packages, 32 cores, 128 threads): $ hwloc-ls -s --no-io depth 0: 1 Machine (type #1) depth 1: 2 NUMANode (type #2) depth 2: 2 Package (type #3) depth 3: 16 L3Cache (type #4) depth 4: 16 L2Cache (type #4) depth 5: 32 L1dCache (type #4) depth 6: 32 L1iCache (type #4) depth 7: 32 Core (type #5) depth 8: 128 PU (type #6) so it gets p7 packages wrong, and it doesn't understand p8 DCMs. The rest is fine, and pretty etc. :-) Segher _______________________________________________ cfarm-users mailing list cfarm-users@lists.tetaneutral.net https://lists.tetaneutral.net/listinfo/cfarm-users