Afinidad de hilos antes de crear hilos

Necesito establecer la afinidad (hilo a núcleo, por ejemplo: 1er hilo a 1er núcleo) antes de crear un hilo. Algo comoKMP_AFFINITY enOpenMP. ¿Es posible?

editar: lo intento de esta manera, pero no funciona: /

void* DoWork(void* args)
{
    int nr = (int)args;
    printf("Wątek: %d, ID: %d, CPU: %d\n", nr,pthread_self(), sched_getcpu());  
}


int main()
{   
    int count = 8;
    pthread_t threads[count];

    pthread_attr_t attr;
    cpu_set_t mask;
    CPU_ZERO(&mask);
    pthread_attr_init(&attr);

    for (int i = 0; i < count ; i++)
         CPU_SET(i, &mask);

    pthread_attr_setaffinity_np(&attr, sizeof(cpu_set_t), &mask);

    for(int i=0; i<count ; i++)
    {

        pthread_create(&threads[i], &attr, DoWork, (void*)i);
    }

    for(int i=0; i<count ; i++)
    {
        pthread_join(threads[i], NULL);
    }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta