A wide variety of free and commercial applications are available for Linux. Among those that make heavy use of the CPU are:
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:
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.
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 ("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.
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 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
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.
Here's a sampling of other types of Linux clusters from around the world: