For initialization of thread pools to a sensible size it would be useful to know the number of processors/cores/... the current machine has.
The following link has quite a bit of info for various platforms:
http://stackoverflow.com/questions/150355/programmatically-find-the-number-of-cores-on-a-machine
The C-level API might be best to have in Tcl itself, the Tcl command however should be in the Thread package, IMHO.
Incomplete implementation of the C-level function
Now a proper TIP.
Updated implementation.
On modern BSDs, you can get the number of CPUs used by the kernel with
int numCPU;
int mib[2];
size_t len;
/* set the mib for hw.ncpu */
mib[0] = CTL_HW;
mib[1] = HW_NCPU;
/* get the number of CPUs from the system */
sysctl(mib, 2, &numCPU, &len, NULL, 0);
the #includes needed are
#include <sys/types.h>
#include <sys/sysctl.h>
for {Free|Dragonfly}BSD and
#include <sys/param.h>
#include <sys/sysctl.h>
For {Open|Net}BSD