Using the JAR Tool - RWTH-HPC/PPL GitHub Wiki
If you do have the have finished the setup, please have a look here.
PPL is a tool which generates an APT and performs global optimizations for it. The APT can be printed as a Python graphviz to generate the APT as a PDF file. Please make sure that you have installed graphviz as well as the Python interface.
If you want to compile the tool yourself, you can find the generated .jar in the target directory of PPL-Tool package.
The tool can be used as follows:
java --add-opens java.base/java.lang=ALL-UNNAMED -jar .\PPL.jar
This call executes the .jar file and should provide all runtime flags you can use. These flags are:
| short flag | long flag | Description |
|---|---|---|
| -rand | --randomNameExtension=<value> | The length of the random name extension. Default value: 10 |
| -FULL | --printFullAPT | Print the fully nested APT. |
| -over | --overlap=<value> | Define the overlap of network cost and execution cost. Default value: 0.0 |
| -v | --version | Get the version of the tool. |
| -s | --splitSize=<value> | The size in which the index range will be grouped. Default value: 128 |
| -b | --baseMapping | Print and generate a default mapping. |
| -t | --timeLimitILP=<value> | The maximum duration for a single ILP to be solved. Default value: 240 |
| -CALL | --printCallGraph | Print the Call Graph. |
| -l | --lookahead=<value> | Define the lookahead for the mapping optimization. Default value: 1 |
| -o | --output=<value> | The output path for the generated code. Default value: a.cpp |
| -n | --network=<value> | The path to the network definition. Default value: |
| -d | --dataSplitSize=<value> | The size in which the data elements will be grouped. Default value: 1024 |
| -i | --input=<value> | The target file to be optimized. Target files may not have a '-' in their name. Default value: |
| -h | --help | Get a description of the tool. |
| -opt | --optreport | Print the optimization report. |
| -APT | --printTheoreticalAPT | Print the theoretical APT. |