C
cameo
Is windows designed to really take advantage of multi-core processors or
we are just led to believe it?
we are just led to believe it?
I'm wondering the same. I can at least say that it recognises my 4 CPUscameo said:Is windows designed to really take advantage of multi-core processors or
we are just led to believe it?
Yes. It's been doing that, since Win2K. (Maybe even WinNT, but Icameo said:Is windows designed to really take advantage of multi-core processors or
we are just led to believe it?
How interesting!Paul said:Yes. It's been doing that, since Win2K. (Maybe even WinNT, but I
don't have that on any home machine.)
I don't think my copy of Win98, recognizes the second
core on my Core2 processor.
And the Win2K license, prevents "too many cores" from being
recognized (my desktop copy, is limited to two cores, so only
half a Q6600 would be recognized). The first OS with a "decent"
licensing scheme, was WinXP. The WinXP license was socket based,
rather than being based on core count. So if you had an
eight core processor, it would be accepted and fully used
on WinXP Home or Pro. Versus on my old Win2K desktop copy,
only two of the eight cores would work.
There is still an upper bound on cores that can be
licensed, but the odds of you running into that
limitation are slim. To see what that limit is,
go to Task Manager, right-click a process and
select "Set Affinity". There, you can see WinXP has
a limit of 32 tick boxes for selecting which cores
are candidates for running a program. The "Affinity"
capability, is how you prevent a multi-threaded program
from "hogging" the whole CPU. In this example of
setting affinity, the program is only allowed to run
on Core0. You can prevent programs from "bumping heads",
by segregating them this way.
http://www.lanpartyguide.com/images/setaffinity.jpg
I generally use "Set Affinity", when programs are
poorly written and they won't behave themselves. If
the machine is no longer responsive to keyboard input say,
then it's time for a bit of set affinity work.
Paul
Yes. It's been doing that, since Win2K. (Maybe even WinNT, but IIs windows designed to really take advantage of multi-core processors or
we are just led to believe it?
Yes, Windows has been multi-core capable at least since Windows NT,Is windows designed to really take advantage of multi-core processors or
we are just led to believe it?
I don't think that there is all that much that Set Affinity can fix inThere is still an upper bound on cores that can be
licensed, but the odds of you running into that
limitation are slim. To see what that limit is,
go to Task Manager, right-click a process and
select "Set Affinity". There, you can see WinXP has
a limit of 32 tick boxes for selecting which cores
are candidates for running a program. The "Affinity"
capability, is how you prevent a multi-threaded program
from "hogging" the whole CPU. In this example of
setting affinity, the program is only allowed to run
on Core0. You can prevent programs from "bumping heads",
by segregating them this way.
http://www.lanpartyguide.com/images/setaffinity.jpg
I generally use "Set Affinity", when programs are
poorly written and they won't behave themselves. If
the machine is no longer responsive to keyboard input say,
then it's time for a bit of set affinity work.
The point is, you can experiment with Set Affinity, as you see fit.Yousuf said:I don't think that there is all that much that Set Affinity can fix in
some of these cases where the program is unresponsive. The reason that
the program is unresponsive is oftentimes, it's just waiting on i/o data
to come in from the hard disks or network for example. No matter how
multithreaded a program is, if it's waiting on its weakest link, then
it's going to be getting stuck, and often times the weakest link isn't
its processor. The processor can't really make a peripheral hurry up all
that much.
Yousuf Khan
These's a desktop gadget for Win7 I have thatI'm wondering the same. I can at least say that it recognises my 4 CPUs
in Task Manager, because I've seen them there. But then it must use
resources to monitor them; so maybe that's it - it actually wastes
resources!
What would be nice would be some program to produce usage statistics
over a given period of time. That should settle the issue.
Anybody know of one?
Ed
That won't tell you if any *one* application is using more than oneThese's a desktop gadget for Win7 I have that
shows all my 12 cores in the form of a small set
of bars. According to this the cores are used
off & on all the time.
Yes it does. But I get the same info from theThat won't tell you if any *one* application is using more than one
core.
How does it do that?Yes it does.
But a good scheduler should be able to do that without the user'sThe point is, you can experiment with Set Affinity, as you see fit.
I don't think I've run into a situation to date, where I could not
undo a Set Affinity change, after I applied it.
For example, if I had a quad core processor, I wanted to run
a video transcode in the background, and I wanted to play
a first person shooter (FPS) game in the foreground, I could
assign two cores to each of those processes. And by using
that kind of "fire wall", the FPS game would feel as
snappy as if the video transcode wasn't running.
Naturally, YMMV.
Paul
Computers confuse me; however the gadget is calledHow does it do that?
OK, reading back over the thread, I think I misinterpreted what you wereComputers confuse me; however the gadget is called
"All CPU Meter" and is installed from the "Gadget
Gallery" by clicking the desktop.
That particular gadget can be misleading, too. It tells me that bothWhat I was saying is this: All these CPU usage gadgets tell you is the
usage of each core, not which application is using which cores.
You'd need to get deeper into the OS kernel code than MS will easily letTherefore they don't (can't!) tell you how many cores a *particular* app
is using.
Gkrellm is worth a look.I'm wondering the same. I can at least say that it recognises my 4 CPUs
in Task Manager, because I've seen them there. But then it must use
resources to monitor them; so maybe that's it - it actually wastes
resources!
What would be nice would be some program to produce usage statistics
over a given period of time. That should settle the issue.
Anybody know of one?
Ed
That's a pretty nice package of system-monitoring tools.Darklight said:Gkrellm is worth a look.
For some background, you can try this doc. It reviewsEd said:That's a pretty nice package of system-monitoring tools.
It shows all cores in use most of the time. And the graph display helps,
but I can't find anything in it to do these;
1. Show which progs are using which cores.
2. Save a log of usage statistics.
It's a bit better in display than both the All CPU Monitor gadget, and
the Task Manager.
I started it, ran a chkdsk on C, and CPU 0 got very active while the
others were jumping around a bit. But it's guesswork as to whether
chkdsk was using more than one.
Ed
There's a column heading in Task Manager Processes for "Threads". YouPaul said:For some background, you can try this doc. It reviews
various approaches to measuring what is going on. But the
tools are likely intended for developers, which is why they
"zoom in", far too closely.
http://demandtech.com/wp-content/uploads/2012/04/Measuring-Processor-Utilization-in-Windows.pdf
I couldn't figure out why that person wrote the paper, but it's still
interesting as a (relatively long) review of the topic.
*******
Your selection of CHKDSK, couldn't be worse I say that,
because modern CHKDSK is just about the most ill-behaved
system utility ever written.
1) It should be I/O bound. It should be constantly asking for
disk. The evaluation of what it reads, shouldn't take that
much time. I have a hard time believing it could be CPU bound.
What would it be doing, with 3 billion cycles in a second ?
2) The developers, for whatever reason, decided that it was OK
to use all of system memory as a file cache. (And I'm not
talking about using the existing system file cache either - they
just grab memory for themselves and do their own.) I managed to
use all system memory, running CHKDSK, on my Windows 7 laptop.
People with 16GB machines, have reported CHKDSK using 15GB
of system memory. When the system is under memory pressure,
it starts to page out, about 100 page events per second. So
it's not even like the application was engineered to use
"easily available" memory. It actually causes other applications
to start paging out, once it gets down to the last GB of
available RAM.
So it's disk intensive, and could be I/O busy on two disks at
the same time. The system partition, due to paging. And the
partition under test, due to trying to read everything.
And, as far as I know, this is not even the flavor of CHKDSK
run, where it reads every sector. This is still CHKDSK running
with purely structural checks.
I would be very surprised if it can keep a core busy, due to
the pounding on the disk. Imaging running CHKDSK on your C:
drive, while CHKDSK squeezes the crap out of available memory,
starts writing the pagefile, while at the same time, attempting
head movement and accesses to read yet-more structure.
I await your analysis
*******
By the way, for anyone who cares, if you run the 32 bit version
of CHKDSK, on your 64 bit OS W7 machine, and that will stop CHKDSK
from using all the RAM on your system. Not if you have a puny
amount of RAM. If you had a 16GB system, I would guess it'll
stop after it hogs around 2GB. It would stop at 3GB, if in a
/3GB and large_address_aware setup. The idea is, by being a
32 bit application, there is some limit to how far it can
address the memory it is attempting to hog.
I don't really have enough RAM on my W7 laptop to test this
well, but using the 32 bit CHKDSK seemed to work.
This is why I keep DVD downloads for both 32 bit and 64 bit W7.
When I need the 32 bit version of some program, I know I'm guaranteed
to find it, on one of n\my two ISO9660 files. For the 32 bit ISO,
I can do a dummy install in VPC2007, and then I gain access to
plenty of 32 bit applications. My laptop has 64 bit installed on
it, and that's where I find the 64 bit ones.
Have fun,
Paul
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.