-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
88 lines (65 loc) · 2.62 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#
# SMO README
#
# Somashekaracharya G B
#
# Uday Bondhugula
#
SMO is a storage/memory optimizer for affine loop nests based on the
polyhedral framework. Affine loop nests are nests where the array subscript
expressions are affine function of loop iterators and program parameters
(symbols that are not modified).
LICENSE
SMO is available under the MIT license. Please see file LICENSE for details.
INSTALLING SMO
Requirements: A Linux distribution. Pluto has been tested on x86 and
x86-64 machines running Fedora Core {4,5,7,8,9}, Ubuntu, and RedHat
Enterprise Server 5.x. Solaris should also be fine if you have GNU
utilities. In order to use the development version from Pluto's git
repository, automatic build system tools including autoconf, automake,
and libtool are needed. GMP (GNU multi precision arithmetic library) is
needed by ISL (one of the included libraries). If it's not already on
your system, it can be installed easily with, for eg.,
'sudo yum -y install gmp gmp-devel' on a Fedora, or
'sudo apt-get install libgmp3-dev' on an Ubuntu.
SMO includes all libraries that it depends on. autoconf/automake
system will take care of automatically building everything. Nothing else
needs to be downloaded and installed separately.
To use the Python wrapper for SMO, make sure that the following are
installed.
python-dev (sudo apt-get/yum/dnf install python-dev)
islpy (via Python PIP)
python-glpk (sudo apt-get/yum/dnf install python-glpk)
If you are unable to build/install Python wrappers for glpk via Python's PIP
due to a more recent version of glpk on your system, use the pyglpk
available here: https://github.com/bradfordboyle/pyglpk
BUILDING SMO
Stable release
$ tar zxvf smo-1.0.tar.gz
$ cd smo-1.0/
$ ./configure
$ make
$ make test
configure can be provided --with-isl-prefix=<isl install location> to
build with another isl, otherwise the bundled isl is used.
Development version from Git
$ git clone git://github.com/bondhugula/smo.git
$ cd smo/
$ git submodule init
$ git submodule update
$ ./autogen.sh
$ ./configure [--enable-debug] [--with-isl-prefix=<isl install location>]
$ make
$ make test
* --with-isl-prefix=<location> to compile and link with an already installed
isl. By default, the version of isl bundled with Pluto will be used.
EXAMPLES
The examples/ directory contains conflict set specifications for various
examples. Each of these files can be provided as an input to the prototype
through the command line options
CONTACT
Please send all bugs reports and comments to S. Bhaskaracharya