How does scheduler access processor core

General OpenMP discussion

How does scheduler access processor core

Postby anunaya » Wed Dec 03, 2008 9:27 pm

I know that
1.Processor creates routing table of multiple core withing itself to route
the request for various threads on processor cores.
2.There is ACPI in Windows/Linux which gives processor details to teh OS/Scheduler.

My question is:
1.How does scheduler know, which core the thread should run?
2.How does scheduler access the core on which it can dispatch the thread.

Anunaya
anunaya
 

Re: How does scheduler access processor core

Postby ejd » Thu Dec 04, 2008 7:16 am

Most OpenMP implementations use an existing threading library like pthreads. The work in the program is assigned to threads by the OpenMP implementation and the OS scheduler is used to handle the details of which thread is assigned to which processor to run on. This can lead to some inefficiencies, because cache reuse may not be taken into account. On some operating systems, there are calls that the OpenMP implementation can use to say that threads should be run "closer" together or "further" apart. However, I don't believe any implementation has really utilized these calls well (i.e., really understands the data layout well enough to make good use of cache reuse). That is why most OpenMP implementations allow the user some way of binding threads to processors.
ejd
 
Posts: 1025
Joined: Wed Jan 16, 2008 7:21 am


Return to Using OpenMP

Who is online

Users browsing this forum: Yahoo [Bot] and 4 guests