PIES: Tool Suite - Release 1 IEGenLib
The PIES tool suite represents and specifies irregular computations and run-time reordering transformations in the Sparse Polyhedral Framework (SPF). It uses uninterpreted function symbols (UFSs) to represent indirect memory references and run-time generated data. The tool suite allows users to define data and index arrays, statements, scheduling functions, access functions, and data dependencies.
The core manipulation functions of the PIES tool suite reside in the IEGenLib library, which is the focus of Release 1.
IEGenLib uses abstract sets to represent data and iteration spaces, and abstract relations to represent memory access functions, scheduling functions, and transformation functions. IEGenLib supports operations on these abstract sets and relations to represent and transform computations in the SPF framework. The supported operations are taking the inverse of a relation, applying a relation to a set, composing two relations, and taking the union of two relations or two sets.
Download IEGenLib, Release 1
Release 1 of IEGenLib is distributed as a tar file, named iegenlib-1.1.0.tgz (5MB).
You can also download the nightly build.Unpack the Distribution
The distribution is shipped as a tar file. When you unpack the tar file it creates a directory that is the root of the distribution.
tar xzvf iegenlib-1.1.0.tgzThe distribution includes a README file, which is partially duplicated here.
Quick Start
After unpacking the distribution build and install using the standard sequence of commands../configure --build-python make make test make installThis will install into a directory IEGenLib/iegenlib Set IEGEN_HOME to /full/path/to/IEGenLib/iegen
IEGenLib Python Interface
Required to use Python bindings to IEGenLib: (Python 2.7.2 known to work on linux and Mac) The Python bindings shipped in the distribution (iegen/bindings/..) can also be used to interface to the library.(1) Set the PYTHONPATH environment variable export PYTHONPATH=$PYTHONPATH:$IEGEN_HOME/bindings - OR - setenv PYTHONPATH $IEGEN_HOME/bindings (2) Run python python >>> import iegenlib
Examples using the Python bindings can be found on the IEGenLib Examples page.
Documentation
Some OLD (1.0.0) Doxygen generated documentation can be found in the doc/refman.pdf file, or by following this link: refman.pdf (3MB). The full html documentation can be found in the doc/html/ directory, or at the IEGenLib Documentation page.
Sources for the project are found in the distribution root src/iegenlib/ sub-directory.
The library and demonstration driver create both string and dot output; the dot command is needed to visualize the dot output.