Muy rápidamente…
El número de nucleos de CPU se puede ver a través del directorio “/sys/devices/system/cpu/”, así que aprovechando que en Poesia binaria hay un post sobre como leer directorios en C… aquí está un código que lee, la idea sería usar la función para usar el número correcto de hilos/procesos [getcpus.c]
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#define CPU_PATH "/sys/devices/system/cpu/"
int getCores(){
DIR *dir;
struct dirent* it;
int count = 0;
int i, isCpu;
dir = opendir(CPU_PATH);
if (dir == NULL){
exit(1);
}
while((it = readdir(dir)) != NULL){
if (strncmp(it->d_name, "cpu", 3) == 0){
isCpu = 1;
for(i = 3; it->d_name[i] != '\0'; i++){
if ((it->d_name[i] < '0')||(it->d_name[i] > '9')){
isCpu = 0;
break;
}
}
count += isCpu;
}
}
closedir(dir);
return count;
}
int main(int argc, char **argv){
printf("Encontrado(s): %i nucleo(s)\n", getCores());
return 0;
}
Hasta la próxima

English
[...] (14/10/2011): En el blog código para llevar encontramos un ejemplo de cómo utilizar este código para encontrar el número de núcleos de [...]
¡Muy interesante! Te puse un link al post.
Gracias :)