Agner`s CPU blog

Software optimization resources | E-mail subscription to this blog | www.agner.org

 
thread Do we have to obey Moore's law? - Agner Fog - 2009-10-06
replythread Do we have to obey Moore's law? - mariuz - 2009-11-05
last reply Do we have to obey Moore's law? - Agner Fog - 2009-11-05
last reply Do we have to obey Moore's law? - Wojciech Czyz - 2009-11-24
 
Do we have to obey Moore's law?
Author: Agner Fog Date: 2009-10-06 08:05

My last blog post "Why is my computer so slow?" paints a picture of the hardware and software industry as an endless spiral driven by Moore's law towards ever-more powerful computers and increasingly resource-hungry software.

However, I am not convinced that this trend can continue forever. In fact, we are beginning to see a trend in a very different direction: towards smaller and less powerful computers with lower power consumption.

The small netbook computers, smartphones, and other mobile devices are becoming increasingly popular. These devices require small microprocessors with low power consumption because they are battery powered. There is also an increasing political focus on the power consumption of stationary computers.

I have tested two small lightweight processors, the Intel Atom and the VIA Nano. Both are cheap, low power processors, which are compatible with the bigger PC processors.

I was happily surprised how fast these small processors are. Normal office applications are running just as fast on the lightweight processors as on the expensive high-end processors. This is because the limiting factors in these applications are RAM and hard disk access, not CPU power. Only the most CPU-intensive applications such as video editing and heavy video games run slower on the lightweight processors. But the small processors are fast enough for almost all everyday applications - even for watching videos.

This makes me realize how much we are actually paying for unnecessary CPU power. We are all buying the fastest computer we can afford, in the hope that it will save time in our daily work. But for most applications, the speed is limited by the hard disk and the RAM, not the CPU.

Here is a good tip if you need a new PC:  Find a discarded desktop PC and replace the motherboard with one of the small embedded boards with an Intel Atom or VIA Nano processor. They fit into a standard desktop cabinet. You may need to buy new RAM if the old RAM is not compatible, but most of the other components can be reused, including keyboard, mouse, screen, etc. This gives you a new PC for around a hundred dollars. It uses very little power. It makes very little noise (unless the power supply is noisy). And it is fast enough for all everyday applications, unless you are playing heavy video games.

Lightweight web server with VIA processor
Photo courtesy of Morten Østergaard

The lightweight processors would also be useful as servers. A lot of web servers, file servers, print servers, etc. are equipped with the fastest, most expensive and most power consuming processors available. They are running 24-7, producing a lot of heat and making a lot of noise. This is a total waste. CPU power is not a bottleneck for a server unless it is running some very heavy scripts or the traffic is very high. A lightweight processor can do the job just as well. It is smaller, cheaper, and uses much less power. One of my friends has made a little web server with a small VIA Eden processor. It has been running for seven years now without problems and it is completely noiseless.

A comparison of the Intel Atom and VIA Nano processors can be summarized as follows:

  • Atom is cheaper than Nano
  • Atom uses less power than Nano
  • Nano has an advanced microarchitectural design similar to the high-end processors, while Atom has a more simple design without out-of-order processing
  • Nano is faster than Atom for single-threaded applications
  • The Atom is available in a dual core version. The dual core Atom is faster than a single core Nano on multithreaded applications. There are rumors that a dual core Nano is underway.
  • You can find a detailed analysis in my microarchitecture manual.

There will always be a niche for supercomputers, but we will no doubt see more applications for lightweight processors in the future. The domain for x86 based software and operating systems will be extended to smaller mobile devices and embedded applications.

This will force software developers to pay more attention to performance and resource use when they choose which programming tools and frameworks to use. We have to go back to basics and drop some of the "smart" features that have little value beyond attention-catching. We must revive the forgotten discipline of making software that economizes resource use in order to make applications that are fit for the smaller lightweight devices. But we don't have to go to extremes and use assembly language. The lightweight processors are actually quite powerful.

   
Do we have to obey Moore's law?
Author:  Date: 2009-11-05 07:51
Maybe we need a new comparition between atom and new via nano

www.linuxfordevices.com/c/a/News/Via-Nano-3000-series/

[Discussion of various desktop products removed]

   
Do we have to obey Moore's law?
Author: Agner Fog Date: 2009-11-05 11:22
Thanks for the reference Mariuz. Centaur Technology have promised to send me a sample of the Nano 3000 series, when it's available. I will test it when I receive it.

I don't expect the execution unit of the Nano 3000 series to be much faster than the 2000 series, because it is already quite well optimized, but memory access and branch prediction may possibly be improved.

Applications that can use the SSE4 instruction set, such as complicated text search, will of course benefit more.

   
Do we have to obey Moore's law?
Author: Wojciech Czyz Date: 2009-11-24 16:52
Great article. You are asking what to do with the extra CPU power we do not need. Well, let's donate it to noble projects like World Community Grid. All unused CPU power will be used to find cure for Malaria, AIDS and other type of really important projects. And it is so simple, just install small application on your PC. By the way, maybe you would like to optimize those applications, they are all open source. Thanks!