portability: use hw.ncpu