15% performance-boost and 40% less memory-usage using GraalVM
82 replies
geektrader
4 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 😉
Gianfranco
4 years ago #257397
default setting  cpu …liquid cooler
geektrader
4 years ago #257398
Still, temperatures are OK if using GraalVM? Did you monitor, especially your CPU clock under full load?
ivan
4 years ago #257399
i have a 3700X and i will also test and record the hardware and software performance
maybe it would be a good idea for some of you to create a configuration file and run for one or 2 days to make sure we measure the same thing, of course this will take a few days to run the same configuration file on 2 different types of software and record the results
Timisoara, Romania
3900X 3.8 Ghz 12 cores, 64GB RAM DDR4 3000Mhz, Samsung 970 EVO Plus M.2 NVMe
Threshold
4 years ago #257403
Excellent contribution as always Greektrader.
alanhere
4 years ago #257551
This is a free performance upgrade
Before
After
Time per strategy.. 7ms faster which means I’m getting 27% increase in performance.. AMAZING!
ivan
3 years ago #257646
I have made a few superficial tests on the 3700X
with the naked eye, the improvements are a bit less than 10%, barely visible
i speculate that the improvements could be proportional with the power of the processor
in any case, many thanks to geektrader for his valuable contribution
Timisoara, Romania
3900X 3.8 Ghz 12 cores, 64GB RAM DDR4 3000Mhz, Samsung 970 EVO Plus M.2 NVMe
hankeys
3 years ago #257649
for me the improvement is only with Eneterprise version
You want to be a profitable algotrader? We started using StrateQuant software in early 2014. For now we have a very big knowhow for building EAs for every possible types of markets. We share this knowhow, apps, tools and also all final strategies with real traders. If you want to join us, fill in the FORM.
geektrader
3 years ago #257650
Memory usage is about half for me regardless if normal or enterprise edition, compared to OpenJDK, JRE, etc.
David
3 years ago #260099
+15% for me Thank you, slight Temp increase (0.5) on CPU but is expected.
gin
3 years ago #260170
introducing new java compiler will lead to new unforeseen bugs and glitches in SQ
are you sure it is a good idea?
geektrader
3 years ago #260297
There will be no new bugs nor glitches if switching your JRE, as they are all 100% compatible.
geektrader
3 years ago #260303
By the way, make sure to use the latest GraalVM Enterprise Edition (just need to register a free account with Oracle), it´s been updated numerous times this year already. Download is here: https://www.oracle.com/downloads/graalvm-downloads.html
Make sure to select the “Current Release” at the upper tab, then select J”ava Version” to 11 and select the latest “Release Version”.
Have fun 🙂
clonex / Ivan Hudec
3 years ago #260319
<p style=”text-align: left;”>gentleman’s we need new threadrippers with 128 threads???
3800 eur. anyway happy to see this AMD resurrection!!!!
hankeys
3 years ago #260479
i tried newest Enterprise v. graalvm-ee-java11-windows-amd64-20.1.1
with no luck – SQX129 will not run with it
so i am using this version graalvm-ee-java11-windows-amd64-20.0.0
You want to be a profitable algotrader? We started using StrateQuant software in early 2014. For now we have a very big knowhow for building EAs for every possible types of markets. We share this knowhow, apps, tools and also all final strategies with real traders. If you want to join us, fill in the FORM.
geektrader
3 years ago #260480
I am running SQX129 with 20.1.1, no issues here. Whats the error you are getting?