next up previous contents
Next: Kernel Up: Linux & Cluster Previous: Linux & Cluster   Contents


Why Use Linux for a Beowulf?

Linux is the most popular open source operating system in the world. Its success is the result of many factors, but its stability, maturity, and straightforward design have certainly been keys to its growth and market share. Companies such as IBM, Fujitsu, NEC, Compaq, and Dell have all incorporated Linux into their business model, creating a marketplace around a distribution of kernel source code that is free. Probably the most important reason for using Linux to build a Beowulf is its flexibility. Because Linux is open source, it can easily be modified, rearranged, and tweaked for whatever the task. Because of the distributed development environment that has helped it become so successful, it is also easily modified and tweaked. Another reason to choose Linux is that you will not be alone. The available talent pool for knowledgeable system administrators that have Linux experience and actually enjoy working with Linux is large. A quick look at the Top500 list (www.top500.org) shows that Linux is the unchallenged champion for building compute engines with commodity parts.

Google (www.google.com), one of the most popular and acclaimed search engines, is now using more than 8,000 Linux nodes for its search engine server farm. While Google is not a scientific computing cluster, its size demonstrates the flexibility and adaptability of Linux. From an embedded palm-sized computer to running on an 8,000-processor cluster, Linux has demonstrated its utility and stability for nearly any task. There are even real-time versions of the Linux operating system. No legacy operating system can even come close to such flexibility and dominance among the largest clusters in the world. Another reason to choose Linux is its support for many types of processors. Alpha, PowerPC, IA32, IA64, Xeon, Itanium and many others are all supported in Linux. Finally, many people choose Linux for what it does not have, or what can be removed. Linux is a sophisticated multitasking virtual memory kernel. However, it can be trimmed down to a very small set of functions representing the bare necessities. In fact, Linux can easily be compiled to use as little as 600 KBytes of compressed disk space on a floppy. Linux can be made small. It can fit on embedded devices.

The first reason that smaller is better comes from decades of experience with source code development and stability. Whenever a line of code is added to a source tree, the probability increases that a hidden bug has been introduced. For a kernel that controls the memory system and precious data on disk, robustness is vital. Having fewer functions running in privileged mode makes for a more stable environment. A small kernel is a kernel that is more likely to be stable. Smaller is better when it comes to kernel memory and CPU cycles on a Beowulf. For scientific computing, nearly every instruction not being performed by the scientific application, usually in the form of a floating-point operation, is overhead. Every unnecessary kernel data structure that is walked by the kernel pollutes the precious cache values intended for the scientific application. Because kernel operations such as task switching are run extremely often, even a small amount of additional kernel overhead can noticeably impact application performance.


next up previous contents
Next: Kernel Up: Linux & Cluster Previous: Linux & Cluster   Contents
Cem Ozdogan 2009-01-05