Come puoi sapere, dalla riga di comando, quanti core sono sul computer quando esegui Mac OS X? Su Linux, utilizzo:
x=$(awk '/^processor/ {++n} END {print n+1}' /proc/cpuinfo)
Non è perfetto, ma è vicino. Questo è destinato a essere alimentato make
, motivo per cui dà un risultato 1 superiore al numero effettivo. E so che il codice sopra può essere scritto più densamente in Perl o può essere scritto usando grep, wc e cut, ma ho deciso che quanto sopra era un buon compromesso tra concisione e leggibilità.
MODIFICA MOLTO TARDA: solo per chiarire: sto chiedendo quanti core logici sono disponibili, perché questo corrisponde a quanti lavori simultanei voglio make
spawnare. La risposta di jkp, ulteriormente perfezionata da Chris Lloyd, era esattamente ciò di cui avevo bisogno. YMMV.
nproc
comando.
grep ^processor /proc/cpuinfo | wc -l