Several of the high-level applications in GRASP can be run on parallel
computer systems. These can be either dedicated parallel computers
(such as the Intel Paragon or IBM SP2 machines) or a network of
scientific workstations. The parallel programming in GRASP is
implemented with version 1.1 of the Message Passing Interface (MPI)
library specification . All major computer system vendors
currently support this standard, so GRASP can be easily compiled and
used on virtually any parallel machine. In addition, there is a
public-domain implementation of MPI called ``mpich"  which
will run MPI-based programs on networks of scientific workstations.
This makes it easy to do ``super-computing at night" by running GRASP on
a network of workstations. Further information on MPI is available
from the web site
http://www.mcs.anl.gov/mpi/. http://www.mcs.anl.gov/mpi/ The mpich implementation is available from
http://www.mcs.anl.gov/mpi/mpich/. http://www.mcs.anl.gov/mpi/mpich/ By the way, if you don't have access to parallel machines (or have no interest in parallel computing) don't worry! The only parallel code in GRASP is found in ``top-level" applications; all of the functions in the GRASP library, and most of the examples, can be used without any modifications on a single processor, stand-alone computer.
GRASP makes use of a number of standard numerical techniques. In general,
we use version 2.06 of the routines from ``Numerical Recipes in
C: the art of scientific computing" . [Later versions
should work OK - please let me know if they don't.] These routines
are widely used in the scientific community. The full source code,
examples, and complete documentation are provided in the book,
and are also available (for about $50) in computer readable form.
Ordering information and further details are available from
http://www.nr.com/. http://www.nr.com/ These routines are extremely useful and beautifully-documented; if you don't already have them available for your use, you should!
Certain routines in that use inter-channel correlations to `clean' a signal channel also use CLAPACK numerical linear algebra libraries. These are extremely robust and well tested libraries and are an extremely valuable complement to Numerical Recipes. Note that all GRASP programs can be compiled without CLAPACK but that some inter-channel correlation functions will not be available without it. The full source code for these may be downloaded from http://www.netlib.org/clapack/http://www.netlib.org/clapack/.
The time-frequency routines in the GRASP package also come with a function (plottf()) to display time frequency-maps on the screen using calls to the MESA graphics library. This library is a GL lookalike and available freely from http://www.mesa3d.org/http://www.mesa3d.org/.
In general, output from GRASP is in the form of ASCII text files. We assume that the user has graphing packages available to visualize and interpret this output. Our personal favorite is xmgr, available in the public domain from the site http://plasma-gate.weizmann.ac.il/Xmgr/ http://plasma-gate.weizmann.ac.il/Xmgr/ which also lists mirror sites in Europe and USA. (Please see the comment about xmgr in Section ). In some cases we do output ``complete graphs" for xmgr. We do also output some data in the form of PostScript (tm) files. Previewers for postscript files are widely available in the public domain (we like GhostView).