Can Pthreads Guarantee Exclusive CPU Assignment for Each Thread?

  • Thread starter Thread starter noelloen
  • Start date Start date
  • Tags Tags
    cpu Multiple
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 7K views
noelloen
Messages
1
Reaction score
0
Hi,

First question is:
I want to assign 8 threads to 8 processors (must one to one), when I initialize the thread, does it guarantee that each CPU has one thread?
or there can be some case such that 4 threads on one process and other 4 thread on 4 processors and 3 processors have no threads at all?

Second question is:
For instance, one processor has 4 jobs running, is it possible to shift 2 of them to other processors? using IPC stuffs? or other methods?


For the above questions, is there any reference links that I can visit?
I am new to threading. Thanks ahead to anyone answer my questions.
 
Physics news on Phys.org
In C, using Posix threads, you can use pthread_processor_bind_np() to associate a thread to a specific processor. Using cthreads it's something like cthreads_thread_alloc(..., node) where node is the processor to run on.
If you don't specify, then the thread will probably run on a processor chosen depending on the OS scheduling algorithm i would imagine.