top | item 25224465

(no title)

skizziepop | 5 years ago

nproc isn't available on some of the BSDs

discuss

order

sigjuice|5 years ago

  $ nproc 
  ksh: nproc: not found
  $ uname -a
  OpenBSD obsd64.example.xyz 6.8 GENERIC.MP#828 arm64
  $ sysctl hw.ncpu                                                               
  hw.ncpu=2

oso2k|5 years ago

Right. So on Mac or other BSDs, you want use a ‘sysctl’.

floatingatoll|5 years ago

On Macs, this "total cores available" strategy might not be a valid approach, since you probably only want to be using the high-performance cores and not also the low-power ones — and the CPU might well overbook all your threads to high-perf to leave room for the OS and other programs, even if you try to do otherwise.

oso2k|5 years ago

Another thought, I don’t know if Alpine Linux or other musl-libc based systems will have ‘nproc’ if, for instance, you’re running containers or other minimal systems.

toast0|5 years ago

cpuset -g on FreeBSD >= 7.1 will tell you what cpus are available to your shell, where a sysctl will only tell you what's on your system. (Lots of good info in the related manual pages)