Cluster Computing
Traditionally, scientists have relied on large, expensive shared memory systems for complex computations. Four or more processors were typically aggregated into a single, monolithic system with large amounts of RAM. Though still in use today, this approach is not the preferred method of computation for most problems. Its prohibitively expensive, and the system architectures are not well suited to high throughput operations.
Benefits of Cluster Computing for Researchers
Cluster computing balances cost with performance by using off-the-shelf hardware components. Software enables the systems to behave coherently and work collaboratively on a given problem. By implementing the cooperative capabilities in software, the cost of the hardware is reduced by orders of magnitude. Cluster computing from Apple offers researchers exceptional price-performance, easy scalability of compute resources, a flexible choice of configurations and ease of deployment and administration.
Research Applications for Cluster Computing
Software applications must be written to take advantage of clusters. Some computational problems, such as BLAST, are well suited to this model, and others, such as earth simulation, are more difficult to fit within the framework of clusters. However, depending on the circumstances, even the more challenging computational problems can be made to work well on cluster architectures.
The more easily a problem can be broken into independent tasks, the better suited it is for a cluster. Genetic database searching, for example, can be easily broken into numerous, independent search tasks, which makes this type of calculation ideal for cluster systems. Other examples include Monte Carlo simulations, database mining operations and batch image processing operations.
Some commercial applications are now available for clusters, too. MATLAB and Mathematica, for example, have tool kits that enable the coarse-grained parallelization of tasks in their respective languages. With both environments, users can easily write a script or notebook on their desktops or laptops and execute their tasks on a cluster without having to interact with a command line or web page.
Components of a Cluster
More complicated than a single system, clusters typically consist of a number of interrelated components, which are often viewed in a hierarchy:
- Applications: The applications you run on your cluster will define its utility. The more optimized your applications are for the operating system, hardware and network characteristics of your cluster system, the better your cluster will perform.
- Operating System: Typically a UNIX variant, the operating system in a cluster will determine management facilities, security characteristics and many important performance attributes for your computational cluster.
- Computational Hardware: The servers in your cluster, including their reliability and performance, will determine the complexity of managing your cluster and the overall performance you achieve for your application.
- Network: The speed with which the individual nodes in a cluster can communicate with one another will determine, in part, the overall performance of the cluster system.
- Physical Infrastructure: Cooling and powering a cluster can be easy for smaller systems, but larger systems may require substantial power and cooling for normal operation.
Cluster Deployment and Management
Do-it-yourself clusters can be difficult to deploy and manage because no two of these clusters are alike. Documentation can be sparse, and no single cookbook can accurately provide a foolproof guide. Furthermore, variations in operating system versions, hardware styles and network designs may further complicate matters.
Apple has designed a number of products and solutions to simplify this entire process. Apple Remote Desktop, for example, enables cluster administrators to treat the cluster as a single, coherent system, rather than as a group of unrelated servers. The Apple Workgroup Cluster provides complete documentation for deployment and management, as well as three years of telephone support. By taking a holistic approach to cluster computing, Apple has dramatically simplified the process of cluster acquisition, deployment and management.
