As the new owner of a Dell Latitude 2100 netbook, I'm eager to get as much performance out of my little machine as possible.  One of the most pressing issues in my life over the last week, therefore, has been to decide whether to use the i386 or lpia build of Ubuntu on my new computer.  Here's the decision I came to, and why.

Unlike Windows, Ubuntu can be easily optimized for different hardware platforms, thanks to the openness of its code.  This is theoretically one of Ubuntu's strengths in a market where consumer-class processors are diversifying again, for the first time in a decade, on new genres of devices like netbooks and MIDs.

For a while, Canonical tried to play on this strength by offering a version of Ubuntu customized for the Atom processor, which is found in many (but not all) netbooks.  While the Atom can run the generic i386 build of Ubuntu, compile-time optimizations for lpia (low-power Intel architecture, which includes the Atom) chips can in theory provide some boosts in CPU performance and battery life.

After providing lpia releases of Ubuntu since 7.10, however, Canonical announced last November that it would discontinue the lpia build after Ubuntu 9.10.  The decision was made because most users were reporting only marginal performance benefits from lpia, while maintaining packages for that architecture increased the burden on Ubuntu's staff and volunteers.  After next April, owners of Atom-based netbooks will have to switch to the i386 version of Ubuntu if they want to stay up-to-date.

Despite this news, I was determined after receiving my netbook to install whichever version of Ubuntu is going to provide the best performance, regardless of whether it would be officially supported in the future.  As a thumb drive-carrying geek, I'd be willing to build my own lpia kernels if I thought they would shave a few seconds off of running aircrack or compiling code.

Unfortunately, it turns they probably don't.

Benchmarking lpia

To figure out whether using software optimized for lpia rather than i386 was worth it, I ran some benchmarks.  These involved compiling a kernel, testing graphics performance with gtkperf (not exactly a CPU-intensive operation, but it didn't hurt to test in case there was a difference) and measuring battery drain time.  I performed the tests on the official i386 and lpia releases of Ubuntu 9.10, installed to hard disk.

For the i386 version of Ubuntu, the results were as follows:
  • kernel build: 239 minutes 16.435 seconds
  • gtkperf: 25.2 seconds to run all tests
  • battery: lost 14% charge with the system idling for one hour
On lpia, the numbers were:
  • kernel build: 225 minutes 56.924 seconds
  • gtkperf: 24.93 seconds
  • battery: lost 15% charge while the system idled for one hour
The numbers reveal, pretty clearly, that users who reported insignificant performance differences using the lpia build were right.  I saw about a 6% improvement in the CPU-intensive task of building a kernel, but the gtkperf results were almost identical on the two architectures (which was to be expected, since gtkperf has more to do with video performance than the processor, but I threw it in for good measure).

Moreover, battery performance was actually worse on lpia than on i386, even though in principle it should have been up to 10% better. (In retrospect, perhaps I should have measured battery drain time while the CPU was doing something, rather than letting it idle, to see where lpia would pay off.)

Granted, none of my benchmarks was overly scientific.  I did my best to standardize testing conditions--everything was run on a cleanly installed system after a fresh reboot, and no other applications were open--but in the absence of unlimited free time, I could only do so much.  I also ran each test only once, so have little basis for determining the statistical significance of the numbers.

Nonetheless, it seems likely, based on the findings as well as those of others, that if lpia provides any performance increase in practice, it's quite minimal and may be offset by worse performance in other areas, like battery charge.

Given this conclusion, and the fact that Canonical will soon cease providing lpia support for new Ubuntu releases, it makes most sense for me to stick to the generic i386 flavor of the operating system.  Those even geekier than I might still find some value in compiling their own lpia systems in order to squeeze out every last bit of performance from their Atom processors, but chances are most of those people have already forsworn Ubuntu in favor of Gentoo or some other such DIY extravaganza.