Sunday, June 22, 2008

wPrime, A Replacement to Super Pi

Due to its single threaded nature, Super Pi is losing its relevance as a measure of performance in the current era of multi-core processors. As the calculation times become faster and faster, Super PI is becoming a rather poor CPU bench test as it cannot fully stress all the CPU cores due to its single threaded nature. Super Pi scores, as it cannot utilize all of the multi-cores/processors when running the test, are rather geared towards high clock single-core CPUs.

wPrime is an excellent replacement for multi core CPUs as it is multi-threaded. It utilizes all the core of any multi-core CPU during testing. It is very similar to Super PI, but has a bit more features to retrieve most of the hardware information (CPU, Motherboard, etc.).

You can download the software from the following link;
wPrime DOWNLOAD

You can see the difference which one is taxing your multi core CPU more from the following 2 pics



HOW IT WORKS:

wPrime uses a recursive call of Newton's method for estimating functions, with f(x)=x2-k, where k is the number it is squaring, until Sgn(f(x)/f'(x)) does not equal that of the previous iteration, starting with an estimation of k/2. It then uses an iterative calling of the estimation method a set amount of times to increase the accuracy of the results. It then confirms that n(k)2=k to ensure the calculation was correct. It repeats this for all numbers from 1 to the requested maximum. The aim is to make a perfectly threaded benchmark, such that it would consistently use 100% of the CPU while in use. This is achieved by using the WMI to detect the CPU count and use exactly that many processing threads to avoid any performance losses due to multiple threads running on any single physical thread. Each thread is designed to do 1/n of the work, where n is the number of threads. For example, if you're calculating 16 roots on 4 CPU's, each CPU will calculate 4 roots. Some might argue that this style of threading is unrealistic in real-time performance, but in fact it is quite indicative of performance in several real world tasks such as F@H which allows you to run several instances of the work at any one time.

CPUz is used to detect the CPU count and use exactly that many processing threads to avoid any performance losses due to multiple threads running on any single physical thread. Each thread is designed to do 1/n of the work, where n is the number of threads. For example, if you're calculating 16 roots on 4 CPU's, each CPU will calculate 4 roots. Some might argue that this style of threading is unrealistic in real-time performance, but in fact it is quite indicative of performance in several real world tasks such as F@H which allows you to run several instances of the work at any one time.



Check the following link for multi threaded comparison of SuperPi and wPrime at MADSHRIMPS

No comments: