How do I count the number of processors on an OpenBSD system?
How can I determine the number of CPUs on an OpenBSD system, using either system tools or C code?
The technique I know of to count CPUs on other BSD platforms -- checking /var/run/dmesg.boot
for certain strings, doesn't always seem to work.
More context: Unfortunately, I don't have an OpenBSD system available to play around with. I am trying to address the OpenBSD-specific test failures for a Perl module.
Solution 1:
On OpenBSD you have:
sysctl hw.ncpu
or
sysctl hw.ncpufound
As explained in sysctl(3), ncpu is the number of CPU used by system and ncpufound is the number of CPU found by the system.
By the way, devio.us provides free shell account on OpenBSD servers.
Solution 2:
On FreeBSD, it's
sysctl -n hw.ncpu
and on Darwin
sysctl -n hw.availcpu
So perhaps it's similar? There is a system call, I think, but I'd poke around with the command line first.