970 lines
51 KiB
Plaintext
970 lines
51 KiB
Plaintext
Scientific Computing with Free software on GNU/Linux HOWTO
|
||
|
||
Manoj Warrier
|
||
|
||
<m_war (at) users.sourceforge.net>
|
||
|
||
Shishir Deshpande
|
||
|
||
<shishir (at) ipr.res.in>
|
||
|
||
V. S. Ashoka
|
||
|
||
<ashok (at) rri.res.in>
|
||
|
||
2003-10-03
|
||
Revision History
|
||
Revision 1.2 2004-10-19 Revised by: M. W
|
||
1 Correction and new additional links
|
||
Revision 1.1 2004-06-21 Revised by: M. W
|
||
Updates and evaluated distros
|
||
Revision 1.0 2003-11-18 Revised by: JP
|
||
Document Reviewed by LDP.
|
||
Revision 0.0 2003-10-01 Revised by: M. W
|
||
first draft proposed
|
||
|
||
|
||
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.
|
||
|
||
-----------------------------------------------------------------------------
|
||
Table of Contents
|
||
1. Preamble
|
||
1.1. Copyright and License
|
||
1.2. Disclaimer
|
||
1.3. Motivation
|
||
1.4. Credits / Contributors
|
||
1.5. Feedback
|
||
1.6. Translations
|
||
|
||
|
||
2. Introduction
|
||
3. Code Development Tools
|
||
3.1. Programming Languages
|
||
3.2. Debugging Tools
|
||
3.3. Version Control Tools
|
||
3.4. Integrated Development Environments
|
||
|
||
|
||
4. Mathematics Packages
|
||
5. Numerical Methods and Libraries
|
||
5.1. Repositories
|
||
5.2. Other topic specific numerical libraries
|
||
|
||
|
||
6. Graphics and Visualization
|
||
7. Programming systems for GNU/Linux
|
||
7.1. The GNU/Linux Workstation
|
||
7.2. Parallel Processing and Symmetric Multiprocessing: Supercomputing
|
||
|
||
|
||
8. Word-Processing and Poster presenting tools on Linux
|
||
8.1. Word Processing Tools
|
||
8.2. Poster presentation tools
|
||
|
||
|
||
9. Free Database Management Systems for Linux
|
||
10. Linux in the laboratory
|
||
|
||
1. Preamble
|
||
|
||
1.1. Copyright and License
|
||
|
||
This document, Scientific Computing with free software on GNU/Linux HOWTO,
|
||
is copyrighted (c) 2002 by Manoj Warrier. 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 [http://
|
||
www.gnu.org/licenses/licenses.html#FDL] here
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.2. Disclaimer
|
||
|
||
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.
|
||
|
||
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
|
||
|
||
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.
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.3. Motivation
|
||
|
||
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.
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.4. Credits / Contributors
|
||
|
||
In this document, I have the pleasure of acknowledging:
|
||
|
||
<EFBFBD><EFBFBD>*<2A> Linus Trovalds, Richard M. Stallman and their merry men for Linux, GNU
|
||
and also for indirectly broadening various perspectives which were not
|
||
really obvious.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> A host of colleagues and friends from the Institute for Plasma
|
||
Research, India for discussions at various times.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> Marcel Bose, Ivan Lamouret, K. Scott Hunziker, Livine Christin, W.
|
||
Herbert, Simon Pinches and many others for suggesting various links
|
||
mentioned in this document.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> 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"
|
||
|
||
|
||
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.
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.5. Feedback
|
||
|
||
Feedback is most certainly welcome for this document. Send your additions,
|
||
comments and criticisms to the following email address : <m_war at
|
||
users.sourceforge.net>.
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.6. Translations
|
||
|
||
No translations yet.
|
||
-----------------------------------------------------------------------------
|
||
|
||
2. Introduction
|
||
|
||
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 free
|
||
software for carrying out the above tasks and links to tutorials and other
|
||
documents on how to setup and use these software applications.
|
||
|
||
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 Linux for
|
||
Astronomy, Linux for Biotechnology and Linux for Chemistry at The Random
|
||
Factory . Another site with a lot of links (to commercial and free)
|
||
scientific software is Scientific Applications on Linux. The [http://
|
||
www.gnu.org/directory/science/] GNU Software Directory 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 [http://freshmeat.net/browse/97/]
|
||
The Science and Engineering section at Freshmeat.net.
|
||
|
||
The software links provided are classified into
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [./devtools.html] Code development tools
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [./mathpack.html] Mathematics packages
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [./numlib.html] Numerical subroutines and libraries
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [./graphvis.html] Graphics and visualization
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [./systems.html] GNU/Linux Systems
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [./publish.html] Publishing tools
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [./database.html] Databases
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [./lablinux.html] Linux in the Laboratory
|
||
|
||
|
||
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 [./GNULinuxWS.html] GNU/Linux Systems
|
||
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 [http://
|
||
dirk.eddelbuettel.com/quantian.html] Quantian 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.
|
||
-----------------------------------------------------------------------------
|
||
|
||
3. Code Development Tools
|
||
|
||
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.
|
||
-----------------------------------------------------------------------------
|
||
|
||
3.1. Programming Languages
|
||
|
||
Links are provided to various compilers used in Scientific Computing like
|
||
FORTRAN, C, C++, Java and more recently Python.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> GNU Compiler Collection : 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,..).
|
||
|
||
For manuals on using the various GCC compilers check out [http://
|
||
www.gnu.org/software/gcc/onlinedocs/] The GCC online documentation
|
||
|
||
<EFBFBD><EFBFBD>*<2A> g77 : 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 The Gcc Online documentation site.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://gcc.gnu.org/fortran/] gfortran. 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://g95.sourceforge.net] g95. 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.llnl.gov/casc/Overture/henshaw/install/node6.html] fort77
|
||
and f2c: 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://lush.sourceforge.net] lush: 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://www.python.org/topics/scicomp/] Scientific Python: You may want
|
||
to explore [http://www.python.org] Python 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).
|
||
|
||
You can further explore Python for Scientific computing here:
|
||
|
||
<20><>+<2B> [http://starship.python.net/crew/hinsen/scientific.html]
|
||
Scientific-Python: 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 [http://starship.python.net/crew/hinsen/
|
||
tutorial.ps] Scientific Computing in Python.
|
||
|
||
<20><>+<2B> [http://www.scipy.org] SciPy 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.
|
||
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
3.2. Debugging Tools
|
||
|
||
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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://www.dsm.fordham.edu/~ftnchek] Ftnchek: 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 [http://
|
||
www.dsm.fordham.edu/~ftnchek/html/] manual is available. This project
|
||
is looking for volunteers to bringing ftnchek up to the Fortran 90
|
||
standard.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>gdb : All programs written in the languages supported by GCC can be
|
||
debugged using gdb, 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 Download the document Debugging
|
||
with GDB and a quick reference card.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[ftp://ftp.x.org/contrib/utilities/] xxgdb: 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>DDD: 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 [http://www.gnu.org/manual/ddd/] DDD manual in postscript /
|
||
HTML / PDF format.
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
3.3. Version Control Tools
|
||
|
||
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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://www.cvshome.org/dev/codelinux.html] Concurrent Versions System
|
||
: 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.
|
||
|
||
A tutorial on CVS is available at [http://www.gentoo.org/doc/
|
||
cvs-tutorial.html] Gentoo Linux Documentation and a free CVS book is
|
||
available [http://cvsbook.red-bean.com/] here
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://www.xcf.berkeley.edu/~jmacd/prcs.html] Project Revision Control
|
||
System : 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://www.cryon.com/gbuild/] Gbuild : 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.
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
3.4. Integrated Development Environments
|
||
|
||
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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://www.kdevelop.org/] Kdeveloper : 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:
|
||
|
||
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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://vdkbuilder.sourceforge.net/] VDKbuilder: 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.
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
4. Mathematics Packages
|
||
|
||
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 [http://
|
||
www.mupad.de/] MuPAD, a good symbolic math package, since is not really free.
|
||
Check out if their most [http://www.sciface.com/personal.shtml] free license
|
||
suits you.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://www.octave.org/] Octave: 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 [http://www.octave.org/doc/octave_toc.html] here. You can get a
|
||
GNOME based front end for it [http://freshmeat.net/projects/goctave/]
|
||
here. It is distributed under the GNU Public License.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www-rocq.inria.fr/scilab/] Scilab: 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 [http://www-rocq.inria.fr/scilab/license.txt] free
|
||
license.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://wuarchive.wustl.edu/languages/yorick/doc/index.html] Yorick:
|
||
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 [http://wuarchive.wustl.edu/languages/
|
||
yorick/doc/manual/yorick.html] here. Yorick is open source software,
|
||
[http://wuarchive.wustl.edu/languages/yorick/doc/copyright.html]
|
||
copyright of the Regents of the University of California.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://algae.sourceforge.net/] Algae: 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 [http:
|
||
//algae.sourceforge.net/algae.html] here. It is distributed under the GNU
|
||
General Public License.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://yacas.sourceforge.net/] YACAS: 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 [http://yacas.sourceforge.net/
|
||
manindex.html] here. It is distributed under the GNU General Public
|
||
License.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://rlab.sourceforge.net/] RLAB: 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 [http://www.linuxjournal.com
|
||
/] The Linux Journal titled An Introduction to Rlab which as he reminds
|
||
us, is a bit dated, and a [http://rlab.sourceforge.net/html/
|
||
rlab-ref.html] Reference Manual is also available.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://maxima.sourceforge.net] Maxima: 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".
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.r-project.org/] The R-Project for Statistical Computing: 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 [http://cran.r-project.org/
|
||
manuals.html] here. It is distributed under the GNU General Public
|
||
License.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.fis.unipr.it/%7Estefanw/gtybalt.html] gTybalt: 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 [http://www.fis.unipr.it/%7Estefanw/gtybalt/gtybalt.html] manual.
|
||
It is distributed under the GNU General Public License.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www-swiss.ai.mit.edu/%7Ejaffer/JACAL.html] JACAL: 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".
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.gnu.org/software/bc/bc.html] bc: bc is an arbitrary
|
||
precision numeric processing language. It supports interactive execution
|
||
of statements. Click here for a [http://www.gnu.org/manual/bc/index.html]
|
||
Manual in a variety of formats. It is GNU software and is distributed
|
||
under the GNU General Public License.
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
5. Numerical Methods and Libraries
|
||
|
||
The best thing that could happen for scientific computing with free
|
||
software on GNU/Linux is the GNU Scientific Library [http://
|
||
sources.redhat.com/gsl] GSL. 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 [http://www.netlib.org] Netlib and [http://
|
||
math.nist.gov/] GAMS. 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 [http://
|
||
oonumerics.org/oon] Object Oriented Numerics GSL and [http://www.ginac.de/]
|
||
GiNaC which are exciting developments.
|
||
-----------------------------------------------------------------------------
|
||
|
||
5.1. Repositories
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.netlib.org/] Netlib: 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 discussion forum wherein you can submit your queries
|
||
and stay posted for help. Netlib also has a [http://www.nhse.org/ptlib]
|
||
Parallel Tools Library and a search by subject.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://math.nist.gov/] GAMS: Guide to Available Mathematical
|
||
Software 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://oonumerics.org/oon] Object Oriented Numerics 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://sources.redhat.com/gsl] GNU Scientific Library 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.ginac.de/] GiNaC 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).
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
5.2. Other topic specific numerical libraries
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.fftw.org/] FFTW 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.netlib.org/lapack] LAPACK 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).
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.nersc.gov/~xiaoye/SuperLU] SuperLU 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> ARPACK ARPACK is a set of Fortran77 subroutines designed to solve large
|
||
scale eigenvalue problems. A Users Guide is available. The above link
|
||
also gives information about a parallel version of ARPACK - PARPACK and a
|
||
object oriented version ARPACK++.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://icemcfd.com/cfd/CFD_codes.html] Computational Fluid Dynamics
|
||
codes This link contains a comprehensive listing of public domain,
|
||
shareware and freeware Computational Fluid Dynamics codes links with a
|
||
description of each CFD code.
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
6. Graphics and Visualization
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.gnuplot.info] Gnuplot 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://ngwww.ucar.edu] NCAR Graphics 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 [http://ngwww.ucar.edu/
|
||
ngdoc/ng4.2] here for going to the documentation of all its various
|
||
components.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.opendx.org] OpenDX 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://gri.sourceforge.net] Gri: 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 [http://www.linuxjournal.com/article.php?sid=3743] article in
|
||
The Linux Journal. Go to the gri home page if you are now impressed by it
|
||
and check out download info and manuals.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://mayavi.sf.net] MayaVi: A scientific data visualizer written in
|
||
Python. It is distributed under the BSD license. The screenshots look
|
||
promising. Check out the above link for more details.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.astro.caltech.edu/~tjp/pgplot] PGPLOT: 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 PGPLOT Users
|
||
Manual
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://plplot.sourceforge.net/] PLplot: 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 [http://sourceforge.net/project/showfiles.php?group_id=
|
||
2915] here .
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://plasma-gate.weizmann.ac.il/Grace/] Grace 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> SciGraphica 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.gnu.org/software/plotutils/plotutils.html] Plotutils: 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.dislin.de] DISLIN 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://ImLib3d.sourceforge.net] ImLib3D 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://ptolemy.eecs.berkeley.edu/java/ptplot] Ptplot: 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.
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
7. Programming systems for GNU/Linux
|
||
|
||
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.
|
||
-----------------------------------------------------------------------------
|
||
|
||
7.1. The GNU/Linux Workstation
|
||
|
||
As with most documentation related to GNU/Linux, [http://tldp.org] the
|
||
Linux Documentation project's home page is a priceless source. You might
|
||
first want to read [http://tldp.org/HOWTO/Installation-HOWTO/index.html]
|
||
The Linux Installation HOWTO. For those who want to install Linux along with
|
||
Windows might want to browse through [http://www.tldp.org/HOWTO/
|
||
Linux+Windows-HOWTO/index.html] The Linux + Windows HOWTO. 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 The Rute Users Tutorial and Exposition 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 The Linux System
|
||
Administrator's Guide and to check out [http://www.tldp.org/LDP/lame/LAME/
|
||
linux-admin-made-easy/index.html] The Linux Administration Made Easy (LAME)
|
||
guide It attempts to describe day-to-day administration and maintenance
|
||
issues commonly faced by Linux system administrators.
|
||
-----------------------------------------------------------------------------
|
||
|
||
7.2. Parallel Processing and Symmetric Multiprocessing: Supercomputing
|
||
|
||
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
|
||
|
||
<EFBFBD><EFBFBD>*<2A>The Beowulf Project home page and
|
||
|
||
<EFBFBD><EFBFBD>*<2A> The Extreme Linux Project
|
||
|
||
|
||
These sites are upgraded frequently with useful information for cluster
|
||
builders.
|
||
-----------------------------------------------------------------------------
|
||
|
||
7.2.1. Parallel computing document links
|
||
|
||
You will also want to read this excellent article on Linux Clustering
|
||
Software (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.
|
||
|
||
Other free document links for parallel processing are:
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.ibiblio.org/pub/Linux/docs/HOWTO/Beowulf-HOWTO] The
|
||
Beowulf Howto : 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:
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.ibiblio.org/pub/Linux/docs/HOWTO/Parallel-Processing-HOWTO]
|
||
The Parallel Processing on Linux HOWTO
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.ibiblio.org/pub/Linux/docs/HOWTO/SMP-HOWTO] The Symmetric
|
||
Multiprocessing HOWTO
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
7.2.2. Parallel processing software for Linux
|
||
|
||
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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www-unix.mcs.anl.gov/mpi] Message Passing Interface: 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 [http://www-unix.mcs.anl.gov/mpi/mpich] mpich is
|
||
also available at that site. There are a lot of documents for Learning to
|
||
use MPI .
|
||
|
||
<EFBFBD><EFBFBD>*<2A> Local Area Multicomputer - LAM: 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 [http://
|
||
www.lam-mpi.org/download/] here A host of MPI tutorial links and also a
|
||
`getting started with LAM' tutorial is available [http://www.lam-mpi.org/
|
||
tutorials/] here
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.epm.ornl.gov/pvm/pvm_home.html] Parallel Virtual Machine
|
||
: 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://ganglia.sourceforge.net] Ganglia: 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.
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
8. Word-Processing and Poster presenting tools on Linux
|
||
|
||
Those of you who do not use [http://www.latex-project.org] LaTeX and find
|
||
it challenging and want a WYSIWYG word processor, keep your ears tuned to
|
||
OpenOffice which has released version 1.2 of its openoffice software. Its
|
||
tools may compare well with the best in the market.
|
||
-----------------------------------------------------------------------------
|
||
|
||
8.1. Word Processing Tools
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.latex-project.org] Latex: 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. [http://
|
||
www.maths.tcd.ie/~dwilkins/LaTeXPrimer/] David R.Wilkin's primer
|
||
"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
|
||
[http://www.lyx.org] LyX. This is a front-end for latex. It isn't as
|
||
powerful as latex proper, but helps with a good WYSIWIG.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://lout.sourceforge.net] Lout: A document formatting system
|
||
similar to latex. Good features, documentation and history. Light weight
|
||
and outputs postscript. Thanks to Emiliano Gavilan for this link.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.abisource.com] Abiword: 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.koffice.org/kword] kword: 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 [http://www.koffice.org] koffice suite).
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
8.2. Poster presentation tools
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.koffice.org/kpresenter/] KPresenter: 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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www-epb.lbl.gov/xfig/] Xfig : 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.
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
9. Free Database Management Systems for Linux
|
||
|
||
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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.iam.unibe.ch/~scg/Archive/Software/FreeDB/ ] Free
|
||
database list
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.acm.org/sigmod/databaseSoftware/ ] ACM SIGMOD: Index of
|
||
publicly available database software.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.mysql.com] MySQL: A relational Database management system.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.postgresql.org] PostgreSQL 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
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
10. Linux in the laboratory
|
||
|
||
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.
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.llp.fu-berlin.de] The Linux Lab Project 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".
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.torque.net/linux-pp.html] Linux Parallel port drivers:
|
||
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.
|
||
|
||
|