G
Guest
Guest
Having read the dual athlon review and just purchased an asus A7M-266D I was disappointed that games run slower on it than a single CPU system, so I decided to develop a utility to do something about it. What it does is gives the the process with active foreground window dedicated access to processor 0 and forces all other applications and services to run on processor 1.
This means the processor 0 cache only ever contains the code and data for the foreground app and the kernel thread dispatcher, and it should suffer far fewer context changes. Theoretically (I think - I don't pretend to be the expert here) this should make it faster than a single processor system, rather than slower as it should get more processor time and better caching.
I mentioned game performance in the subject, but it should improve any processor intensive single-threaded application.
This is just a proof of concept version at the moment - I intend to make it dynamically manage allocations of processors to the foreground app as follows:
- If it uses <30% of overall power, all processes
can run on both CPUs
- If it uses 30% - 50% of overall power, it gets
one CPU, all other processes get the other
- If it uses over 50%, it is multi-threaded and
busy, so it gets CPU 0 and all processing including
it get access to CPU 1
Testing my initial version, I saw a improvement with 3d mark 2001 from 6757 to 6852 - 1.56% faster.
I am concerned, however, that I am directing all the load onto CPU 0. I thought about a round-robin scheme - alternate which processor gets the load at regular intervals. Then it occured to me that these things have build in temperature monitors - if I could get at those readings, I could direct the load onto the cooler processor. I could then also provide an additional safety cutout that switched all load onto one processor if the
other began to overheat.
So I have the following questions?
1. Anyone know how to read the temperature of an Athlon MP from code? Is it motherboard/BIOS/chipset or CPU specific?
2. What about Intel CPUs - is that a different method? Do they even have temperature monitors?
3. If I can't to this, any suggestions on an appropriate time to direct the load of the foreground app to one processor before switching it to the other, taking performance / thermal considerations into account.
4. Anyone willing to test / benchmark my application - see if my readings are acurate or a fluke and try it with a few more benchmarks?
It should run on NT/2000/XP. Its tested it on a single processor 2000 (Just to make sure there were no errors on 2000 - it didn't do any good on a single processor system!) and a dual processor XP professional. It is a single 72K EXE file.
Currently it is not specific to Athlons, it should run equally well on multi-processor Pentium systems, including those with more than 2 processors.
If you are willing to help me test this application please email me with the following or reply privately to this message.
- You Processor Types, Chipset and Motherboard
- Your OS
- What, if any benchmarking software you can test on
Paul Hickman
Paul__Hickman@Hotmail.com (two underscores)
This means the processor 0 cache only ever contains the code and data for the foreground app and the kernel thread dispatcher, and it should suffer far fewer context changes. Theoretically (I think - I don't pretend to be the expert here) this should make it faster than a single processor system, rather than slower as it should get more processor time and better caching.
I mentioned game performance in the subject, but it should improve any processor intensive single-threaded application.
This is just a proof of concept version at the moment - I intend to make it dynamically manage allocations of processors to the foreground app as follows:
- If it uses <30% of overall power, all processes
can run on both CPUs
- If it uses 30% - 50% of overall power, it gets
one CPU, all other processes get the other
- If it uses over 50%, it is multi-threaded and
busy, so it gets CPU 0 and all processing including
it get access to CPU 1
Testing my initial version, I saw a improvement with 3d mark 2001 from 6757 to 6852 - 1.56% faster.
I am concerned, however, that I am directing all the load onto CPU 0. I thought about a round-robin scheme - alternate which processor gets the load at regular intervals. Then it occured to me that these things have build in temperature monitors - if I could get at those readings, I could direct the load onto the cooler processor. I could then also provide an additional safety cutout that switched all load onto one processor if the
other began to overheat.
So I have the following questions?
1. Anyone know how to read the temperature of an Athlon MP from code? Is it motherboard/BIOS/chipset or CPU specific?
2. What about Intel CPUs - is that a different method? Do they even have temperature monitors?
3. If I can't to this, any suggestions on an appropriate time to direct the load of the foreground app to one processor before switching it to the other, taking performance / thermal considerations into account.
4. Anyone willing to test / benchmark my application - see if my readings are acurate or a fluke and try it with a few more benchmarks?
It should run on NT/2000/XP. Its tested it on a single processor 2000 (Just to make sure there were no errors on 2000 - it didn't do any good on a single processor system!) and a dual processor XP professional. It is a single 72K EXE file.
Currently it is not specific to Athlons, it should run equally well on multi-processor Pentium systems, including those with more than 2 processors.
If you are willing to help me test this application please email me with the following or reply privately to this message.
- You Processor Types, Chipset and Motherboard
- Your OS
- What, if any benchmarking software you can test on
Paul Hickman
Paul__Hickman@Hotmail.com (two underscores)