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.tgz
The 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 install
This 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.