| Beowulf Software
|
|
Index
Overview
The Beowulf software environment is implemented as an add-on to
commercially available, royalty-free base Linux distributions. These
distributions include all of the software needed for a networked
workstation: the kernel, Linux utilities, the GNU software suite, and many
add-on packages. Initially we used the very popular Slackware distribution.
We have now migrated to the RedHat distribution
with its better package management and upgrade system.
The Beowulf distribution includes several programming environments (all
developed elsewhere) and
development libraries as individually installable packages. PVM, MPI, and BSP
are all available. SYS-V--style IPC and p-threads are also supported.
A considerable amount of work has gone into improving the network subsystem
of the kernel and implementing fast network device support. Most of these
changes have been incorporated into the kernel source code tree, although many
device driver updates
are still in the active development or tuning phase.
In the Beowulf scheme, as is common in NOW clusters, every node is responsible
for running its own copy of the kernel and nodes are generally sovereign and
autonomous at the kernel level. However, in the interests of presenting a more
uniform system image to both users and applications, we have extended the Linux
kernel to allow a loose ensemble of nodes to participate in a number of
global namespaces. A guiding principle of these extensions is to have little
increase in the kernel size or complexity and, most importantly, negligible
impact on the individual processor performance.
- BPROC: Beowulf Distributed Process Space
- This packages allows a process ID space to span multiple nodes in a cluster
environment and also provides mechanisms for starting processes on other nodes.
(This package is for Linux 2.2.x kernels.)
- Network Device Drivers
- We have long contributed to the development of the Linux networking
code. Many of the Linux ethernet device drivers, and most of the device
drivers for cost-effective high-performance network adapters were written
by Donald Becker at CESDIS. A large portion of his time goes into
maintaining and enhancing the performance of these device drivers.
Fast Ethernet has long been a
cluster staple, while Gigabit
Ethernet has recently been tested.
- Beowulf Ethernet Channel Bonding
- One of the goals of the goals of the Beowulf project is to
demonstrate scalable I/O using commodity subsystems. For scaling
network I/O we devised a method to join multiple low-cost networks into
a single logical network with higher bandwidth.
- PVM-TCL
- A set of extensions to TCL that allow you to manipulate the PVM virtual
machine directly. NOTE: This currently does not extend the
message-passing calls to TCL, just the PVM configuration ones. One
could, however, implement them from the base provided here.
- Virtual Memory Pre-Pager
- A loadable kernel module for Linux 2.0 that implements a non-blocking
page read-in system call. With the proper run-time support, this new
system call can dramatically reduce the run-time of "out-of-core"
programs (programs that have data sets larger than the available
physical memory) by allowing multiple pages to be read from disk prior
to their actual use.
- PPro Performance Counter Patches
- Kernel patches (for 2.0.36, 2.2.2 and 2.2.9) and a small library to add
kernel support for the performance counters found in the Pentium Pro
and Pentium II.
- LM78 Hardware Monitor Driver
- A loadable kernel module for Linux 2.0 and 2.1 that provides a /proc interface
for the LM78 Hardware Monitor. (Note: This driver speaks to the
hardware monitors via the ISA interface. This driver does not
support boards that only have the serial interface on the hardware monitor connected.)
- Intel PR440FX Netbooting Tools
- Tools to assist with nebooting from built in network interface on the
Intel PR440FX and possibly other AMI Bios motherboards.
Beowulf Software as RPMs
Linux kernel with channel bonding and other Beowulf tweaks.
The LAM project has moved to the University of Notre Dame.
One should check
the LAM home page
the lastest version.
LAM 6.1 is no longer supported, anyone running 6.1 is encouraged
to upgrade to 6.2.
Unfortunately, the LAM 6.1 RPM is not indexed the same way
as the 6.2b RPM; if you are upgrading from 6.1 to 6.2b
with the RPM's, you will need to uninstall the 6.1 RPM first.
New features in version 6.2 include:
- Limited support for MPI_2 one-sided communication.
- Many MPI-2 support functions implemented.
- Full MPI-2 standard conforming support for dynamic processes.
- New user level locking shared memory RPI transport.
- Special case fast send and receive.
- Signal catching to aid the termination of batch jobs.
- More basic datatypes supported.
- Support for shared libraries on Linux and Solaris.
- Various small bug fixes.
We have cached rpm's here for your convenience:
Oak Ridge National Lab's PVM 3.3.11 as RedHat rpms.
Gero Kulhmann's 'netboot' package for booting diskless x86 machines.
Beowulf base software distribution for RedHat Linux.
Distributed Computing Environments
There are several distributed application programming environments available
on Beowulf. The most commonly used are the
PVM
and
MPI
environments, with
BSP
also available and used.
Network Virtual Memory / Distributed Shared Memory
The Linux kernel provides a VFS-like interface into the virtual memory system.
This makes it simpler to add transparent distributed back-ends to
implicitly managed namespaces. Page-based systems can be created
that allow the entire memory of a cluster to be accessed either almost or
completely transparently.
An additional environment being added to the Beowulf packages is page-based
Network Virtual Memory (NVM), also known as Distributed Shared Memory (DSM).
Page-based distributed
shared memory uses the virtual memory hardware of the processor and a
software-enforced ownership and consistency policy to give the illusion of a
memory region shared among processes running an application.
The initial Beowulf DSM implementation was based on the ZOUNDS (Zero Overhead
Unified Network DSM System) system from Sarnoff.
Our own distributed shared memory package, implemented by Jason Crawford at GSFC, will soon be available (June 1997).
We have also evaluated a commercial DSM package, TreadMarks from Rice
University.
Beowulf systems are a good idea because technology advances have changed
the economics of computing. The tradeoff now favors clusters of commodity
technology over higher-performance but lower volume systems. A significant
part of putting together a near-optimal system is "technology-tracking":
Here are a few topics we actively follow:
Beowulf cluster software is being developed in as many places as Beowulf
clusters are being built. Below are pointers I am aware of:
- bWatch, a tcl/tk
cluster monitor from the University of Southern Queensland
- procps,
Well known tools like ps/top/uptime/free for beowulf clusters
from the Technical University Braunschweig
- Smile CMS,
A Cluster Management System for Beowulf Cluster developed at
Kasetsart University Bangkok, Thailand
- Mike Romberg's (romberg@fsl.noaa.gov) xosview patched
for /proc/apm support
Contact:
Phil Merkey
merk@cesdis.gsfc.nasa.gov
Don Becker
becker@cesdis.gsfc.nasa.gov