Cluster computers provide a low-cost alternative to multiprocessor systems for many applications. Building a cluster computer is within the reach of any computer user with solid C programming skills and a knowledge of operating systems, hardware, and networking. This book leads you through the design and assembly of such a system, and shows you how to mearsure and tune its overall performance. A cluster computer is a multicomputer, a network of node computers running distributed software that makes them work together as a team. Distributed software turns a collection of networked computers into a distributed system. It presents the user with a single-system image and gives the system its personality. Software can turn a network of computers into a transaction processor, a supercomputer, or even a novel design of your own. Some of the techniques used in this book's distributed algorithms might be new to many readers, so several of the chapters are dedicated to such topics. You will learn about the hardware needed to network several PCs, the operating system files that need to be changed to support that network, and the multitasking and the interprocess communications skills needed to put the network to good use. Finally, there is a simple distributed transaction processing application in the book. Readers can experiment with it, customize it, or use it as a basis for something completely different.