Loop Parallelization for MPC
HYCC examples are here.
Currently working:
- BFS algorithm
- Finding SCC for intra-loop dependencies
- Phi variable parsing
- Maven packaging system (see below)
- Graph creation
- Added tons of HYCC tests.
In progress:
- Designing the algorithm for multiple loops
This should be pretty strait forward, you will need these reqs:
- maven found here
If on windows the env variable M2_HOME, MAVEN_HOME and JAVA_HOME need to be set. I believe that on *nix systems that is done automatically, however I am not positive about OSX (I don't have a mac to test on). Once that is done all that is needed is to run the following in the root dir:
mvn package
Pyhon must also be installed an available in the PATH.
The usage is as follows:
usage: utility-name
-c,--class <arg> name of the class to analyze
-cp,--classpath <arg> path to the class to analyze
-j,--jcepath <arg> complete path to jce.jar, default: C:\Program
Files\Java\jdk1.8.0_221\jre\lib\jce.jar
-r,--rtpath <arg> complete path to rt.jar, default: C:\Program
Files\Java\jdk1.8.0_221\jre\lib\rt.jar
-
You can compile the test programs (assuming that javac is in your PATH) by running compile.py
-
There are two loggers, one is a file set to DEBUG the other is a console logger set to DEBUG both can be configured in tinylog.properties.
-
a folder that holds the graphs. This is deleted (if it exists) and recreated at runtime.
-
the default -j and -r arguments change depending on operating system.
-
Currently, the Java dependencies are (the mvn package step should download and set these up):
-
THe Python dependencies:
-
Creates graph pngs in the graphs/ directory
-
Createds python files in the z3_python/ directory
-
Creates JavaDoc jar file