LCI Article

From BCCD 3.0

Jump to: navigation, search


Building of a GNU/Linux-based Bootable Cluster CD

Work supported in part by a grant from the National Computational Science Institute (NCSI)

Authors: Paul Gray and Jeff Chapin and Tobias McNulty

Original document can be found here.


The Bootable Cluster CD (BCCD) is an established, well maintained,cluster toolkit used nationally and internationally within several levels of the academic system. During the Education Programs of Supercomputing conferences 2002, 2003, and 2004, the BCCD image was used to support instruction of issues related to parallel computing education. It has been used in the undergraduate curriculum to illustrate principles of parallelism and distributed computing and widely used to facilitate graduate research in parallel environments. The standard BCCD image is packaged in the 3", mini-CD format, easily fitting inside most wallets and purses. Variations include PXE-bootable (network-bootable) and USB-stick bootable images. All software components are pre-configured to work together making the time required to go from boot-up to functional cluster less than five minutes. A typical Windows or Macintosh lab can be temporarily converted into a working GNU/Linux-based computational cluster without modification to original disk or operating system. Students can immediately use this computational cluster framework to run a variety of real scientific models conveniently located on the BCCD and downloadable into any running BCCD environment. This paper discusses building, configuring, modifying, and deploying aspects of the Bootable Cluster CD.

A Brief History of the Bootable Cluster CD

The original impetus for a self-contained, pre-configured, cluster image that could leverage an ever-increasing number of networked computer laboratories in support of high performance computing education began with the 2001 Supercomputing conference Education Program in Dallas, Texas. The amount of effort involved in coordinating the installation and configuration of software and services on hardware that was to be provided sight-unseen was enormous. Earlier in the year 2000, a company called LinuxCare put out a small, business-card-sized recovery CD that provided a very resilient and powerful bootable GNU/Linux operating system in a small 50MB image. Following Supercomputing 2001, the Bootable Cluster CD\cite{bccd} project began as Dr.~Gray joined with the LinuxCare developers that had forked off the ``LNX-BBC\footnote{As of November, 2005, Dr.~Gray has taken the role of project leader for the LNX-BBC project.} \cite{lnxbbc} project and the Bootable Cluster CD project began.

By the summer of 2002 a fully-functional BCCD image was available. At Supercomputing 2002 in Baltimore Maryland, the Bootable Cluster CD was mature enough to host a drop-in clustering environment and to support the parallel computing education sessions held during the SC02 Education Program. Since that time, the Bootable Cluster CD has hosted numerous workshops, ranging from National Computational Science Institute workshops on Clusters and Parallel Programming to supporting workshops hosted by the National Center of Excellence for HPC Technology (NCEHPCT).

The educational impact of the Bootable Cluster CD is far from trite. It is reflected in the ability to take a completely unconfigured lab of networked workstations and, within a few minutes, create a fully-functioning computational cluster complete with application profiling support through perfctr\cite{perfctr} and PAPI\cite{PAPI}, MPI support with MPICH\cite{mpich} or LAM-MPI\cite{LAM}, PVFS2\cite{pvfs2} filesystem support, and applications like Gromacs\cite{gromacs} and gmxbench\cite{gmxbench} at the ready. The advantages of the BCCD approach include:

Description of the Bootable Cluster CD

The goal of the Bootable Cluster CD is to lend support to students, educators and researchers as they gain insight into configuration, utilization, troubleshooting, debugging,and administration issues uniquely associated with parallel computing. As the name implies, the BCCD provides a full, cohesive clustering environment running GNU/Linux when booted from the CDROM drives of networked workstations. The BCCD is unique among bootable clustering approaches in its ability to provide a complete clustering environment with pre-configured clustering applications and examples from a full repertoire of development tools.

