Follow this link to my my favorite cause. (Which recently won a victory against General Shale/Wienerberger's proposed open-pit mine near Barboursville, Virginia!)

Linux as a CPU Server

Linux has become quite popular in the scientific and engineering community because of its good performance, versatility and (especially) price. The "Linux in High Performance Computing" web page is a useful source of information about CPU-intensive applications in a Linux environment. The "HEPpc" page provides information about Linux resources for high energy physics, but much of its information is applicable to any research area.

Applications

A wide variety of free and commercial applications are available for Linux. Among those that make heavy use of the CPU are:

For more information about scientific applications for Linux, see the excellent "Scientific Applications on Linux" page. For a list of commercial Linux software, see the Linux Documentation Project's Commercial Linux Products page. For a list of free Linux software, see the "Linux NOW!" file library.

Programming Languages/Libraries

A wide variety of programming languages are available for Linux. These include the GNU C and C++ compilers (gcc and g++), several free or commercial FORTRAN compilers, several Forth implementations, GNU SmallTalk, several lisp interpreters, and many others. Sun's JDK is also available, with it's java compiler, javac. A quick look through the "Scientific Applications on Linux" page yields the following:

There seems to be an especially large number of companies selling FORTRAN implementations for Linux. Absoft sells FORTRAN 77 and FORTRAN 90 products for Linux. They also market the IMSL libraries, from Visual Numerics. The Portland Group sells FORTRAN 77, FORTRAN 90 and HPF, as well as their own implementations of C and C++. Numerical Algorithms Group (NAG) sells FORTRAN 77 and FORTRAN 90, as well as an array of statistical, numeric and visualization software.

SMP

Linux supports symmetric multi-processing (SMP). Anecdotal reports indicate that performance scales well with 2 processors, but little improvement is seen with the addition of more. See the Linux SMP page for more information.

Distributed Processing

Since Linux has been ported to so many platforms, and will run on an Intel 386 or better, it provides a way to re-use otherwise obsolete hardware. One way to do this is through distributed processing, using farms of cheap PCs working in concert to achieve significant CPU power.

PVM/MPI

PVM ("Parrallel Virtual Machine") and MPI ("Message Passing Interface") are two systems, available for Linux and other platforms, that provide tools and applications for writing programs which use a heterogeneous collection of computers as though they were a single large parallel computer. Hundreds of sites throughout the world are already using these tools to solve real problems in science, industry and medicine. In particular, PVM "has become the de facto standard for distributed computing world-wide."

PVM is available in rpm form, ready to be installed on a Red Hat Linux system. It is implemented as a set of programming libraries, a PVM daemon (pvmd) which the user must run on each computer, and a controlling program (pvm), which allows the user to start, stop and otherwise manage the actions of the pvm daemons on other computers.

Condor

Rather than high-performance computing, Condor targets "high throughput computing". The Condor system provides a set of distributed batch queues that use otherwise wasted CPU cycles on idle computers. When a user submits a job to a Condor queue, the Condor system locates an idle CPU and begins running the job on that computer. If the computer's owner returns, the Condor job is immediately checkpointed and moved to an idle machine. Rather than running a single job very quickly, Condor is designed to run as many jobs a possible in a given time. Condor currently supports Linux, OSF/1, IRIX, HPUX, Solaris and SunOS, and a Condor pool can be composed of a mixture of architectures.

Condor is available in binary form from the condor web site.

Beowulf

Beowulf is a scheme for producing a supercomputer by clustering cheap computers connected by a high-bandwidth internal network. Beowulf clusters have acheived a performance of 1 GFLOPS or more, at a price per GFLOPS less than one tenth that of conventional supercomputers. The technology behind Beowulf was developed at NASA's Center of Excellence in Space Data and Information Sciences (CESDIS) and Beowulf clusters are currently in use at a number of educational and research institutions.

Besides price, these clusters have the advantage of being easily upgradeable. New, faster, nodes can simply be dropped into place when they become available.

Beowulf clusters are typically constructed from Intel or Alpha-based PCs sharing an internal 100Mbps ethernet backplane. The network architecture can be as simple as 16 computers connected to a 16-port ethernet switch. Individual computers may be single or multi-processor.

A few Beowulf papers are listed here.

Legion

Legion is UVA's own entry in the high-performance cluster arena. Legion aims to produce a world-wide "metacomputer", composed of widely distributed components but giving the illusion of a single powerful computer. The first public release was made at Supercomputing '97, San Jose, California, on November 17, 1997.


Other Linux Clusters

Here's a sampling of other types of Linux clusters from around the world:

Purdue
Project Arminius, SCI Coupled Linux-PC's
Sandia (DAISY)
Ames Lab
University of Mannheim
CTU Prague
Max-Planck-Institut
DESY