Genetic vs Random Cpu usage
26 replies
gentmat
8 years ago #113897
I am asking a pre-sales question to know what computer to buy for your application :
Of what i know ( and correct me if i am wrong ) its better to buy a xeon (Multi core) than a high clock speed CPU
So 24 Dual Core intel xeon (2.8 GHZ) is better than 8 cores (3.7 GHZ).
But this is true when using genetic algorith as the multi Thread will help evaluate all generation in different cores .
My question is the following :
I only use Random population ( Because genetic will lead to similar strategies whatever i do )
So does random population use multi core or only cpu high clock speed and cache .
Is the random strategies created each one on different core ? like the genetic ?
or if i have a 24 cores , the 24 cores will create 24 different strategies simultaneously
Thank you
tomas262
8 years ago #131152
Yes, both methods can utilize all available cores (according to Tool – Options – Performance setting)
Mark Fric
8 years ago #131158
yes, I confirm once again – both methods use all available cores (providing you set them in Tool – Options – Performance setting), and in SQ 3 Random generation is even more effective than Genetic evolution in this, because there are some simple genetic operations that are not parallelized,
It will work even better with new SQ 4.
Mark
StrategyQuant architect
gentmat
8 years ago #131190
Thank you Guys ,
I got a 5650 Xeon , 24 threads … I changed the settings to 24 threads and the cpu average is 4% (most of the time)
Max peak to 12% or 14 (average time aroun 0.5 second per strategy compare to the below)
My macbook pro late 2014 , 3.7 ghz , 1260 xeon with 8 threads peak at 80-100% and is much much faster to find strategies (0.04) average time on h4.
Is there any bug that multicore are not used so the cpu is only peaking 4-10% ?
geektrader
8 years ago #131298
SQ3 is very ineffective in multi-core-usage, unfortunately. I can confirm that behaviour as well. Hope SQ4 does this a lot better.
Threshold
8 years ago #131373
+1 I hope for more CPU usage. I’m averaging about 15% CPU usage for X2 quadcore xeons with SQ set to highest priority and max threading. I’d like to see what it can do with 80+%. The computer is entirely dedicated to SQ.
Should I just run x3 SQ?
nolube
8 years ago #131387
+1 I hope for more CPU usage. I’m averaging about 15% CPU usage for X2 quadcore xeons with SQ set to highest priority and max threading. I’d like to see what it can do with 80+%. The computer is entirely dedicated to SQ.
Should I just run x3 SQ?
Yes, that’s what I do. Your licences are specific to your computer so can use the same licence code 3 times on the same computer.
geektrader
8 years ago #131388
Same here, I set CPU cores in the settings to “1” and just open as many instances (you have to copy them each to their own directory – I do it with a smart .BAT file) as I have cores and perform the strategy generation task. This way all cores are used 100% of the time.
gentmat
8 years ago #131391
True but many instances will not perform like true 1 instance application ( I am a dev ) .
Hopefully sq4 will fix that .
Thanks guys for confirming that you have same results . I suggest as i wrote at first get a high cpu clock and not many cores . even the 1 instance will
outperform the 4 instances in multicore .
geektrader
8 years ago #131392
I am dev too and it´s not always true, it depends on how well the implementation has been done. Also, through several instances, I get more diversification in the genetic optimization paths that end up in different results as they take different (random) evolution ways. Hence I personally prefer to use multiple instances than just one.
Threshold
8 years ago #131405
I’m running 4 SQ now, each assigned to 2 cores and averaging about 85% CPU usage without loss of generation speed. Just need more ram, but I have 32GB.
This is producing results FAR faster. (like literally 4x faster)
Threshold
8 years ago #131407
I also must add, strategies that have Simple rules checked in on the building blocks seem to generate at more than twice the speed of those without simple rules.
Threshold
8 years ago #131421
I think GeekTrader’s idea may be the best route to take (many cores, high RAM, and multiple instances of SQ) rather than less cores, higher frequency, and running only 1 SQ.
Random Gen is @ 25k strategies tested in about 1 hour on each SQ. So 4SQ x 25k= 100k generations in 1 hour @ 2.83GHZ 8 cores. That should be a few million in a day.
On my quadcore 4.1GHZ running 1 instance of SQ, it would take a couple days to reach just 1 million.
gentmat
8 years ago #131445
Hi Threshold,
Thank you for your time and testing . I think you are missing many factors with your test
ex:
Using lower timeframe wil make the more core more efficient and that is the effect of the cache cpu l3,l2 so the time to grab these data and sync takes time .
but if you use h4 or d1
you will notice that the higher clock cpu will outperform the multi core 4 cores 4.1 > 8 cores 2.8
Add on that the generation architecture of the cpu . can you please tell me the serial of the 2 cpu that you are comparing .
note : Simple rules are faster for 1 reason because the max period is aroud 40 period and the number between 50
but non simple rules can use like EMA of 100 or 150 depand on the max period that you choose , which will make the cpu calculate more candles rather than 40 candles backward.
But if you decrease the max number of indicator period to around 50 you will notice that it should give same speed ( in theory ) . in theory because BBands for exemple use more complex math than rsi and so on . so depand on the indicator chosen it will take time to process that .
gentmat
8 years ago #131446
Anyway i want to ask you as you are old customer . how much does it take you time usually to find 1 good strategy ? i ve playing around for 1 week but all my strategies failed the robust test . im beginning to loose hope
Threshold
8 years ago #131450
I think 5 million generations will usually give you a solid strategy when generated from a single pair (using only random gen) with even using additional data from other brokers. This depends on your filters, building blocks, and what pair you are generating on. Some pairs take a lot of generations depending on the TF and building blocks.
A strategy built on only 1 asset will usually “fail” a robustness test when data and parameters are altered because the strategy is curve fitted, but that doesn’t mean the strategy won’t work. The Robustness test feature is very discretionary. I think if a strategy has a 15%DD in backtest, and 35%DD @ 95% confidence in RT, its definitely a pass with data and parameters altered and the EA was generated from only 1 pair. If you want more robust strategies, use multiple broker data and make sure they are all the same timezone. Broker data varies that much and your strategies will be less curve-fitted. Also don’t rely so much on robustness testing. Just put them on a demo account and see.
The 4.1GHZ quadcore is AMD Phenom Black Edition 975 overclocked
The other is 2 xeon e5440s.