%\begin{figure}[!ht] %\centerline{\psfig{figure=upshot.eps,width=10cm,clip=}} %\caption{Upshot on the BCCD} %\end{figure} An open lab of networked workstations, which also includes environments using laptops connected over a wireless network (as was used at Supercomputing 03's Education program), or practically any situation where networked workstations are available serves as a suitable environment for explorations in clustering environments. Two areas where the BCCD has excelled in HPC education include training students in clustering administration (instead of opening up the production systems) and for supporting educator training workshops sponsored by the National Computational Science Institute (NCSI).

Over the past three years, NCSI has leveraged the BCCD as a means to support HPCE workshops at Washington University, St. Louis (June 2003), the OU Supercomputing Center for Education and Research (OSCER) (Sept. 23-26, 2003, Aug. 8-15, 2004, and July 1-Aug.6, 2005), at Contra Costa College (June 7-9, 2004), at Bethune-Cookman College, and Wofford College (Nov.~2004). At the Contra Costa workshop, the BCCD was used to bootstrap and sustain computational simulations across a 60-node BCCD cluster.

During these workshops educators from research institutions, primarily-undergraduate institutions and community colleges gather to learn, discuss, and develop curricular topics drawn from HPC and parallel computing. Workshop session topics have included

The wide breadth of pre-configured clustering applications available on the BCCD includes openMosix and openmosixview; PVFS2; PVM\cite{pvm}; XPVM; MPICH; LAM-MPI; C3-tools\cite{c3}; GNU compiler suite; torque\cite{torque}; and Gromacs.

These applications are available without requiring configuration, installation, or administration by the end user(s). They have been provided on the BCCD image so that em the focus can be on how to "use" a cluster instead of how to setup, administrate, and configure the clustering environment. This approach also allows the BCCD to be used in in an educational setting where the cost of a traditional cluster would prove prohibitive due to administrative overhead.

A full suite of development tools is available for supporting writing, debugging, and profiling distributed programs. Applications include a wide range of compilers, debugging libraries, visualization and debugging programs for distributed applications, linear algebra programs and libraries, and over 1400 additional applications.

Support for hot-loadable software packages allows the BCCD to introduce new software and capabilities that were not included when the software was burned to the CD. Through hot-loadable software packages, users can dynamically add features to their runtime systems (e.g. Maui support or Ganglia monitoring) and tailor the runtime system to their local environments.

Building the Bootable Cluster CD

The approach taken to build the Bootable Cluster CD provides it with a unique customizable framework for the end user. This flexibility is being leveraged to expand and customize the features of the standard BCCD in support of cutting-edge topics in distributed computing which will be discussed in the following section.

The current version of BCCD has the following characteristics:

The LNX-BBC mechanism from which the BCCD build process is derived uses a custom creation system called GAR\footnote{A common question is what ``GAR stands for. However, ``GAR is not an acronym, but an expression derived from the frustration one encounters when software packages fail to build.}. GAR is used to help automate the creation of bootable images for distribution and use, and also aides the construction of bootable images in a variety of formats. Sharing some similarity with BSD Ports and Gentoo's emerge package building mechanisms, GAR allows for distributed storage of package sources and automates the build process, fetching the sources needed for a package. GAR cross-builds dependencies and cross-compiles the packages for the target BCCD host image. Since everything is custom compiled, the same repositories can be used regardless of the architecture you are targeting; presently x86 or PowerPC.

Having a standard, self-contained CD image and the non-invasive nature of the project result in several benefits such as the ability to provide an identical environment on each machine, which allows students to work virtually anywhere, to support deep explorations of parallel environments, and to support the use of machines where a traditional clustering environment would not be feasible, turning idle cycles and minds into useful ones.

The build process of the BCCD separates it from other approaches taken by cluster deployment and bootable GNU/Linux CD images. These attributes of the build process are revisited in more detail in the next section which contrasts the BCCD with other projects that share limited similarities with the BCCD.

Comparison with other Bootable Images and Cluster Imaging Solutions

There are many other self "contained" clustering solution environments available, ranging from OSCAR\cite{oscar}, Rocks\cite{rocks}, and Warewulf\cite{warewulf} to Loaf\cite{loaf}, Linux on a floppy. What makes the BCCD unique amongst all alternatives is it's three pronged focus on education, customization and non invasiveness.

There are also many bootable GNU/Linux CD images available today. These include a growing multitude of "Live-CD" variations of popular GNU/Linux distributions. Other bootable images include variations of the popular Knoppix\cite{knoppix} bootable CD image or custom-built images. Adding software or features to these images typically requires one to rip the fundamental components of the bootable image apart and introduce compatible binaries to the image by hand, which requires super-user permissions; rolling all components together afterwards, back into a workable bootable CD format. ClusterKnoppix\cite{clusterknoppix} is an example of a Knoppix extension that adds openMosix\cite{openmosix} functionality and management tools to the base Knoppix image.

In contrast, the GAR system used by the BCCD allows more flexibility to the end user for customization of the runtime system. An end user, with non-root privileges, can build a complete BCCD image from the CVS code base without additional privileges. A complete CD image can be built via web-fetched sources without the need to reverse engineer an existing CD image. GAR pulls together an approach that is built upon a mixture of BSD's ports, Linux from scratch, Gentoo's emerge, and user mode Linux to support the creation of a dynamic and customized bootable image built from web fetched sources with only user permissions.

The process of building the BCCD image involves three distinct components:

The utilization of a cross compiler toolchain allows for the greatest breadth of platform support when building the Bootable Cluster CD image. In general, the formal BCCD image is built with the largest set of features and compatible with the largest set of target hosts. For example, by default all binaries compiled for a target x86-based environment are i386-compatible and contain uni-processor kernels. This allows the BCCD image to run on a large set of legacy hardware as well as on the latest x86\_64 platforms. If one desires a specific extension to the default paradigm, which would otherwise break the universality of the BCCD image, the BCCD build tree can be checked out from the CVS archive and these extensions can be integrated manually or the web-based BCCD build portal, discussed later in this document, can be used to automate customized images.

For a software component, MPICH for example, to run on the BCCD's target runtime environment, the following steps are taken by the GAR build system:

target environment. For example, an i686-PPC toolchain or even an i686-i386 toolchain is built from scratch to begin the process.

End users that wish to modify the BCCD can easily add more packages to the BCCD runtime image, customize their own services during the build process or even strip away components. For end users that aren't willing or able to build their own customization, a web portal has been developed that offers users a select-and-build BCCD configuration that automates the building of a BCCD image with selected packages and custom configuration files, with guidance as to sorting out dependencies.

BCCD as a Small Scale Production Environment

One of the limitations on educating students in HPC is access to a cluster, particularly one with short queue times. The principal reason that many institutions are unable to provide a cluster is mainly financial, namely that both the hardware and the administration required of a cluster are often prohibitively expensive. The BCCD provides a solution to both of these issues, through a development called "Liberation". Liberation allows for the installation of the BCCD onto a more permanent cluster. One of the benefits of this approaches the reduction in time invested in maintenance. Once an BCCD image is created, a cluster administrator merely needs to reliberate the software, allowing more time to be devoted to educational issues rather than administrative, letting the BCCD project maintainers manage all the software compatibility and management issues. Additionally the natural versatility of the BCCD allows for a wide variety of cheap commodity hardware to be used as the infrastructure to install upon.

Grid Education and the Future Directions of the BCCD

Previous sections emphasized the process used by the BCCD to build images which allows a great deal of customizability and does not require special user privileges. This section highlights the future direction of the BCCD project as it leverages this flexibility going forward to support the larger efforts of Grid-based education.

Installation, configuration and ongoing maintenance of Grid services is an arduous task that often precludes our ability as instructors to bring Grid computing topics into the classroom or for hosting Grid-content driven workshops. A natural extension to the traditional BCCD image is one that focuses on aspects of Grid education, namely a Bootable Grid CD (BGCD). Elevating the BCCD paradigm to one that is able to prominently feature the capabilities of a Grid system requires a significant and fundamental integration of user authorization and credential verification. This is where the build process of the BCCD can be uniquely leveraged to offer {\em customized bootable images}\/ that have been {\em created uniquely for a specific user's credentials}. Work is under way to provide the community with a web portal for automating the task of creating customized BCCD images that can integrate one's personal Grid credentials into the final image. These capabilities have the potential to significantly impact our ability to support Grid-based educational workshops and Grid-centric curriculum. The goal of these efforts is to establish a paradigm for a classroom or workshop of participants to be given an individualized Bootable Grid CD which would allow them to authenticate and participate in Grid-based computations from any networked workstation capable of booting the BGCD image.

Personal tools