A project to apply RTX to JVM/GraalVM in order to find out optimal JVM startup parameters for given scenarios
The idea of the project is that we have different scenarios a JVM might run in and we want to optimize the JVMs startup parameters to tune the results.
The scenarios are to run a given code...
- as fast as possible (in JIT)
- with minimum variance (no high spikes)
- in a memory limited environment (compilation is limited)
- as a batch that should finish fast (JVM startup & compilation included)
As there are many parameters on the JVM, we focus on those that are responsible for loop unrolling, code inlining and compilation thresholds. As this still is a high dimensional optimization problem we want to use RTX with a ANOVA-Optimizer to find out relevant knobs fast and optimize the scenario.
- Run
> sudo python setup.py
to install all python and JVM dependencies - Start a scenario like
> python start.py start scenarios/singleRun/1a-inlining-size