Load balancing for multicore cpu's

Is there a way to modify the load sharing mechanism in a multicore cpu.
For example, i observed that in a quad core system that was pretty much idle i submitted 4 large jobs, the jobs were running fine but where only running on 3 cores instead of 4 and the 4th core was at 0% utilization.
Can we develop a driver to modify the way in which jobs are distributed for windows OS over a multicore cpu?

Nope, not extensible

d

debt from my phone


From: xxxxx@gmail.com
Sent: 11/18/2012 10:44 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Load balancing for multicore cpu’s

Is there a way to modify the load sharing mechanism in a multicore cpu.
For example, i observed that in a quad core system that was pretty much idle i submitted 4 large jobs, the jobs were running fine but where only running on 3 cores instead of 4 and the 4th core was at 0% utilization.
Can we develop a driver to modify the way in which jobs are distributed for windows OS over a multicore cpu?


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

> Is there a way to modify the load sharing mechanism in a multicore cpu.

For example, i observed that in a quad core system that was pretty much
idle i submitted 4 large jobs, the jobs were running fine but where only
running on 3 cores instead of 4 and the 4th core was at 0% utilization.
Can we develop a driver to modify the way in which jobs are distributed
for windows OS over a multicore cpu?

A little too much ancient mainframe punced-card jargon here. So i’m not
sure what you are talking about. In Windows, one does not “submit”
“jobs”, one “runs” “processes”. You have not said what version of the OS
you are running, nor have you said anything about the hardware platform.
You have not even properly described the nature of the processes; if by
“large” you mean “large executable image” this is mostly irrelevant. If
by “large” you mean “heavy use of the process address space” this is
something else. And if by “large” you mean “compute intensive”, this is
yet something else. And it could also mean “processes with a large number
of threads” and that is yet something else. And it may be that because
the threads block, for example, on I/O, that the threads are idle enough
that only three cores are necessary to maximize throughput.

So you have asked a question using ancient mainframe jargon, without
defining any of the parameters of the processes, running on some unknown
quad-core machine, under some unspecified version of the operating system,
and you appear to be concerned because it appears that “load balancing”
can be adequately done using only three cores. You are then asking how to
rewrite the system so it satisfies a desire to see equal utilization of
all the cores, even though it appears that the OS (whatever version it is)
believes that only three cores are required. Where is it stated that “load
balancing” requires all cores to participate equally in the computations?
It might well be that you only have enough computing to absorb three
cores, so the question arises as to what good distributing this
unspecified behavior across four cores will accomplish.

You have not even begun to describe a problem, so how is it that you know
how the implementation of the scheduler must be changed to solve a vague
problem? I can, and have, spent a month just figuring out how to
determine that nature of the problem and what questions I must ask of
performance tools to determine what the problem is. We spent another
couple months analyzing the data and refining our questions, followed by
another three months of rewriting parts of our multiprocessor OS, running
the performance tools, and determining the success or failure of our
rewrites. But your question sounds like you looked at Task Manager and
immediately knew that you had to rewrite the scheduler. You should not be
surprised if those of us who have actually had to worry about these
problems find this approach rather simplistic, naive, and, frankly, silly.
joe


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer