2434 lines
62 KiB
HTML
2434 lines
62 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Scientific Computing with Free software on GNU/Linux HOWTO </TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"></HEAD
|
|
><BODY
|
|
CLASS="article"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="ARTICLE"
|
|
><DIV
|
|
CLASS="TITLEPAGE"
|
|
><H1
|
|
CLASS="title"
|
|
><A
|
|
NAME="AEN2"
|
|
></A
|
|
>Scientific Computing with Free software on GNU/Linux HOWTO</H1
|
|
><H3
|
|
CLASS="author"
|
|
><A
|
|
NAME="AEN4"
|
|
>Manoj Warrier</A
|
|
></H3
|
|
><DIV
|
|
CLASS="affiliation"
|
|
><DIV
|
|
CLASS="address"
|
|
><P
|
|
CLASS="address"
|
|
><TT
|
|
CLASS="email"
|
|
><<A
|
|
HREF="mailto:m_war (at) users.sourceforge.net"
|
|
>m_war (at) users.sourceforge.net</A
|
|
>></TT
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><H3
|
|
CLASS="author"
|
|
><A
|
|
NAME="AEN10"
|
|
>Shishir Deshpande</A
|
|
></H3
|
|
><DIV
|
|
CLASS="affiliation"
|
|
><DIV
|
|
CLASS="address"
|
|
><P
|
|
CLASS="address"
|
|
><TT
|
|
CLASS="email"
|
|
><<A
|
|
HREF="mailto:shishir (at) ipr.res.in"
|
|
>shishir (at) ipr.res.in</A
|
|
>></TT
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><H3
|
|
CLASS="author"
|
|
><A
|
|
NAME="AEN16"
|
|
>V. S. Ashoka</A
|
|
></H3
|
|
><DIV
|
|
CLASS="affiliation"
|
|
><DIV
|
|
CLASS="address"
|
|
><P
|
|
CLASS="address"
|
|
><TT
|
|
CLASS="email"
|
|
><<A
|
|
HREF="mailto:ashok (at) rri.res.in"
|
|
>ashok (at) rri.res.in</A
|
|
>></TT
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><P
|
|
CLASS="pubdate"
|
|
>2003-10-03<BR></P
|
|
><DIV
|
|
CLASS="revhistory"
|
|
><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
><TR
|
|
><TH
|
|
ALIGN="LEFT"
|
|
VALIGN="TOP"
|
|
COLSPAN="3"
|
|
><B
|
|
>Revision History</B
|
|
></TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
>Revision 1.2</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
>2004-10-19</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
>Revised by: M. W</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
COLSPAN="3"
|
|
>1 Correction and new additional links</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
>Revision 1.1</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
>2004-06-21</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
>Revised by: M. W</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
COLSPAN="3"
|
|
>Updates and evaluated distros</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
>Revision 1.0</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
>2003-11-18</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
>Revised by: JP</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
COLSPAN="3"
|
|
>Document Reviewed by LDP.</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
>Revision 0.0</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
>2003-10-01</TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
>Revised by: M. W</TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
COLSPAN="3"
|
|
>first draft proposed</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><DIV
|
|
><DIV
|
|
CLASS="abstract"
|
|
><A
|
|
NAME="AEN44"
|
|
></A
|
|
><P
|
|
></P
|
|
><P
|
|
> This document aims to show how a PC running GNU/Linux can be used
|
|
for scientific computing. It lists the various available free software
|
|
and also links on the world wide web to tutorials on getting started
|
|
with the tools.
|
|
</P
|
|
><P
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><HR></DIV
|
|
><DIV
|
|
CLASS="TOC"
|
|
><DL
|
|
><DT
|
|
><B
|
|
>Table of Contents</B
|
|
></DT
|
|
><DT
|
|
>1. <A
|
|
HREF="#preamble"
|
|
>Preamble</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>1.1. <A
|
|
HREF="#copyright"
|
|
>Copyright and License</A
|
|
></DT
|
|
><DT
|
|
>1.2. <A
|
|
HREF="#disclaimer"
|
|
>Disclaimer</A
|
|
></DT
|
|
><DT
|
|
>1.3. <A
|
|
HREF="#motive"
|
|
>Motivation</A
|
|
></DT
|
|
><DT
|
|
>1.4. <A
|
|
HREF="#credits"
|
|
>Credits / Contributors</A
|
|
></DT
|
|
><DT
|
|
>1.5. <A
|
|
HREF="#feedback"
|
|
>Feedback</A
|
|
></DT
|
|
><DT
|
|
>1.6. <A
|
|
HREF="#translations"
|
|
>Translations</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>2. <A
|
|
HREF="#intro"
|
|
>Introduction</A
|
|
></DT
|
|
><DT
|
|
>3. <A
|
|
HREF="#devtools"
|
|
>Code Development Tools</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>3.1. <A
|
|
HREF="#ProgLang"
|
|
>Programming Languages</A
|
|
></DT
|
|
><DT
|
|
>3.2. <A
|
|
HREF="#DebugTool"
|
|
>Debugging Tools</A
|
|
></DT
|
|
><DT
|
|
>3.3. <A
|
|
HREF="#VCT"
|
|
>Version Control Tools</A
|
|
></DT
|
|
><DT
|
|
>3.4. <A
|
|
HREF="#IDE"
|
|
>Integrated Development Environments</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>4. <A
|
|
HREF="#mathpack"
|
|
>Mathematics Packages</A
|
|
></DT
|
|
><DT
|
|
>5. <A
|
|
HREF="#numlib"
|
|
>Numerical Methods and Libraries</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>5.1. <A
|
|
HREF="#Repositories"
|
|
>Repositories</A
|
|
></DT
|
|
><DT
|
|
>5.2. <A
|
|
HREF="#AEN292"
|
|
>Other topic specific numerical libraries</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>6. <A
|
|
HREF="#graphvis"
|
|
>Graphics and Visualization</A
|
|
></DT
|
|
><DT
|
|
>7. <A
|
|
HREF="#systems"
|
|
>Programming systems for GNU/Linux</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>7.1. <A
|
|
HREF="#GNULinuxWS"
|
|
>The GNU/Linux Workstation</A
|
|
></DT
|
|
><DT
|
|
>7.2. <A
|
|
HREF="#PPSMP"
|
|
>Parallel Processing and Symmetric Multiprocessing:
|
|
Supercomputing</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>8. <A
|
|
HREF="#publish"
|
|
>Word-Processing and Poster presenting tools on Linux</A
|
|
></DT
|
|
><DD
|
|
><DL
|
|
><DT
|
|
>8.1. <A
|
|
HREF="#wp"
|
|
>Word Processing Tools</A
|
|
></DT
|
|
><DT
|
|
>8.2. <A
|
|
HREF="#ppt"
|
|
>Poster presentation tools</A
|
|
></DT
|
|
></DL
|
|
></DD
|
|
><DT
|
|
>9. <A
|
|
HREF="#database"
|
|
>Free Database Management Systems for Linux</A
|
|
></DT
|
|
><DT
|
|
>10. <A
|
|
HREF="#lablinux"
|
|
>Linux in the laboratory</A
|
|
></DT
|
|
></DL
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect1"
|
|
><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="preamble"
|
|
></A
|
|
>1. Preamble</H1
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="copyright"
|
|
></A
|
|
>1.1. Copyright and License</H2
|
|
><P
|
|
> This document, <EM
|
|
>Scientific Computing with free software on GNU/Linux HOWTO</EM
|
|
>,
|
|
is copyrighted (c) 2002 by <EM
|
|
>Manoj Warrier</EM
|
|
>.
|
|
Permission is granted to copy, distribute and/or modify this document under the terms of the
|
|
GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation;
|
|
with no Invariant Sections,
|
|
with no Front-Cover Texts, and with no Back-Cover Texts.
|
|
A copy of the license is available
|
|
<A
|
|
HREF="http://www.gnu.org/licenses/licenses.html#FDL"
|
|
TARGET="_top"
|
|
> here</A
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="disclaimer"
|
|
></A
|
|
>1.2. Disclaimer</H2
|
|
><P
|
|
> No liability for the contents of this document is accepted.
|
|
Use of the concepts, examples, links and information is entirely at
|
|
your own risk.
|
|
There may be errors and inaccuracies, that could damage your system,
|
|
waste your time, etc... Proceed with caution, and although
|
|
this is unlikely, the author takes no responsibility whatsoever.
|
|
</P
|
|
><P
|
|
> All copyrights are held by their respective owners, unless
|
|
specifically noted otherwise. Use of a term in this document
|
|
should not be regarded as affecting the validity of any trademark
|
|
or service mark. Naming of particular products, software or
|
|
brands should not be seen as endorsements
|
|
</P
|
|
><P
|
|
> I have not used many of the software applications to which links are provided.
|
|
There are simply too many applications that do the same thing,
|
|
that one cannot be expected to have used all of them. In a book
|
|
on Scientific Computing using GNU/Linux, one would
|
|
mention ones favorite tool to carry out a task and describe it in
|
|
detail. However this is a howto providing links to various
|
|
available free tools for scientific computing and may contain
|
|
links to some software that promises much but delivers little
|
|
and vice versa.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="motive"
|
|
></A
|
|
>1.3. Motivation</H2
|
|
><P
|
|
> This howto mainly consists of the links provided at
|
|
http://Scilinux.sourceforge.net which has to be disbanded due to a name
|
|
conflict. The best alternative seems to be to make it a Linux document
|
|
and host it at the LDP site. Another reason is that there seems to be
|
|
many free software applications doing the same things. We hope to provide links to
|
|
the available software thereby making it easy for the scientific community
|
|
to make a choice without spending much time.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="credits"
|
|
></A
|
|
>1.4. Credits / Contributors</H2
|
|
><P
|
|
> In this document, I have the pleasure of acknowledging:
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> Linus Trovalds, Richard M. Stallman and their merry men for
|
|
Linux, GNU and also for indirectly broadening various
|
|
perspectives which were not really obvious.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> A host of colleagues and friends from the
|
|
<EM
|
|
> Institute for Plasma Research, India </EM
|
|
>
|
|
for discussions at various times.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Marcel Bose, Ivan Lamouret, K. Scott Hunziker, Livine Christin,
|
|
W. Herbert, Simon Pinches and many others for suggesting various
|
|
links mentioned in this document.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Vasudha my wife for letting me do what I wish and egging me on
|
|
with comments like "let us hope that you will finish at least
|
|
this project"
|
|
</P
|
|
></LI
|
|
></UL
|
|
><P
|
|
> Shishir and Ashoka are co-authors of this document because such a
|
|
collection of links was Shishir's idea and Ashoka is always
|
|
contributing by providing links, suggestions and a second point
|
|
of view. They will be helping me maintain this HOWTO too.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="feedback"
|
|
></A
|
|
>1.5. Feedback</H2
|
|
><P
|
|
> Feedback is most certainly welcome for this document. Send
|
|
your additions, comments and criticisms to the following
|
|
email address : <TT
|
|
CLASS="email"
|
|
><<A
|
|
HREF="mailto:m_war at users.sourceforge.net"
|
|
>m_war at users.sourceforge.net</A
|
|
>></TT
|
|
>.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="translations"
|
|
></A
|
|
>1.6. Translations</H2
|
|
><P
|
|
> No translations yet.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect1"
|
|
><HR><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="intro"
|
|
></A
|
|
>2. Introduction</H1
|
|
><P
|
|
> GNU/Linux is probably the platform of choice for scientific
|
|
computing. There exists a wide variety of high level languages,
|
|
debugging tools and other code development tools for
|
|
programming, numerical subroutines for solving various types of
|
|
equations, plotting and visualization packages, word processing
|
|
software which can display equations and figures and in fact parallel
|
|
programming software to construct a supercomputer with off the shelf
|
|
PC parts and some hardware. This document aims to provide a list
|
|
of <EM
|
|
> free software </EM
|
|
> for carrying out the above
|
|
tasks and links to tutorials and other documents on how to setup and
|
|
use these software applications.
|
|
</P
|
|
><P
|
|
> This document does not aim to provide links to subject specific free
|
|
software available for GNU/Linux systems. It aims to show how
|
|
GNU/Linux can be used best to handle scientific computing tasks.
|
|
It is hoped that people or institutions with interest in a
|
|
specific subject list, compile a list of the free software available
|
|
for that subject ... for example see <EM
|
|
>Linux for Astronomy,
|
|
Linux for Biotechnology </EM
|
|
> and <EM
|
|
> Linux for
|
|
Chemistry </EM
|
|
> at
|
|
<A
|
|
HREF="http://www.randomfactory.com"
|
|
TARGET="_top"
|
|
>The Random Factory
|
|
</A
|
|
>. Another site with a lot of links (to commercial and
|
|
free) scientific software is
|
|
<A
|
|
HREF="http://SAL.KachinaTech.COM"
|
|
TARGET="_top"
|
|
>Scientific Applications
|
|
on Linux</A
|
|
>. The <A
|
|
HREF="http://www.gnu.org/directory/science/"
|
|
TARGET="_top"
|
|
> GNU Software Directory</A
|
|
> also has links to many of the links
|
|
provided in this howto plus many more topic specific software.
|
|
You may also want to check out <A
|
|
HREF="http://freshmeat.net/browse/97/"
|
|
TARGET="_top"
|
|
> The Science and Engineering</A
|
|
> section at Freshmeat.net.
|
|
</P
|
|
><P
|
|
> The software links provided are classified into
|
|
<P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="./devtools.html"
|
|
TARGET="_top"
|
|
>Code development tools</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="./mathpack.html"
|
|
TARGET="_top"
|
|
>Mathematics packages</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="./numlib.html"
|
|
TARGET="_top"
|
|
>Numerical subroutines and libraries</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="./graphvis.html"
|
|
TARGET="_top"
|
|
>Graphics and visualization</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="./systems.html"
|
|
TARGET="_top"
|
|
>GNU/Linux Systems</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="./publish.html"
|
|
TARGET="_top"
|
|
>Publishing tools</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="./database.html"
|
|
TARGET="_top"
|
|
>Databases</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="./lablinux.html"
|
|
TARGET="_top"
|
|
>Linux in the Laboratory</A
|
|
>
|
|
</P
|
|
></LI
|
|
></UL
|
|
>
|
|
</P
|
|
><P
|
|
> Just installing GNU/Linux on your PC makes it a powerful workstation.
|
|
The various popular distributions however do not have all the tools
|
|
needed to make it the ideal scientific computing machine. This HOWTO
|
|
aims to fill in this gap by creating a list of free software useful
|
|
for scientific computing. It is assumed that people reading this
|
|
document already have a PC with Linux and the GNU utilities installed.
|
|
For those who do not have such a setup and want to install GNU-Linux
|
|
can check out <A
|
|
HREF="./GNULinuxWS.html"
|
|
TARGET="_top"
|
|
>GNU/Linux Systems</A
|
|
>
|
|
for links to documents on installing GNU/Linux, and also on how to get
|
|
started using GNU/Linux. Recently there has been an effort by Dirk
|
|
Eddelbuettel to create a scientific computing environment
|
|
<A
|
|
HREF="http://dirk.eddelbuettel.com/quantian.html"
|
|
TARGET="_top"
|
|
>Quantian</A
|
|
>
|
|
which probably is the first GNU-Linux distribution tailored for
|
|
Scientists. I checked out the latest release and it has almost
|
|
all the packages mentioned in this document and many packages
|
|
not mentioned. It is fair to say that if you have any linux distribution
|
|
in which the packages are managed by rpms or any debian based system,
|
|
you will find pre-compiled binaries of these packages and will not
|
|
have to waste much time installing them.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect1"
|
|
><HR><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="devtools"
|
|
></A
|
|
>3. Code Development Tools</H1
|
|
><P
|
|
> Code development consists of mainly Programming languages,
|
|
Debugging tools, Version Management tools, Compiling tools,
|
|
and Integrated Development Environments (IDEs) where all
|
|
the above are coupled as a single software application.
|
|
</P
|
|
><DIV
|
|
CLASS="sect2"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="ProgLang"
|
|
></A
|
|
>3.1. Programming Languages</H2
|
|
><P
|
|
> Links are provided to various compilers used in Scientific
|
|
Computing like FORTRAN, C, C++, Java and more recently
|
|
Python.
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://gcc.gnu.org/"
|
|
TARGET="_top"
|
|
>GNU Compiler Collection
|
|
</A
|
|
>:
|
|
GNU's project to produce a world class optimizing compiler.
|
|
It works on multiple architectures and diverse environments.
|
|
Currently GCC contains front ends for C, C++, Objective C,
|
|
GNU Fortran-95, Java, and Ada, as well as libraries for these languages
|
|
(libstdc++, libgcj,..).
|
|
</P
|
|
><P
|
|
> For manuals on using the various GCC compilers check out
|
|
<A
|
|
HREF="http://www.gnu.org/software/gcc/onlinedocs/"
|
|
TARGET="_top"
|
|
> The GCC online documentation</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="ftp://ftp.gnu.org/gnu/g77/index.html"
|
|
TARGET="_top"
|
|
>g77
|
|
</A
|
|
>:
|
|
The GCC front end for FORTRAN 77. It is a very good FORTRAN77
|
|
compiler. It however does not have the -r8 option which compiles
|
|
a program as double precision. This could be a good compiler
|
|
design philosophy but in many cases gives problems when porting
|
|
a code from SUN / DEC / HP workstations onto Linux systems.
|
|
The g77 manual is available at
|
|
<A
|
|
HREF="http://gcc.gnu.org/onlinedocs/g77/"
|
|
TARGET="_top"
|
|
>The Gcc Online
|
|
documentation</A
|
|
> site.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://gcc.gnu.org/fortran/"
|
|
TARGET="_top"
|
|
>gfortran</A
|
|
>.
|
|
I was happy to receive this link by mail. It was 3 years since I had
|
|
migrated to using the GNU C compiler for scientific computing because
|
|
there was no "truly free" FORTRAN-95 compiler available then. I thank
|
|
Paul Thomas for this link.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://g95.sourceforge.net"
|
|
TARGET="_top"
|
|
>g95</A
|
|
>.
|
|
gfortran above and g95 are reportedly offshoots from the same CVS tree.
|
|
Has an impressive list of programs that compiles and runs using this
|
|
compiler.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.llnl.gov/casc/Overture/henshaw/install/node6.html"
|
|
TARGET="_top"
|
|
> fort77 and f2c</A
|
|
>:
|
|
fort77 is a perl program which invokes the f2c command
|
|
(a Fortran to C translator) transparently, so it can
|
|
be used just like a real Fortran compiler. Fort77 can
|
|
be used to compile Fortran, C and assembler code and
|
|
can link the code with f2c libraries. If you install
|
|
fort77, you'll also need to install the f2c package.
|
|
This does not have the "-r8" problem. You can download
|
|
fort77 and f2c from the above link.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://lush.sourceforge.net"
|
|
TARGET="_top"
|
|
>lush</A
|
|
>:
|
|
An object-oriented programming language, which combines the flexibility
|
|
of an interpretive language, with the efficiency of a compiled language.
|
|
It has full interfaces to numerical libraries (GSL, LAPACK, BLAS),
|
|
graphics libraries (OpenGL), which allows creation of graphics and 3D
|
|
animations and many other features that sound too good to be
|
|
true. I have not yet tried this out, but it sounds very promising.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="http://www.python.org/topics/scicomp/"
|
|
TARGET="_top"
|
|
> Scientific Python</A
|
|
>:
|
|
You may want to explore
|
|
<A
|
|
HREF="http://www.python.org"
|
|
TARGET="_top"
|
|
>Python</A
|
|
> for your
|
|
scientific computing needs. Python is an interpreted,
|
|
interactive, object-oriented programming language.
|
|
|
|
It has a number of extensions for numerics, plotting,
|
|
data storage and combined with Tk lets you develop very
|
|
good GUIs for your codes. The most exciting aspect is that
|
|
it simplifies programming because it has modules for almost
|
|
anything (vectors, tensors, transformations, derivatives,
|
|
linear algebra, Fourier transforms, statistics, etc ...) are
|
|
available. You can also wrap C and Fortran libraries from
|
|
Python. Finally if you want to write a numerical scheme of
|
|
your own you may find that it is simpler in Python.
|
|
There are also interfaces to netCDF (portable binary files),
|
|
MPI and BSPlib (parallel programming).
|
|
</P
|
|
><P
|
|
> You can further explore Python for Scientific computing here:
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://starship.python.net/crew/hinsen/scientific.html"
|
|
TARGET="_top"
|
|
> Scientific-Python</A
|
|
>:
|
|
A collection of modules for scientific computing on Python.
|
|
All the necessary modules can be downloaded as either a tar file
|
|
or an RPM file from here. The maintainer Konrad HINSEN also has
|
|
a nice tutorial on
|
|
<A
|
|
HREF="http://starship.python.net/crew/hinsen/tutorial.ps"
|
|
TARGET="_top"
|
|
> Scientific Computing in Python</A
|
|
>.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.scipy.org"
|
|
TARGET="_top"
|
|
>SciPy</A
|
|
> An open source
|
|
library of scientific tools for Python. It includes modules for
|
|
graphics and plotting, optimization, integration, special
|
|
functions, signal and image processing, genetic algorithms,
|
|
ODE solvers, etc.
|
|
</P
|
|
></LI
|
|
></UL
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="DebugTool"
|
|
></A
|
|
>3.2. Debugging Tools</H2
|
|
><P
|
|
> In this section links are given to mainly debugging tools for GCC and
|
|
FORTRAN. I understand that python has a debugging module built in though I
|
|
have not used it. The purpose of a debugger is to allow you to see what is
|
|
going on inside a program while it executes or what the program was doing
|
|
when/if it crashed.
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="http://www.dsm.fordham.edu/~ftnchek"
|
|
TARGET="_top"
|
|
>Ftnchek:</A
|
|
>
|
|
A FORTRAN checker designed to detect errors in a Fortran
|
|
program that a compiler usually does not. Therefore it is best
|
|
to run ftnchek on your FORTRAN programs after it has compiled
|
|
without errors. Its purpose is to assist the user in finding
|
|
semantic errors. Semantic errors are legal in the Fortran
|
|
language but are wasteful or may cause incorrect operation.
|
|
An on-line <A
|
|
HREF="http://www.dsm.fordham.edu/~ftnchek/html/"
|
|
TARGET="_top"
|
|
> manual</A
|
|
> is available. This project is looking for volunteers
|
|
to bringing ftnchek up to the Fortran 90 standard.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.gnu.org/software/gdb/gdb.html"
|
|
TARGET="_top"
|
|
>gdb
|
|
</A
|
|
>:
|
|
All programs written in the languages supported by GCC can be
|
|
debugged using <EM
|
|
>gdb</EM
|
|
>, an excellent interactive,
|
|
command line debugger. You can compile your programs using a -g option
|
|
which then compiles your code with debugging information inserted
|
|
into the executable. It can start your programs, stop your programs
|
|
on specified conditions and at specified locations, examine what
|
|
happened when your program stops. In a large code with multiple
|
|
cascading calls to various functions it can back trace the function
|
|
calls. You can also
|
|
<A
|
|
HREF="http://sources.redhat.com/gdb/current/onlinedocs/"
|
|
TARGET="_top"
|
|
>Download
|
|
the document</A
|
|
> <EM
|
|
>Debugging with GDB</EM
|
|
> and
|
|
a quick reference card.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="ftp://ftp.x.org/contrib/utilities/"
|
|
TARGET="_top"
|
|
>xxgdb:</A
|
|
>
|
|
It is a front end to the gdb debugger. Useful for beginners
|
|
to gdb as it lists out the whole gdb commands as buttons with a area
|
|
for viewing source on which one can include break points, etc by a
|
|
click of the mouse, and another area for viewing the debugging results.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.gnu.org/software/ddd/ddd.html"
|
|
TARGET="_top"
|
|
>DDD:
|
|
</A
|
|
>
|
|
The GNU Data Display Debugger, GNU DDD, is a graphical front-end for
|
|
command-line debuggers such as GDB, DBX, WDB, Ladebug, JDB, XDB, the
|
|
Perl debugger, or the Python debugger. Besides ``usual'' front-end
|
|
features such as viewing source texts it also has a good interactive
|
|
graphical data display, where data structures are displayed as graphs.
|
|
Follow this link for a <A
|
|
HREF="http://www.gnu.org/manual/ddd/"
|
|
TARGET="_top"
|
|
> DDD manual</A
|
|
> in postscript / HTML / PDF format.
|
|
</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="VCT"
|
|
></A
|
|
>3.3. Version Control Tools</H2
|
|
><P
|
|
> It will be worth your while investing some time in learning to use
|
|
one of the version control tools below (cvs is what I use ..) if you
|
|
are into any serious code development.
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.cvshome.org/dev/codelinux.html"
|
|
TARGET="_top"
|
|
> Concurrent Versions System </A
|
|
>:
|
|
CVS is one of the most popular version control systems running on the
|
|
Linux operating system. Popular Linux projects like Apache, EGCS, GIMP,
|
|
and others are using CVS to coordinate their efforts ... This is how
|
|
the URL linked above describes their effort.
|
|
</P
|
|
><P
|
|
> A tutorial on CVS is available at <A
|
|
HREF="http://www.gentoo.org/doc/cvs-tutorial.html"
|
|
TARGET="_top"
|
|
> Gentoo Linux Documentation</A
|
|
> and a free CVS book is available
|
|
<A
|
|
HREF="http://cvsbook.red-bean.com/"
|
|
TARGET="_top"
|
|
>here</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.xcf.berkeley.edu/~jmacd/prcs.html"
|
|
TARGET="_top"
|
|
> Project Revision Control System </A
|
|
>:
|
|
PRCS, the Project Revision Control System, is the front end to a set of
|
|
tools that (like CVS) provide a way to deal with sets of files and
|
|
directories as an entity, preserving coherent versions of the entire set.
|
|
PRCS was designed primarily by Paul N. Hilfinger, with input and
|
|
modifications by Luigi Semenzato and Josh MacDonald. PRCS is written and
|
|
maintained by Josh MacDonald. Its purpose is similar to that of SCCS,
|
|
RCS, and CVS, but (according to its authors, at least), it is much simpler
|
|
than any of those systems. This page is where information on the latest
|
|
developments in PRCS can be found. </P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="http://www.cryon.com/gbuild/"
|
|
TARGET="_top"
|
|
>Gbuild</A
|
|
> :
|
|
gbuild is a script written in the Bourne shell language to simplify
|
|
package maintenance by allowing you to automate code update from CVS,
|
|
compilation, building tar/rpms/srpms of your package. some external
|
|
scripts which certain functions of gbuild depend on are written in Perl.
|
|
gbuild is released under the GPL.
|
|
</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="IDE"
|
|
></A
|
|
>3.4. Integrated Development Environments</H2
|
|
><P
|
|
> Integrated development environments (IDEs) can be very useful for
|
|
building code and ideally come with all the above tools (i.e a compiler,
|
|
a debugger and a version control tool). In addition to that IDEs also
|
|
usually provide a makefile generator, documenting help, online help
|
|
manuals, etc.
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.kdevelop.org/"
|
|
TARGET="_top"
|
|
> Kdeveloper </A
|
|
>:
|
|
A easy to use C/C++ IDE (Integrated Development Environment) for Linux.
|
|
It supports KDE/Qt, GNOME, plain C and C++ projects. This site has a lot
|
|
of documentation ..... a highly browsable site for software developers.
|
|
Specifically, KDevelop manages or provides:
|
|
</P
|
|
><P
|
|
> All development tools needed for C++ programming like Compiler,
|
|
Linker, automake and autoconf; KAppWizard, which generates complete,
|
|
ready-to-go sample applications; Class generator, for creating new
|
|
classes and integrating them into the current project; File management
|
|
for sources, headers, documentation etc. to be included in the
|
|
project; The creation of User-Handbooks written with SGML and the
|
|
automatic generation of HTML-output with the KDE look and feel;
|
|
Automatic HTML-based API-documentation for your project's classes with
|
|
cross-references to the used libraries; Internationalization support
|
|
for your application, allowing translators to easily add their target
|
|
language to a project;
|
|
KDevelop also includes WYSIWYG (What you see is what you get)-creation
|
|
of user interfaces with a built-in dialog editor; Debugging your
|
|
application by integrating KDbg; Editing of project-specific pixmaps
|
|
with KIconEdit; The inclusion of any other program you need for
|
|
development by adding it to the "Tools"-menu according to your
|
|
individual needs.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://vdkbuilder.sourceforge.net/"
|
|
TARGET="_top"
|
|
>VDKbuilder</A
|
|
>:
|
|
VDKbuilder is a tool that helps programmers in constructing GUI interfaces,
|
|
editing, compiling, linking, and debugging within an integrated environment.
|
|
Using VDKBuilder dramatically reduces developing time since all code related
|
|
to GUI construction and signal processing is automatically generated,
|
|
maintained and updated. It is distributed under the GNU Public License.
|
|
Visit the site for downloading the software.
|
|
</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect1"
|
|
><HR><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="mathpack"
|
|
></A
|
|
>4. Mathematics Packages</H1
|
|
><P
|
|
> All the links below are free high level languages and Mathematics Packages
|
|
for Scientific Computation on Linux. These packages are usually like a
|
|
Mathematical Laboratory in which numerical computations can be done and
|
|
usually have their own interpreted language. They either link to a
|
|
popular (free) plotting package or have their own graphics and plotting
|
|
capability. They also provide capability to I/O files and interface
|
|
with other programming languages like C, C++, Fortran, etc ... Now a days
|
|
some of them have parallel programming capabilities. I have not included
|
|
<A
|
|
HREF="http://www.mupad.de/"
|
|
TARGET="_top"
|
|
>MuPAD</A
|
|
>, a good symbolic math
|
|
package, since is not really free. Check out if their most
|
|
<A
|
|
HREF="http://www.sciface.com/personal.shtml"
|
|
TARGET="_top"
|
|
> free license</A
|
|
>
|
|
suits you.
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.octave.org/"
|
|
TARGET="_top"
|
|
>Octave</A
|
|
>:
|
|
An excellent package for numerical computations.
|
|
It uses gnuplot for plotting
|
|
and has a online help. It is also easily extensible (i.e. new functions,
|
|
procedures can be written) either using its own language or by using
|
|
dynamically loadable modules written in C, C++, Fortran or other languages.
|
|
An extensive manual is available
|
|
<A
|
|
HREF="http://www.octave.org/doc/octave_toc.html"
|
|
TARGET="_top"
|
|
>here</A
|
|
>.
|
|
You can get a GNOME based front end for it
|
|
<A
|
|
HREF="http://freshmeat.net/projects/goctave/"
|
|
TARGET="_top"
|
|
>here</A
|
|
>.
|
|
It is distributed under the GNU Public License.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www-rocq.inria.fr/scilab/"
|
|
TARGET="_top"
|
|
>Scilab</A
|
|
>:
|
|
Another superb package numerical computations having a good user interface
|
|
and a very good online click-able help. Its plotting and graphic capabilities
|
|
are also very impressive. It also provides for easy interfacing with Fortran
|
|
and C. It has its own
|
|
<A
|
|
HREF="http://www-rocq.inria.fr/scilab/license.txt"
|
|
TARGET="_top"
|
|
>free license</A
|
|
>.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://wuarchive.wustl.edu/languages/yorick/doc/index.html"
|
|
TARGET="_top"
|
|
> Yorick</A
|
|
>:
|
|
Yorick is a fast, interpreted language, designed for scientific computing and
|
|
numerical analysis. The syntax is similar to C, but the variables need not
|
|
be declared. It offers an interactive graphics package based on X windows.
|
|
X-Y plots, quadrilateral meshes, filled meshes, cell arrays, and contours are
|
|
supported. You can embed compiled routines in Yorick to solve problems for
|
|
which the interpreter is too slow. It is also useful as a pre and post
|
|
processor for large physical simulation programs. A tutorial like manual
|
|
is available
|
|
<A
|
|
HREF="http://wuarchive.wustl.edu/languages/yorick/doc/manual/yorick.html"
|
|
TARGET="_top"
|
|
> here</A
|
|
>.
|
|
Yorick is open source software,
|
|
<A
|
|
HREF="http://wuarchive.wustl.edu/languages/yorick/doc/copyright.html"
|
|
TARGET="_top"
|
|
> copyright</A
|
|
> of the Regents of the University of California.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://algae.sourceforge.net/"
|
|
TARGET="_top"
|
|
>Algae</A
|
|
>:
|
|
As the above link describes it, Algae is a interpreted language for
|
|
numerical analysis. It was developed as a fast and versatile
|
|
tool, capable of handling large problems. Algae consists of the programming
|
|
language Algae, and algae, the interpreter.
|
|
Its features include speed (generally much faster than octave, RLaB
|
|
and Scilab), storage of sparse arrays and a code profiling capability
|
|
(to check where your code spends its time). A user manual is available
|
|
<A
|
|
HREF="http://algae.sourceforge.net/algae.html"
|
|
TARGET="_top"
|
|
>here</A
|
|
>.
|
|
It is distributed under the GNU General Public License.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://yacas.sourceforge.net/"
|
|
TARGET="_top"
|
|
>YACAS</A
|
|
>:
|
|
As the above link describes it, "YACAS is an easy to use, general purpose
|
|
Computer Algebra System, a program for symbolic manipulation of
|
|
mathematical expressions. It uses its own programming language designed for
|
|
symbolic as well as arbitrary-precision numerical computations". Links to
|
|
documentation (user manual, tutorial, etc ..) is available
|
|
<A
|
|
HREF="http://yacas.sourceforge.net/manindex.html"
|
|
TARGET="_top"
|
|
>here</A
|
|
>.
|
|
It is distributed under the GNU General Public License.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://rlab.sourceforge.net/"
|
|
TARGET="_top"
|
|
>RLAB</A
|
|
>:
|
|
The above link describes it thus, "Rlab is an interactive, interpreted
|
|
scientific programming environment. Rlab is a very high level language
|
|
intended to provide fast prototyping and program development, as well
|
|
as easy data-visualization, and processing". It is distributed under the
|
|
GNU General Public License. The author Ian Searle has written an article in
|
|
<A
|
|
HREF="http://www.linuxjournal.com/"
|
|
TARGET="_top"
|
|
>The Linux Journal</A
|
|
> titled
|
|
<A
|
|
HREF="http://rlab.sourceforge.net/lj/lj.html"
|
|
TARGET="_top"
|
|
>An Introduction to Rlab
|
|
</A
|
|
>
|
|
which as he reminds us, is a bit dated, and a
|
|
<A
|
|
HREF="http://rlab.sourceforge.net/html/rlab-ref.html"
|
|
TARGET="_top"
|
|
> Reference Manual</A
|
|
> is also available.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://maxima.sourceforge.net"
|
|
TARGET="_top"
|
|
> Maxima</A
|
|
>:
|
|
Maxima is a symbolic computation program. The above link describes it
|
|
as follows, "Maxima is a descendant of DOE Macsyma, which had its origins
|
|
in the late 1960s at MIT. It is the only system based on that effort still
|
|
publicly available and with an active user community, thanks to its open
|
|
source nature. Macsyma was the first of a new breed of computer algebra
|
|
systems, leading the way for programs such as Maple and Mathematica. This
|
|
particular variant of Macsyma was maintained by William Schelter from 1982
|
|
until he passed away in 2001. In 1998 he obtained permission to release
|
|
the source code under GPL".
|
|
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.r-project.org/"
|
|
TARGET="_top"
|
|
>The R-Project for Statistical Computing</A
|
|
>:
|
|
R is a language and environment for statistical computing and graphics.
|
|
It provides a large collection of tools for statistical analysis of large
|
|
arrays of data and also graphical facilities. R is also a complete effective
|
|
programming language. For computationally intensive tasks, C, C++ and Fortran
|
|
code can be linked and called at run time. A comprehensive set of manuals
|
|
dealing with installation, introduction, writing extensions, etc ... is
|
|
available <A
|
|
HREF="http://cran.r-project.org/manuals.html"
|
|
TARGET="_top"
|
|
>here</A
|
|
>.
|
|
It is distributed under the GNU General Public License.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.fis.unipr.it/%7Estefanw/gtybalt.html"
|
|
TARGET="_top"
|
|
>gTybalt</A
|
|
>:
|
|
gTybalt is a step towards a free computer algebra system. It is object
|
|
oriented, allowing symbolic calculations within C++. It is efficient,
|
|
in the sense that solutions developed with gTybalt can be compiled with
|
|
a C++ compiler and executed independently of gTybalt. The mathematical
|
|
formulae are visualized using TeX fonts and can easily be converted to
|
|
LaTeX. I did not realize that it has good graphic capabilities till I
|
|
checked out the gTybalt
|
|
<A
|
|
HREF="http://www.fis.unipr.it/%7Estefanw/gtybalt/gtybalt.html"
|
|
TARGET="_top"
|
|
>manual</A
|
|
>.
|
|
It is distributed under the GNU General Public License.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www-swiss.ai.mit.edu/%7Ejaffer/JACAL.html"
|
|
TARGET="_top"
|
|
>JACAL</A
|
|
>:
|
|
As the link above describes it, " JACAL is an interactive symbolic mathematics
|
|
program. JACAL can manipulate and simplify equations, scalars, vectors,
|
|
and matrices of single and multiple valued algebraic expressions containing
|
|
numbers, variables, radicals, and algebraic differential, and holonomic
|
|
functions".
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.gnu.org/software/bc/bc.html"
|
|
TARGET="_top"
|
|
>bc</A
|
|
>:
|
|
bc is an arbitrary precision numeric processing language. It supports
|
|
interactive execution of statements. Click here for a <A
|
|
HREF="http://www.gnu.org/manual/bc/index.html"
|
|
TARGET="_top"
|
|
>Manual</A
|
|
> in a variety of formats.
|
|
It is GNU software and is distributed under the GNU General Public License.
|
|
</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect1"
|
|
><HR><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="numlib"
|
|
></A
|
|
>5. Numerical Methods and Libraries</H1
|
|
><P
|
|
> The best thing that could happen for scientific computing with free
|
|
software on GNU/Linux is the GNU Scientific Library
|
|
<A
|
|
HREF="http://sources.redhat.com/gsl"
|
|
TARGET="_top"
|
|
>GSL</A
|
|
>.
|
|
It however has source code only in C and people who use FORTRAN
|
|
will find that a let down. Pouncing on this opportunity it is
|
|
recommended that GSL is another reason (in addition to the GCC
|
|
C compiler, coupled with the advantages of C programming)
|
|
for starting to learn to use C. In addition to this,
|
|
the two best source code repositories for Numerical Methods and
|
|
libraries are <A
|
|
HREF="http://www.netlib.org"
|
|
TARGET="_top"
|
|
>Netlib</A
|
|
>
|
|
and <A
|
|
HREF="http://math.nist.gov/"
|
|
TARGET="_top"
|
|
>GAMS</A
|
|
>.
|
|
There are new numerical packages being developed outside the usual
|
|
"write a FORTRAN program, get a numerical subroutine from INTERNET
|
|
for solving the numerics" concepts. The merits and demerits of this
|
|
approach are debatable, but there exist more options like
|
|
<A
|
|
HREF="http://oonumerics.org/oon"
|
|
TARGET="_top"
|
|
>Object Oriented Numerics</A
|
|
>
|
|
GSL and <A
|
|
HREF="http://www.ginac.de/"
|
|
TARGET="_top"
|
|
>GiNaC</A
|
|
> which are
|
|
exciting developments.
|
|
</P
|
|
><DIV
|
|
CLASS="sect2"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="Repositories"
|
|
></A
|
|
>5.1. Repositories</H2
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.netlib.org/"
|
|
TARGET="_top"
|
|
>Netlib</A
|
|
>:
|
|
An amazing amount of free source code for Numerical Methods. Netlib
|
|
is THE source code repository which contains an innumerable
|
|
amount of source code for Numerical Methods. It also has an active
|
|
<A
|
|
HREF="http://www.netlib.org/utk/discus"
|
|
TARGET="_top"
|
|
>discussion forum
|
|
</A
|
|
> wherein you can submit your queries and stay posted for
|
|
help. Netlib also has a <A
|
|
HREF="http://www.nhse.org/ptlib"
|
|
TARGET="_top"
|
|
> Parallel Tools Library </A
|
|
> and a search by subject.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://math.nist.gov/"
|
|
TARGET="_top"
|
|
> GAMS: Guide to Available Mathematical Software</A
|
|
>
|
|
GAMS has a very useful search using which one can search for
|
|
keywords (example: ``diffusion'' to search for a diffusion equation
|
|
solver). However the browse by package at GAMS reveals that a lot of
|
|
the software they provide is a link to the netlib repository.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://oonumerics.org/oon"
|
|
TARGET="_top"
|
|
>Object Oriented Numerics</A
|
|
>
|
|
A site devoted to object oriented numerics. It has a Mailing list,
|
|
Extensive Links to freely available libraries (OO of course)
|
|
and freely available tools for object oriented scientific computing.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://sources.redhat.com/gsl"
|
|
TARGET="_top"
|
|
>GNU Scientific Library</A
|
|
>
|
|
The GNU Scientific Library (GSL) is a collection of numerical routines
|
|
written from scratch in C. It provides an Applications Programming
|
|
Interface (API) for C programmers and also allows wrappers to be written
|
|
for very high level languages. It covers a wide range of numerical
|
|
computing topics, has a good manual, is widely portable and is distributed
|
|
under the GNU General Public License.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.ginac.de/"
|
|
TARGET="_top"
|
|
>GiNaC</A
|
|
>
|
|
GiNaC is designed to allow the creation of software which need symbolic
|
|
manipulations embedded in them. It extends C++ by a set of algebraic
|
|
capabilities and is recursively named for GiNaC is not a Computer Algebra
|
|
system. It is distributed under the terms and conditions of the GNU
|
|
general public license (GPL).
|
|
</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="AEN292"
|
|
></A
|
|
>5.2. Other topic specific numerical libraries</H2
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.fftw.org/"
|
|
TARGET="_top"
|
|
>FFTW</A
|
|
>
|
|
FFTW is a collection of fast C routines for computing the Discrete
|
|
Fourier Transform in one or more dimensions. It includes complex,
|
|
real, and parallel transforms, and can handle arbitrary array sizes
|
|
efficiently. This package includes both the double- and
|
|
single-precision FFTW uniprocessors and the threads libraries.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.netlib.org/lapack"
|
|
TARGET="_top"
|
|
>LAPACK</A
|
|
>
|
|
LAPACK (Linear Algebra PACKage) is a standard library for numerical
|
|
linear algebra. LAPACK provides routines for solving systems of
|
|
simultaneous linear equations, least-squares solutions of linear
|
|
systems of equations, eigenvalue problems, and singular value
|
|
problems. LAPACK is coded in Fortran77 and is built with egcs.
|
|
It is well documented and widely used (and therefore widely tested).
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.nersc.gov/~xiaoye/SuperLU"
|
|
TARGET="_top"
|
|
>SuperLU</A
|
|
>
|
|
SuperLU is a general purpose library which performs an LU decomposition
|
|
for the direct solution of large, sparse, non-symmetric systems of linear
|
|
equations on high performance machines. Its written in C and is callable
|
|
from either C or Fortran.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.caam.rice.edu/software/ARPACK/"
|
|
TARGET="_top"
|
|
>ARPACK
|
|
</A
|
|
>
|
|
ARPACK is a set of Fortran77 subroutines designed to solve large scale
|
|
eigenvalue problems. A <A
|
|
HREF="http://www.caam.rice.edu/software/ARPACK/UG/ug.html#ARPACK"
|
|
TARGET="_top"
|
|
>Users Guide
|
|
</A
|
|
> is available. The above link also gives information about a
|
|
parallel version of ARPACK - PARPACK and a object oriented version
|
|
ARPACK++.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://icemcfd.com/cfd/CFD_codes.html"
|
|
TARGET="_top"
|
|
> Computational Fluid Dynamics codes</A
|
|
>
|
|
This link contains a comprehensive listing of public domain, shareware
|
|
and freeware Computational Fluid Dynamics codes links with a description
|
|
of each CFD code.
|
|
</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect1"
|
|
><HR><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="graphvis"
|
|
></A
|
|
>6. Graphics and Visualization</H1
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.gnuplot.info"
|
|
TARGET="_top"
|
|
>Gnuplot</A
|
|
>
|
|
Gnuplot is a command-line driven interactive function plotting
|
|
utility. It handles both curves (2 dimensions) and surfaces (3
|
|
dimensions). Surfaces can be floating in the 3-d coordinate space,
|
|
or as a contour plot. For 2-d plots, there are also many plot
|
|
styles, including lines, points, lines with points, error bars,
|
|
and impulses. Graphs may be labeled with arbitrary labels and
|
|
arrows, axes labels, a title, date and time, and a key. It has
|
|
multiple plotting capabilities too. It allows saving the graphs in
|
|
various formats which can be included in word processors.
|
|
It can be used to generate publication quality plots.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://ngwww.ucar.edu"
|
|
TARGET="_top"
|
|
> NCAR Graphics </A
|
|
>
|
|
A very popular graphics package which is very well documented and widely
|
|
used. It provides basic ingredients for creating complex plots as
|
|
functions / routines that can be called from Fortran and C. There is
|
|
a contributed programming interface to the NCAR Graphics package:
|
|
NCL (NCAR Command Language). The programming interfaces provide access
|
|
to complex graphics utilities like contouring, world map projections,
|
|
and velocity vectors. For the most part, the C interface is built on
|
|
top of the Fortran interface... It is distributed under the GNU public
|
|
license. Click <A
|
|
HREF="http://ngwww.ucar.edu/ngdoc/ng4.2"
|
|
TARGET="_top"
|
|
>here</A
|
|
>
|
|
for going to the documentation of all its various components.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.opendx.org"
|
|
TARGET="_top"
|
|
>OpenDX</A
|
|
>
|
|
A very good Open Source Data eXplorer. It can handle large amounts of data
|
|
and creates great visualizations. It was the tool I stumbled upon when
|
|
I wanted a free graphics routine to make 3-D plots and zoom-in, rotate,
|
|
and really eXplore the output Data from my codes. The downside is that
|
|
compiling from source is really challenging and getting started is a
|
|
difficult. However it has excellent documentation distributed with it
|
|
and once I started off it was the best tool I have ever used.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://gri.sourceforge.net"
|
|
TARGET="_top"
|
|
>Gri:</A
|
|
>
|
|
It is a language for scientific graphics programming. The claim that Gri
|
|
is similar to LaTeX in the sense that both provide extensive power as a
|
|
reward for tolerating a learning curve seems exciting and I for one want
|
|
to check this out!! Check out the following
|
|
<A
|
|
HREF="http://www.linuxjournal.com/article.php?sid=3743"
|
|
TARGET="_top"
|
|
>article</A
|
|
>
|
|
in The Linux Journal. Go to the gri home page if you are now impressed by
|
|
it and check out download info and manuals.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://mayavi.sf.net"
|
|
TARGET="_top"
|
|
>MayaVi:</A
|
|
>
|
|
A scientific data visualizer written in Python. It is distributed under the
|
|
<A
|
|
HREF="http://www.opensource.org/licenses/bsd-license.html"
|
|
TARGET="_top"
|
|
>BSD
|
|
license</A
|
|
>. The screenshots look promising. Check out the above link
|
|
for more details.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.astro.caltech.edu/~tjp/pgplot"
|
|
TARGET="_top"
|
|
>PGPLOT:</A
|
|
>
|
|
PGPLOT is a Fortran 77 or C callable subroutine package for drawing
|
|
scientific 2D and Simple 3D plots. One can call these routines during
|
|
runtime and redirect the output to a variety of devices at run time.
|
|
It is well documented and the full documentation is available at the
|
|
above site. It is Free for Non-Commercial Use. A user manual is available
|
|
online at <A
|
|
HREF="http://www.astro.caltech.edu/~tjp/pgplot/contents.html"
|
|
TARGET="_top"
|
|
>PGPLOT
|
|
Users Manual</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://plplot.sourceforge.net/"
|
|
TARGET="_top"
|
|
>PLplot:</A
|
|
>
|
|
This is a library of scientific plotting functions that can be called from
|
|
C, C++, FORTRAN, TCL, PYTHON. PLplot features as described in the above link
|
|
are, "It can be used to create standard x-y plots, semilog plots,
|
|
log-log plots, contour plots, 3D plots, mesh plots, bar charts and pie charts.
|
|
Multiple graphs (of the same or different sizes) may be placed on a single
|
|
page with multiple lines in each graph. There are almost 2000 characters
|
|
in the extended character set. This includes four different fonts, the
|
|
Greek alphabet and a host of mathematical, musical, and other symbols.
|
|
A variety of output devices are supported and new devices can be easily
|
|
added by writing a small number of device dependent routines". To download
|
|
click
|
|
<A
|
|
HREF="http://sourceforge.net/project/showfiles.php?group_id=2915"
|
|
TARGET="_top"
|
|
> here </A
|
|
>.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://plasma-gate.weizmann.ac.il/Grace/"
|
|
TARGET="_top"
|
|
>Grace</A
|
|
>
|
|
Grace is a WYSIWYG 2D plotting tool for the X Window System and Motif.
|
|
Grace runs on practically any version of Unix. Grace is a descendant of
|
|
ACE/gr, also known as Xmgr. It is lisenced under the GNU public license.
|
|
This link also has a tutorial and download information.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://scigraphica.sourceforge.net/"
|
|
TARGET="_top"
|
|
>SciGraphica
|
|
</A
|
|
>
|
|
SciGraphica is a application for data analysis and technical graphics.
|
|
It fully supplies plotting features for 2D, 3D and polar charts. The
|
|
aim is to obtain a fully-featured, cross-platform, user-friendly,
|
|
self-growing scientific application. It is free and open-source,
|
|
released under the GPL license.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.gnu.org/software/plotutils/plotutils.html"
|
|
TARGET="_top"
|
|
> Plotutils</A
|
|
>:
|
|
The GNU plotutils package contains software for both programmers and
|
|
technical users. Its centerpiece is libplot.a powerful C/C++ function
|
|
library for exporting 2-D vector graphics in many file formats, both
|
|
vector and raster. It can also do vector graphics animations.
|
|
Besides libplot, the package contains command-line programs for
|
|
plotting scientific data. Many of them use libplot to export graphics.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.dislin.de"
|
|
TARGET="_top"
|
|
>DISLIN</A
|
|
>
|
|
DISLIN is a high-level plotting library for displaying data as curves,
|
|
polar plots, bar graphs, pie charts, 3D-color plots, surfaces, contours
|
|
and maps.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://ImLib3d.sourceforge.net"
|
|
TARGET="_top"
|
|
>ImLib3D</A
|
|
>
|
|
ImLib3D is an open source C++ library for 3D (volumetric) image processing.
|
|
It contains most basic image processing algorithms, and some more
|
|
sophisticated ones. It comes with an optional viewer that features
|
|
multi-planar views, animations, vector field views and 3D (OpenGL)
|
|
multi-planar.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://ptolemy.eecs.berkeley.edu/java/ptplot"
|
|
TARGET="_top"
|
|
>Ptplot</A
|
|
>:
|
|
Ptplot is a 2D data plotter and histogram tool implemented in Java.
|
|
Ptplot can be used as a standalone applet or application, or it can be
|
|
embedded in your own applet or application.
|
|
</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect1"
|
|
><HR><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="systems"
|
|
></A
|
|
>7. Programming systems for GNU/Linux</H1
|
|
><P
|
|
> 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"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="GNULinuxWS"
|
|
></A
|
|
>7.1. The GNU/Linux Workstation</H2
|
|
><P
|
|
> 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"
|
|
> 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"
|
|
> 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"
|
|
> 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"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="PPSMP"
|
|
></A
|
|
>7.2. Parallel Processing and Symmetric Multiprocessing:
|
|
Supercomputing</H2
|
|
><P
|
|
> 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
|
|
> <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"
|
|
><HR><H3
|
|
CLASS="sect3"
|
|
><A
|
|
NAME="ppdocs"
|
|
></A
|
|
>7.2.1. Parallel computing document links</H3
|
|
><P
|
|
> 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
|
|
> Other free document links for parallel processing are:
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/Beowulf-HOWTO"
|
|
TARGET="_top"
|
|
> 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
|
|
> <A
|
|
HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/Parallel-Processing-HOWTO"
|
|
TARGET="_top"
|
|
> The Parallel Processing on Linux HOWTO</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/SMP-HOWTO"
|
|
TARGET="_top"
|
|
> The Symmetric Multiprocessing HOWTO</A
|
|
>
|
|
</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect3"
|
|
><HR><H3
|
|
CLASS="sect3"
|
|
><A
|
|
NAME="PPSW"
|
|
></A
|
|
>7.2.2. Parallel processing software for Linux</H3
|
|
><P
|
|
> 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
|
|
> <A
|
|
HREF="http://www-unix.mcs.anl.gov/mpi"
|
|
TARGET="_top"
|
|
> 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
|
|
> <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"
|
|
> here</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.epm.ornl.gov/pvm/pvm_home.html"
|
|
TARGET="_top"
|
|
> 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
|
|
> <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="sect1"
|
|
><HR><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="publish"
|
|
></A
|
|
>8. Word-Processing and Poster presenting tools on Linux</H1
|
|
><P
|
|
> Those of you who do not use <A
|
|
HREF="http://www.latex-project.org"
|
|
TARGET="_top"
|
|
> LaTeX</A
|
|
> and find it challenging and want a WYSIWYG word processor,
|
|
keep your ears tuned to <A
|
|
HREF="http://www.openoffice.org"
|
|
TARGET="_top"
|
|
>OpenOffice
|
|
</A
|
|
>
|
|
which has released version 1.2 of its openoffice software. Its tools
|
|
may compare well with the best in the market.
|
|
</P
|
|
><DIV
|
|
CLASS="sect2"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="wp"
|
|
></A
|
|
>8.1. Word Processing Tools</H2
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.latex-project.org"
|
|
TARGET="_top"
|
|
>Latex</A
|
|
>:
|
|
LaTeX is a high-quality typesetting system, with features designed for
|
|
the production of technical and scientific documentation. LaTeX is the
|
|
de facto standard for the communication and publication of scientific
|
|
documents.
|
|
<A
|
|
HREF="http://www.maths.tcd.ie/~dwilkins/LaTeXPrimer/"
|
|
TARGET="_top"
|
|
> David R.Wilkin's primer </A
|
|
> "Getting Started with LaTeX"
|
|
is a good tutorial to getting started with LaTeX.
|
|
For those who have to live with a WYSIWYG documenting tool, check
|
|
<A
|
|
HREF="http://www.lyx.org"
|
|
TARGET="_top"
|
|
>LyX</A
|
|
>. This is a front-end for
|
|
latex. It isn't as powerful as latex proper, but helps with a good WYSIWIG.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://lout.sourceforge.net"
|
|
TARGET="_top"
|
|
>Lout</A
|
|
>:
|
|
A document formatting system similar to latex. Good features, documentation
|
|
and history. Light weight and outputs postscript. Thanks to Emiliano Gavilan
|
|
for this link.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.abisource.com"
|
|
TARGET="_top"
|
|
>Abiword</A
|
|
>:
|
|
As the AbiWord home page says,
|
|
"AbiWord is suitable for typing papers, letters, reports, memos, and so forth".
|
|
It has won many awards and seems to be the best open source WYSIWYG word
|
|
processor. Check out the above link to know more about it and download it.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.koffice.org/kword"
|
|
TARGET="_top"
|
|
>kword</A
|
|
>:
|
|
As the kword home page says,
|
|
"KWord is a FrameMaker-like word-processing and desktop publishing application.
|
|
KWord is capable of creating demanding and professional looking documents.
|
|
Whether you are a corporate or home user, production artist or student, KWord
|
|
will prove a valuable and easy to use tool for all your word processing and
|
|
layout needs". Check out the above link to know more about it and download it.
|
|
(you might want to know more about the whole <A
|
|
HREF="http://www.koffice.org"
|
|
TARGET="_top"
|
|
> koffice</A
|
|
> suite).
|
|
</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><HR><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="ppt"
|
|
></A
|
|
>8.2. Poster presentation tools</H2
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.koffice.org/kpresenter/"
|
|
TARGET="_top"
|
|
> KPresenter</A
|
|
>:
|
|
KPresenter is the presentation tool of the KOffice suite of office
|
|
utilities. It allows screen presentations with all the trappings one
|
|
is used to seeing in costly presentation tools. It also allows honest,
|
|
real scientific presentations where one does not have to impress the
|
|
audience with non subject specific stuff :-). The best thing about it
|
|
is the possibility of saving the presentation as a html file. It makes
|
|
portable network graphics files with each presentation slide. With a
|
|
smattering of knowledge of html files one could put in a animated image
|
|
as a image link thereby allowing one to show movies too when necessary.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www-epb.lbl.gov/xfig/"
|
|
TARGET="_top"
|
|
>Xfig </A
|
|
>:
|
|
Though the man page claims that it is a facility for the
|
|
interactive generation of figures ...., It in fact much more than that.
|
|
Other than generating figures for elucidating what you want to say in
|
|
a poster, it helps you import and export figures in a variety of formats,
|
|
write text in various fonts and sizes, generate Greek symbols and color
|
|
text, Save as latex picture file or any other format supported by your
|
|
word processor for inclusion in your publications, generate GIFs of each
|
|
page of the poster to put on your web site, and finally it generates
|
|
*.fig files which are small in size. The only thing on my wish list for
|
|
xfig is the capability to edit the imported pictures which are not in
|
|
*.fig format. Therefore for a computer screen projected poster
|
|
presentation you need a frames capable browser with contents in one frame
|
|
and the xfig generated posters (exported as *.png or *.jpg from Xfig) on
|
|
the other.
|
|
</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect1"
|
|
><HR><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="database"
|
|
></A
|
|
>9. Free Database Management Systems for Linux</H1
|
|
><P
|
|
> Scientific computing has two parallel data needs, one the physical values
|
|
of the data itself, and the other is Database systems to manage the data.
|
|
In this document links are provided only to database resources on the net
|
|
and free Database systems. I personally do not use databases to manipulate
|
|
the data generated by my codes. gawk, sed, and other basic Unix commands
|
|
like grep, head and tail seem sufficient to manipulate any data I generate.
|
|
I thought I should include this section for the large data generators.
|
|
Hopefully a person with experience in databases will make this section better.
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.iam.unibe.ch/~scg/Archive/Software/FreeDB/ "
|
|
TARGET="_top"
|
|
> Free database list</A
|
|
>
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.acm.org/sigmod/databaseSoftware/ "
|
|
TARGET="_top"
|
|
> ACM SIGMOD</A
|
|
>:
|
|
Index of publicly available database software.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.mysql.com"
|
|
TARGET="_top"
|
|
>MySQL</A
|
|
>:
|
|
A relational Database management system.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.postgresql.org"
|
|
TARGET="_top"
|
|
>PostgreSQL</A
|
|
>
|
|
As the link above describes it ...PostgreSQL is
|
|
a sophisticated Object-Relational DBMS, supporting almost all SQL
|
|
constructs, including subselects, transactions, and user-defined types
|
|
</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect1"
|
|
><HR><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="lablinux"
|
|
></A
|
|
>10. Linux in the laboratory</H1
|
|
><P
|
|
> Again this is a section where I have zero experience and hope someone will
|
|
with experience will contribute towards making this document better. However,
|
|
I provide below links suggested by Sambaran Pahari and Deepak Gupta. These
|
|
links seem to be very good from my inexperienced viewpoint.
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.llp.fu-berlin.de"
|
|
TARGET="_top"
|
|
>The Linux Lab Project</A
|
|
>
|
|
A site for "Linux Lab Project."..everything to do with laboratory process,
|
|
process control, automation and data acquisition on Linux.
|
|
As the above link says, "The Linux lab project is intended to help people with
|
|
development of data collection and process control software for LINUX.
|
|
It is planned to provide a standardized development environment for a wide variety
|
|
of applications from hardware support to application development".
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> <A
|
|
HREF="http://www.torque.net/linux-pp.html"
|
|
TARGET="_top"
|
|
> Linux Parallel port drivers</A
|
|
>:
|
|
The above link says, "If you have a parallel port device and would
|
|
like to know if there is a Linux driver available for it --then this is
|
|
the place to look". Sounds like a confident claim.
|
|
</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |