15% performance-boost and 40% less memory-usage using GraalVM
82 replies
geektrader
3 years ago #257329
Hi 🙂
I just wanted to share my “new” find. As always, I am exploring options about how to increase the speed of SQX for my daily workflow by tuning parameters, garbage collectors, etc. Lately, I´ve learned about GraalVM, which is a relatively new JIT-compiler that has maximum performance as its goal and has been shown sometimes to be up to 30x faster than if executing code in the standard JRE / OpenJDK runtimes that SQX is using right now. Over here is an excellent video about how it works, why it has been made and with some performance tests: https://www.youtube.com/watch?v=GinNxS3OSi0 For example: Twitter is running all their Java stuff on GraalVM instead of JRE / OpenJDK for a while now and have noticed a considerable drop in CPU and RAM usage.
And now the great part: using it with SQX is as easy as downloading the latest Windows binary from here https://github.com/graalvm/graalvm-ce-builds/releases
Simply unpack the ZIP file into the J64 of SQX (previously delete or rename the folder) and just continue working with SQX as you always did. Personally here is what I have experienced since replacing it and of course, using the same settings in SQX as before:
– about a 15% performance increase in strategy generation speed
– approximately a 40% drop in memory consumption (which is AMAZING given that I can now work with less RAM)
– no errors or crashes of SQX just works the same as with JRE / OpenJDK
As this is open-source, I would highly recommend that SQX is being shipped with GraalVM in its default configuration, as this seems to be amazing! There also is an Enterprise Edition available that seems to be even faster, but it´s 193 Euro/year and I haven´t tested it yet.
Have fun crunching strategies 😉
tom
1 year ago #279832
Can you advise on these settings also for MacOS Ventura, M1 MAx, 32GB?
tom
1 year ago #279833
Hi Guys, GraalVM 22.0 is out and I´ve got another 5% boost through their new compiler optimizations for non-counted loops (compared to 21.3). I am referring to the 22.0 Java 11 based Enterprise Version over at: https://www.graalvm.org/downloads/ Once downloaded, you´ll have to delete these files for it to work correctly: \j64\languages\nfi\builder\svm-none.jar; \j64\languages\nfi\truffle-nfi-none.jar; For best performance I´d recommend to launch SQX via the “StrategyQuantX_nocheck.exe” and previously replace the “StrategyQuantX_nocheck.config” file with the following content: option -XX:-ShrinkHeapInSteps option -XX:+UnlockExperimentalVMOptions option -XX:+EnableJVMCI option -XX:+EagerJVMCI option -XX:-UseJVMCINativeLibrary option -XX:MaxNodeLimit=100000 option -Dgraal.CompilerConfiguration=enterprise option -Dgraal.UsePriorityInlining=true option -Dgraal.Vectorization=true option -Dgraal.OptDuplication=true option -Dgraal.TuneInlinerExploration=1 option -Dgraal.LoopRotation=true
Can you advise on these settings also for MacOS Ventura, M1 MAX, 32GB?
Conmariin
1 year ago #280211
The 22.3 work for me as well. No need to delete files. I added to the original config following:
option -Dgraal.CompilerConfiguration=enterprise
option -Dgraal.UsePriorityInlining=true
option -Dgraal.Vectorization=true
option -Dgraal.OptDuplication=true
option -Dgraal.TuneInlinerExploration=1
option -Dgraal.LoopRotation=true
Automatisches Handeln mit Expert Advisor
https://www.rabenesche.de
tom
1 year ago #280582
Any reason why only Java 11 (MAC OS, M1) amd64 version works for this (not even aarch64)? Java 17 or 19 does not work. Starting with Graal 23, there is no more Java 11.
Iron
1 year ago #280696
Hello everyone, is it just like this put in the j64 file?
Gin
3 months ago #284715
core dump crash segment
tnickel
2 months ago #285020
Hello, a lot of time has passed now and I would like to ask again whether anyone is using the faster GrahlVm in the current SQ 4.138?
Is it even compatible with version 4.138? And how much faster is it? Does it make sense to upgrade?
I am using Windows 10.
Thomas
https://monitortool.jimdofree.com/