<commit_before># Polyite: Iterative Schedule Optimization for Parallelization in the Polyhedron Model

## Description
Polyite is a tool that iteratively optimizes the schedule of a program that is representable in the [Polyhedron Model](http://polyhedral.info) in order to exploit the computing capacity of a given multi-core hardware.

The exploration of the schedule search space can be done either at random or in a guided fashion using a genetic algorithm.

We describe the approach in detail in our TACO'2017 article [Iterative Schedule Optimization for Parallelization in the Polyhedron Model](https://stganser.bitbucket.io/taco2017/).

## Legal
Polyite is released under MIT license.

Polyite depends on LLVM, Clang, Polly, isl, libbarvinok and <NAME>'s Chernikova implementation of Chernikova's algorithm. LLVM, Clang and Polly are released under the LLVM Release License or derivates of it. isl and Chernikova are released under MIT license. libbarvinok is GPL licensed.

## Installation and Setup
We start from the bottom up with the dependences of Polyite and install everything inside the same directory, which could be your IDE's workspace.

We explain how to get Polyite running for the benchmarks from the [Polybench 4.1](http://web.cse.ohio-state.edu/~pouchet.2/software/polybench/) benchmark suite.

```bash
export BASE_DIR=$PWD
```

### Polly/LLVM
Polyite uses an extended version of Polly 3.9.1 (for the TACO'2017 we used 3.9) that is capable of importing schedule trees from our extended JSCOP format and
further transforming the imported schedules, for instance by tiling them. Therefore, you must clone LLVM, Clang and Polly from our specially provided repositories.

1. Create a root directory for LLVM
```bash
mkdir llvm_root
export LLVM_ROOT="${BASE_DIR}/llvm_root"
```

2. Clone LLVM
```bash
cd ${LLVM_ROOT}
git clone https://github.com/stganser/llvm.git
```

3. Get Clang
``` bash
cd ${LLVM_ROOT}/llvm/tools
git clone https://github.com/stganser/clang.git
```<commit_msg>corrects a typo in README<commit_after># Polyite: Iterative Schedule Optimization for Parallelization in the Polyhedron Model

## Description
Polyite is a tool that iteratively optimizes the schedule of a program that is representable in the [Polyhedron Model](http://polyhedral.info) in order to exploit the computing capacity of a given multi-core hardware.

The exploration of the schedule search space can be done either at random or in a guided fashion using a genetic algorithm.

We describe the approach in detail in our TACO'2017 article [Iterative Schedule Optimization for Parallelization in the Polyhedron Model](https://stganser.bitbucket.io/taco2017/).

## Legal
Polyite is released under MIT license.

Polyite depends on LLVM, Clang, Polly, isl, libbarvinok and <NAME>'s implementation of Chernikova's algorithm. LLVM, Clang and Polly are released under the LLVM Release License or derivates of it. isl and Chernikova are released under MIT license. libbarvinok is GPL licensed.

## Installation and Setup
We start from the bottom up with the dependences of Polyite and install everything inside the same directory, which could be your IDE's workspace.

We explain how to get Polyite running for the benchmarks from the [Polybench 4.1](http://web.cse.ohio-state.edu/~pouchet.2/software/polybench/) benchmark suite.

```bash
export BASE_DIR=$PWD
```

### Polly/LLVM
Polyite uses an extended version of Polly 3.9.1 (for the TACO'2017 we used 3.9) that is capable of importing schedule trees from our extended JSCOP format and
further transforming the imported schedules, for instance by tiling them. Therefore, you must clone LLVM, Clang and Polly from our specially provided repositories.

1. Create a root directory for LLVM
```bash
mkdir llvm_root
export LLVM_ROOT="${BASE_DIR}/llvm_root"
```

2. Clone LLVM
```bash
cd ${LLVM_ROOT}
git clone https://github.com/stganser/llvm.git
```

3. Get Clang
``` bash
cd ${LLVM_ROOT}/llvm/tools
git clone https://github.com/stganser/clang.git
```
{'fraction_non_alphanumeric': 0.0720540405303978, 'fraction_numerical': 0.011508631473605204, 'mean_word_length': 4.914201183431953, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6550560', 'n_tokens_mistral': 1183, 'n_tokens_neox': 1102, 'n_words': 523}