SLIMpy
0.3
This page has been generated from the source code of
SLIMpy.
SLIMpy is a Python interface that exposes the
functionality of seismic data processing packages, such as MADAGASCAR, through operator overloading.
SLIMpy provides a concrete coordinate-free implementation of classes for out-of-core linear (implicit matrix-vector), and element-wise operations, including calculation of norms and other basic vector operations. The library is intended to provide the user with an abstract scripting language to program iterative algorithms from numerical linear algebra. These algorithms require repeated evaluation of operators that were initially designed to be run as part of batch-oriented processing flows. The current implementation supports a plugin for Madagascar's out-of-core UNIX pipe-based applications and is extenable to pipe-based collections of programs such as Seismic Un*x, SEPLib, and FreeUSP. To optimize performance,
SLIMpy uses an Abstract Syntax Tree that parses the algorithm and optimizes the pipes.
- Python SLIMpy is written in pure Python.
- SCons is a build tool similar to make.
- svn is a version control client similar to cvs
- Madagascar is an open-source software package for geophysical data processing and reproducible numerical experiments.
To install
SLIMpy check it out of the
SLIMpy repository by using the commands:
[shell]$ git clone https://github.com/slimgroup/SLIMpy.git ./core
[shell]$ git clone https://github.com/slimgroup/SLIMpy-contrib.git ./contrib
Once the files are on your machine from both the core and contrib directories run:
[shell]$ python setup.py install [--prefix=/path/to/mypython]
- Note:
- If you use the --prefix option the path you set must be on your PYTHONPATH.
If you are just browsing the
SLIMpy documentation the best place to start is from the groups:
SLIMPy is an academic research code which we share with the community through this alpha release. By releasing
SLIMpy as open source, we hope to create an active community to help us further develop this software.
Through this release, we hope that SLIMpy can grow into a widely-used library, supplementing the functionality of currently available processing-flow oriented (seismic) software packages. Please, use SLIMpy-user (http://slim.eos.ubc.ca/mailman/listinfo/slimpy-user) mailing list to report concerns and exchange the ideas. Those of you, who wish to contribute to development, please, subscribe to SLIMpy-devel (http://slim.eos.ubc.ca/mailman/listinfo/slimpy-devel).
The main features of
SLIMpy include:
- Powerful interpreted programming language (Python)
- Syntax (through overloading) close to pseudo-code for numerical linear algebra
- Abstract Syntax Tree analyzer/optimizer (including command rearrangement form improved performance)
- Concrete linear operator and vector classes, including dottests, domain-range and type checks
- Elementwise reduction-transformation operations (norms, elementary math)
- Compounded linear operators
- Augmented linear operators and vector classes
- Plugin mechanism for Unix pipe-based collections of (seismic) data processing programs
- Parallel execution of reduction/transformation operations
- Parallel execution of embarrassingly parallel linear operators (block diagonal)
- Integration with SCons
- Automatic cleanup of temporary datafiles (garbage collection)
- In-code documentation through Doxygen
SLIMpy is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
SLIMpy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with SLIMpy . If not, see http://www.gnu.org/licenses/
For the full licence, please see the COPYING and COPYING.LESSER files.
- Author:
- Sean Ross-Ross
- Date:
- May 22, 2008