CorePrio not helping with metatrader 5 software for windows

Started by paolosioli, March 23, 2019, 12:18:07 PM

Previous topic - Next topic

paolosioli

hi guys. congratulations for your great job.
i rent a 2990wx to use with the most famous trading software (metatrader 5) for windows
this last version 5 support all virtual cores of cpu
so the 2990wx is recognized ad 64 thread cpu, correct, and awesome!!!
in fact, during elaboration, it's possible to see the realtime usage of any single thread of 64

unfortunately, performance of the 2990wx with that software are bad
the 2990wx with 32 core is performing lower than a epyc 7401p with only 24 cores (with lower speed)
i'm also renting the epyc processor, so i'm able to compare performance directly on the 2 remote server
same version of windows 10, same metatrader 5 platform, same identical test passes elaborations

i already tried coreprio with all standard combinations (DLM on/off, NUMA on/off), but it seems not improving any result
could anyone help me? i will be happy to donate some tens of dollars for your help
thanks

if needed, i could post a video of comparison between the 2 remote dedicated server
thanks in advance
paolo

Jeremy Collake

#1
Have you tried, with the NUMA Dissociater enabled and DLM disabled, restarting the MetaTrader process? The NUMA Dissociater is known to only work about 50% of the time, so performance can vary between instances of MetaTrader. Restarting its process lets you initiate a new test.

This variance in efficacy is not any bug in Coreprio, but rather something unknown about the nature of the 2990wx performance issue in Windows. Nobody has precisely determined the root cause of the performance issue to date afaik. We only see the symptoms, have mitigating actions, and unproven hypothesis.
Software Engineer. Bitsum LLC.

paolosioli

ciao jeremy!
thanks for quick reply
as you suggested, i tried every configuration about 10 times, to check if there are differences in execution times
i got no differences
here are the results:

AMD EPYC 7401P - 24 CORE without coreprio:
60 sec

AMD THREADRIPPER 2990WX - 32 CORE with coreprio:
DLM off NUMA off: 90 sec
DLM on NUMA off: 85sec
DLM on NUMA on: 75 sec
DLM off NUMA on: 75 sec

it seems that only NUMA enabled will improve a little the global performance
but it's still slower than the epyc processor
32 cores should be faster than 24 cores
instead it's still slower

my last try was to enable only 1 cpu in the software
to be sure that a single ore of 2990WX is really faster than a single core of the EPYC
here are the results
same job on a single core on epyc 7401p: 762 sec
same job on a single core on amd 2990wx: 560 sec (coreprio disabled)

so the single core of 2990wx is really faster than a single epyc core
and having 32 cores instead of just 24 should increase more and more the global performance
instead, the global performance is even slower! aaaaargh!!!


how could i do improve when they are running all together?
thanks again

paolo

Jeremy Collake

When you say "enable only 1 cpu in the software", by which method did you do this? In the UEFI settings, AMD software, or with a persistent CPU affinity on Metatrader like with Process Lasso? If not the latter, that would be an interesting experiment.

This does seem to be a NUMA related issue for Metatrader. I am surprised the NUMA Dissociater had no impact. To confirm, did you understand that you need to restart the Metatrader process between each test /w the NUMA Dissociater on?

Most likely, I will have to install and study Metatrader software locally here. I find it hard to make any commitment about that though.

One thing to consider is whether the 2990wx will be anything more than a niche blip in history. As Ryzen 3 is launched, and the TR3's come out, it seems this issue is likely to no longer exist. We'll see, but the unified I/O in Ryzen 3 should provide more consistent performance. If this ends up meaning consistently poor performance, then Windows kernel devs would presumably be forced to take action. Or maybe the inconsistent performance persists; hard to say since we don't fully understand the nature of the problem.
Software Engineer. Bitsum LLC.

paolosioli

ciao
metatrader software let user choose how many threads to use
it's possible to select any number
after starting elaboration, it will be also possible to see the only thread selected really work
it's very nice ;-))

yes, i understoo do close and restart metatrader application after each setting change ;-)

in the next post il will show you a short video and give you the link with a zipped folder to let you test it by yourself ok?

happy to read that probably with all next amd processors the problem will disappear
but at the moment, it's actually the more powerful processor on the market at a reasonable price
and it's a shame that it's not possible to use it at its limits ;-((


paolosioli

ciao!
here is the video
www.youtube.com/watch?v=lNplPEi9TE4

and here is the zipped folder to repeat the performance test in the video
www.siolibros.net/temp/MetaTrader5CorePrio.zip

i forgot to show where it's possible to see the final elaboration time
it's in the last bottom right tab, called JOURNAL
start back from the final rows and go up of some ones
you will find a row like this "optimization done in XXXX minutes"
here is a screenshot www.siolibros.net/temp/coreprio.gif

thanks for all

paolosioli

hi guys
did someone try something?
or it's better to wait for next version of threadripper coming this summer?
thanks



Jeremy Collake

Pending ;). Thanks for the additional data and package. Note that I can not promise anything, but do plan to take a look.
Software Engineer. Bitsum LLC.

edkiefer

Bitsum QA Engineer