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 packagePyhon 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