Specifying Hardware Requirements in the Multicore Age
A decade ago, the hardware requirements for running a specific software or system were easier to specify. There were less microprocessor models and less multitasking. The massive adoption of multicore microprocessors and the micro-architecture changes that they brought call for a new model of hardware requirements specification.These are some of the hardware requirements of a very popular and powerful database engine:
Processor Processor type: Minimum: AMD Opteron, AMD Athlon 64, Intel Xeon with Intel EM64T support, Intel Pentium IV with EM64T support Processor speed: Minimum: 1.4 GHz Recommended: 2.0 GHz or faster
As you can see, it recommends a 2.0 GHz or faster microprocessor. Therefore, considering this recommendation, a brand new Intel Core i7 820QM, running at 1.73 GHz would not be enough to achieve a decent performance. The problem is that the recommended requirements are just talking about GHz without considering the advanced in the micro-architectures and the number of physical cores and logical cores (hardware threads).
An Intel Core i7 820QM offers great power to a mobile workstation capable of running even the most demanding software. It is a quad-core microprocessor, with Hyper-Threading, offering 8 hardware threads. Besides, it includes Enhanced Intel SpeedStep Technology and Intel Turbo Boost Technology. Therefore, the microprocessor is capable of reducing and increasing the speed for each core as needed. It can turbo boost to higher clock speeds, up to 3.06 GHz. However, even running at 1.73 GHz, this microprocessor is capable of running more instructions per clock than an old Pentium IV.
In this case, and in many other cases, hardware requirements specify the minimum and recommended microprocessors using clock speeds of very old micro-architectures. In fact, an Intel Core i7 820QM can run this database engine with an outstanding performance.
Most modern software is still specifying requirements using this inaccurate mechanism. A microprocessor with a 2.4 GHZ QPI (short for QuickPath Interconnect) offers more throughput than an old quad-core microprocessor with a 1,066 MHz FSB (short for Front Side Bus). I could go on explaining dozens of differences and improvements between old microprocessors and the new ones. Thus, it is very important to find a new way to specify hardware requirements for running a specific software or system with the necessary response times.
Some standardized benchmarks similar to the ones used in the requirements specification for embedded systems could be an interesting option. The benchmarks can establish the baselines and then the software and systems developers can specify the minimum requirements based on a specific score, instead of talking about old-fashioned GHz.
Windows Vista introduced the Windows Experience Index. The Game Explorer shows the minimum and recommended score to run a game. The user can compare the current system's score and compare it to the recommended one. The application that registers itself as a game can specify this information.
The Windows Experience Index is a good initiative. However, it should be improved to take into account new specific instruction sets and new multicore micro-architectures in order to be more accurate with software optimized to take full advantage of multicore, streaming instructions and vectorization. Therefore, the Windows Experience Index is not enough. Besides, you can only find it on certain Windows versions.
There is a great need to improve the hardware requirements specification and to find a simpler way to let the end-users understand their hardware capabilities and the software and systems that they can run taking advantage their modern multicore microprocessors. Furthermore, with new mechanisms, software and systems developers could simplify their deployment processes.