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.0.1.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.0.1.tgz
The distribution includes a README file, which is partially duplicated here.
Quick Start
This distribution is shipped with LINUX-64 bit and Mac OSX binaries in addition to the sources and build system needed to compile and link on unix-based machines. In the below, assume the IEGEN_HOME environment variable is the path to the top installation directory. Two installation directories come with the package:
iegen-MACOSX/
and
iegen-LINUX64/.
IEGenLib Calculator
The iegenlib_calc binary can be executed to enter sets and relations and operations on them. When run, the iegenlib_calc suggests examples. $IEGEN_HOME/bin/iegenlib_calc The program will present a prompt for an input string. You may input any valid string and it will return the interpreted string and a formatted dot file to a file called set_relation.dot. The calculator continues until a blank line is input or [CTRL][D] is entered.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
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.
