old-www/HOWTO/Scientific-Computing-with-G.../systems.html

412 lines
9.5 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Programming systems for GNU/Linux</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Scientific Computing with Free software on GNU/Linux HOWTO "
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Graphics and Visualization"
HREF="graphvis.html"><LINK
REL="NEXT"
TITLE="
Word-Processing and Poster presenting tools on Linux
"
HREF="publish.html"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Scientific Computing with Free software on GNU/Linux HOWTO</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="graphvis.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="publish.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="systems"
></A
>7. Programming systems for GNU/Linux</H1
><P
>&#13; This section deals with links to tutorials and documents for installing
Linux on a PC, getting started with Linux, and then going a step further
-- to optimize your PC for processing power, using multiple processors
(Symmetric Muliti Processing - SMP); making a cheap, upgradeable
Supercomputing Linux cluster and finally links to software to do parallel
programming on Linux.
</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="GNULinuxWS"
></A
>7.1. The GNU/Linux Workstation</H2
><P
>&#13; As with most documentation related to GNU/Linux,
<A
HREF="http://tldp.org"
TARGET="_top"
>the Linux Documentation project's</A
>
home page is a priceless source. You might first want to read
<A
HREF="http://tldp.org/HOWTO/Installation-HOWTO/index.html"
TARGET="_top"
>&#13; The Linux Installation HOWTO</A
>. For those who want to install
Linux along with Windows might want to browse through
<A
HREF="http://www.tldp.org/HOWTO/Linux+Windows-HOWTO/index.html"
TARGET="_top"
>&#13; The Linux + Windows HOWTO</A
>. When installing Linux make sure
that you choose to install all documentation. After installing Linux,
a good, comprehensive document to getting started with using Linux is
<A
HREF="http://rute.sourceforge.net"
TARGET="_top"
>The Rute Users Tutorial and
Exposition</A
> which is a beginners guide to Linux and UNIX like
systems. I'd like to give a less intimidating (size-wise) link to a
small beginners guide, but U will find this useful after taking the
plunge. You might also want to go through <A
HREF="http://www.tldp.org/LDP/sag/index.html"
TARGET="_top"
>The Linux System
Administrator's Guide</A
> and to check out <A
HREF="http://www.tldp.org/LDP/lame/LAME/linux-admin-made-easy/index.html"
TARGET="_top"
>&#13; The Linux Administration Made Easy (LAME) guide</A
>
It attempts to describe day-to-day administration and maintenance
issues commonly faced by Linux system administrators.
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="PPSMP"
></A
>7.2. Parallel Processing and Symmetric Multiprocessing:
Supercomputing</H2
><P
>&#13; It is possible to get large volume number crunching without
spending millions of rupees on a supercomputer. You only need
to link together (by some high speed network) the requisite
number of CPUs, with GNU/LINUX as the underlying OS. Add
some freely available message passing software and a effective
parallel processing number crunching machine is made. Such
clusters are called "Beowulf clusters". The other advantages
of such a cluster other than building costs is, up-gradation
costs are minimal. The two best resources for Linux cluster
builders are
<P
></P
><UL
><LI
><P
> <A
HREF="http://www.beowulf.org"
TARGET="_top"
>The Beowulf
Project home page </A
> and </P
></LI
><LI
><P
>&#13; <A
HREF="http://www.extremelinux.org"
TARGET="_top"
>The Extreme
Linux Project</A
>
</P
></LI
></UL
>
These sites are upgraded frequently with useful information
for cluster builders.
</P
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="ppdocs"
></A
>7.2.1. Parallel computing document links</H3
><P
>&#13; You will also want to read this excellent article on
<A
HREF="http://freshmeat.net/articles/view/458/"
TARGET="_top"
>Linux
Clustering Software</A
> (and the large variety of links
it provides) by Joe Greenseid. I hope to go through the links
and include them subsequently in this HOWTO.
</P
><P
>&#13; Other free document links for parallel processing are:
</P
><P
></P
><UL
><LI
><P
>&#13; <A
HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/Beowulf-HOWTO"
TARGET="_top"
>&#13; The Beowulf Howto </A
>:
This document introduces the Beowulf Supercomputer architecture
and provides background information on parallel programming,
including links to other more specific documents, and web pages.
But, before that for an understanding of parallel processing and
Symmetric multiprocessing on Linux, check out the following:
</P
></LI
><LI
><P
>&#13; <A
HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/Parallel-Processing-HOWTO"
TARGET="_top"
>&#13; The Parallel Processing on Linux HOWTO</A
>
</P
></LI
><LI
><P
>&#13; <A
HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/SMP-HOWTO"
TARGET="_top"
>&#13; The Symmetric Multiprocessing HOWTO</A
>
</P
></LI
></UL
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="PPSW"
></A
>7.2.2. Parallel processing software for Linux</H3
><P
>&#13; Now after reading the above documents, you have an idea of parallel
processing. Parallel program libraries are the core of parallel processing
on a Linux cluster. There are various free implementations of parallel
processing libraries. Since parallel processing is all about performance,
these libraries have some very nice functional tools to analyze your parallel
program performance. Given below is a set of links to these parallel
program libraries and tools.
</P
><P
></P
><UL
><LI
><P
>&#13; <A
HREF="http://www-unix.mcs.anl.gov/mpi"
TARGET="_top"
>&#13; Message Passing Interface</A
>:
MPI is a standard specification of message passing libraries. The above
document gives a lot of links to documents on the standard, etc.. A MPI
implementation for Linux
<A
HREF="http://www-unix.mcs.anl.gov/mpi/mpich"
TARGET="_top"
>mpich</A
> is also
available at that site. There are a lot of documents for
<A
HREF="http://www-unix.mcs.anl.gov/mpi/tools.html"
TARGET="_top"
>Learning to use MPI
</A
>.
</P
></LI
><LI
><P
>&#13; <A
HREF="http://www.lam-mpi.org/"
TARGET="_top"
>Local Area Multicomputer
- LAM</A
>:
LAM (Local Area Multicomputer) is an MPI programming environment and
development system for heterogeneous computers on a network.
With LAM, a dedicated cluster or an existing network computing
infrastructure can act as one parallel computer solving one problem.
LAM features extensive debugging support in the application development
cycle and peak performance for production applications. LAM features a
full implementation of the MPI communication standard.
You can download the sources (tar-zipped, rpm) or binaries from
<A
HREF="http://www.lam-mpi.org/download/"
TARGET="_top"
>here</A
>
A host of MPI tutorial links and also a `getting started with LAM'
tutorial is available <A
HREF="http://www.lam-mpi.org/tutorials/"
TARGET="_top"
>&#13; here</A
>
</P
></LI
><LI
><P
>&#13; <A
HREF="http://www.epm.ornl.gov/pvm/pvm_home.html"
TARGET="_top"
>&#13; Parallel Virtual Machine </A
>:
As the PVM home page describes, it is a software package that permits
a heterogeneous collection of Unix and/or NT computers hooked together
by a network to be used as a single large parallel computer. Thus large
computational problems can be solved more cost effectively by using the
aggregate power and memory of many computers. The software is very
portable. The source, which is available free thru netlib, has been
compiled on everything from laptops to CRAYs.
</P
></LI
><LI
><P
>&#13; <A
HREF="http://ganglia.sourceforge.net"
TARGET="_top"
>Ganglia</A
>:
Ganglia is an open source cluster monitoring and execution environment
developed at the University of California, Berkeley Computer Science
Division. As the above link describes it, "Ganglia is as simple to
install and use on a 16-node cluster as it is to use on a 512-node
cluster as has been proven by its use on multiple 500+ node clusters".
It not only can link nodes in a cluster, but also link clusters to other
clusters.
</P
></LI
></UL
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="graphvis.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="publish.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Graphics and Visualization</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Word-Processing and Poster presenting tools on Linux</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>