Valutazione dei core della CPU per l'ottimizzazione

 

Suggerisco di raccogliere statistiche sulle prestazioni dei vari processori per stimare la loro efficacia per lo Strategy Tester in modalità di ottimizzazione.

Per essere più obiettivo, suggerisco di utilizzare un Expert Advisor che funziona in modalità"Mathematical Computing" che consente di ridurre al minimo l'uso del disco rigido e della memoria del computer. Se possibile, specificate il nome del processore, della scheda madre e la frequenza della RAM.

L'Expert Advisor ha solo un parametro che dovrebbe essere ottimizzato (in realtà, non è nulla e i dati sono identici per tutti gli agenti - per essere oggettivi), specificare il numero di passaggi pari al numero di thread e selezionare gli agenti dal numero di core del processore (nessuna iperformazione!).

Spero che i dati raccolti aiutino le persone nella scelta di un hardware per l'ottimizzazione che è ragionevole prendere non del primo ordine, almeno è stato così ultimamente, ma qualcosa può cambiare.

L'Expert Advisor stesso è un ritaglio di un vero EA che uso in un compito simile per selezionare le foglie da un albero di decisione, cioè è un vero compito del Ministero della Difesa e se ci sono idee su come velocizzare il codice sarei molto interessato ad ascoltarle. Ci sono solo 1000 foglie nel codice, in realtà ce ne sono già più di 70.000, quindi vengono messe in una funzione per un tempo di attesa accettabile per il risultato della compilazione.

2019.08.09 23:04:26.397 Terminal        Windows 7 Service Pack 1 (build 7601) x64, IE 11, Intel Core i5  M 450 @ 2.40 GHz, Memory: 2045 / 3766 Mb, Disk: 53 / 148 Gb, GMT+3
Nel registro di Strategy Tester attraverso il menu contestuale, spunta la casella "Registro completo di ottimizzazione".
2019.08.09 22:41:25.630 Core 2  pass 2 returned result 1001000.00 in 0:04:50.391
2019.08.09 22:41:26.642 Core 1  pass 0 returned result 1001000.00 in 0:04:51.365
2019.08.09 22:46:09.036 Core 2  pass 3 returned result 1001000.00 in 0:04:43.441
2019.08.09 22:46:10.759 Core 1  pass 1 returned result 1001000.00 in 0:04:44.152
2019.08.09 22:46:10.759 Tester  optimization finished, total passes 4
2019.08.09 22:46:10.769 Statistics      optimization done in 9 minutes 36 seconds
2019.08.09 22:46:10.769 Statistics      shortest pass 0:04:43.441, longest pass 0:04:51.365, average pass 0:04:47.337

Aggiunto: In questo thread si è scoperto che la dimensione del file in alcuni (questo è da scoprire) processori influenza le prestazioni del sistema nel suo complesso, anche se il codice strutturalmente non cambia molto. Perciò chiedo a tutti di testare due tester.

Esempio di impostazioni del tester - simbolo, periodo e timeframe non sono importanti - le altre impostazioni sono rilevanti. Lo screenshot mostra un altro EA, ma le impostazioni sono corrette


Finora, abbiamo la seguente valutazione dove è stato utilizzato il tempo medio in secondi - le due ultime colonne e l'ultima colonna mostra il numero di passaggi del processore in 1 ora.

La tabella è filtrata dall'ultima colonna, come l'opzione EA più pesante in termini di consumo di risorse computazionali.



Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Большую часть времени современные компьютеры простаивают и не используют всех возможностей процессора. Мы предлагаем задействовать их с пользой. Вы можете сдавать мощности вашего компьютера другим участникам нашей сети для выполнения разнообразных...
File:
 
Aleksey Vyazmikin:

Suggerisco di raccogliere statistiche sulle prestazioni dei diversi processori al fine di stimare la loro efficienza per il tester di strategia per lavorare in modalità di ottimizzazione.

Buona iniziativa, la sostengo.

Ricevo un avvertimento durante la compilazione:

implicit conversion from 'number' to 'string'   Tree_Brut_TestPL.mq5    2567    16

È normale che sia così?

Stringa:

   if(FrameAdd(Test_P,1,0,stat_values)==false)
 
Aleksey Vyazmikin:

Suggerisco di raccogliere statistiche sulle prestazioni dei vari processori per stimare la loro efficacia per lo Strategy Tester in modalità di ottimizzazione.

Per essere più obiettivo, suggerisco di utilizzare un Expert Advisor che funziona in modalità"Mathematical Computing" che permette di ridurre al minimo l'uso del disco rigido e della memoria del computer. Se possibile, specificate il nome del processore, della scheda madre e la frequenza della RAM.

L'Expert Advisor ha solo un parametro che dovrebbe essere ottimizzato (in realtà, non è nulla e i dati sono identici per tutti gli agenti - per essere oggettivi), specificare il numero di passaggi pari al numero di thread e selezionare gli agenti dal numero di core del processore (nessuna iperformazione!).

Spero che i dati raccolti aiutino le persone a scegliere un hardware per l'ottimizzazione che è ragionevole prendere non del primo ordine, almeno è stato così ultimamente, ma alcune cose potrebbero essere cambiate.

L'Expert Advisor stesso è un ritaglio di un vero EA che uso in un compito simile per selezionare le foglie da un albero di decisione, cioè è un vero compito di MdC e se ci sono idee su come velocizzare il codice sarei molto interessato ad ascoltarle. Ci sono solo 1000 foglie nel codice, in realtà ce ne sono già più di 70.000, quindi vengono messe in una funzione per un'aspettativa di compilazione accettabile.

Su quale periodo dovreste ottimizzare e in quale lasso di tempo? Lo strumento è importante?
 
Serhii Shevchuk:

Buona iniziativa, la sostengo.

Dà un avvertimento durante la compilazione:

È così che dovrebbe essere?

Linea:

Corretto e rilanciato!

Provatelo.

 
Maxim Romanov:
Su quale periodo ottimizzare e in quale lasso di tempo? Lo strumento è importante?

In modalitàCalcolo matematico non ha importanza, lì non vengono generati tick!

 
Che dire? Il ceppo della fine degli anni 2000 non decolla più? :D
 
Artem Prischepa:
Cosa c'è là fuori? Il ceppo della fine degli anni 2000 non decolla più? :D

Prova il tuo processore e pubblica i tuoi risultati - vedi se decolla o se rotola e basta!

 

Un cavallo vecchio rovina il solco?

hardware

Risultati:

2019.08.09 23:22:07.472 Tester  set "Custom max" as optimization criterion for mathematical calculations
2019.08.09 23:22:07.540 Experts optimization frame expert Tree_Brut_TestPL (EURUSD.m,H1) processing started
2019.08.09 23:22:07.592 Tester  cache file 'tester\cache\Tree_Brut_TestPL.30.DFF2DB61B8A3751199D61AD0A0F226D3.opt' deleted
2019.08.09 23:22:07.623 Tester  Experts\Tree_Brut_TestPL.ex5 math calculations test means no history and no symbol info for EURUSD.m
2019.08.09 23:22:07.623 Tester  complete optimization started
2019.08.09 23:22:07.648 Core 1  agent process started on 127.0.0.1:3008
2019.08.09 23:22:07.650 Core 2  agent process started on 127.0.0.1:3009
2019.08.09 23:22:07.652 Core 3  agent process started on 127.0.0.1:3010
2019.08.09 23:22:07.654 Core 4  agent process started on 127.0.0.1:3011
2019.08.09 23:22:07.657 Core 5  agent process started on 127.0.0.1:3012
2019.08.09 23:22:07.659 Core 6  agent process started on 127.0.0.1:3013
2019.08.09 23:22:07.662 Core 7  agent process started on 127.0.0.1:3014
2019.08.09 23:22:07.664 Core 8  agent process started on 127.0.0.1:3015
2019.08.09 23:22:07.972 Core 1  connecting to 127.0.0.1:3008
2019.08.09 23:22:07.973 Core 1  connected
2019.08.09 23:22:07.983 Core 1  authorized (agent build 2097)
2019.08.09 23:22:07.997 Core 1  common synchronization completed
2019.08.09 23:22:08.035 Core 3  connecting to 127.0.0.1:3010
2019.08.09 23:22:08.036 Core 3  connected
2019.08.09 23:22:08.046 Core 3  authorized (agent build 2097)
2019.08.09 23:22:08.056 Core 2  connecting to 127.0.0.1:3009
2019.08.09 23:22:08.057 Core 2  connected
2019.08.09 23:22:08.059 Core 3  common synchronization completed
2019.08.09 23:22:08.067 Core 5  connecting to 127.0.0.1:3012
2019.08.09 23:22:08.068 Core 5  connected
2019.08.09 23:22:08.068 Core 2  authorized (agent build 2097)
2019.08.09 23:22:08.082 Core 2  common synchronization completed
2019.08.09 23:22:08.083 Core 5  authorized (agent build 2097)
2019.08.09 23:22:08.103 Core 7  connecting to 127.0.0.1:3014
2019.08.09 23:22:08.104 Core 7  connected
2019.08.09 23:22:08.119 Core 7  authorized (agent build 2097)
2019.08.09 23:22:08.125 Core 5  common synchronization completed
2019.08.09 23:22:08.140 Core 7  common synchronization completed
2019.08.09 23:22:08.150 Core 4  connecting to 127.0.0.1:3011
2019.08.09 23:22:08.151 Core 4  connected
2019.08.09 23:22:08.151 Core 8  connecting to 127.0.0.1:3015
2019.08.09 23:22:08.151 Core 8  connected
2019.08.09 23:22:08.162 Core 8  authorized (agent build 2097)
2019.08.09 23:22:08.164 Core 4  authorized (agent build 2097)
2019.08.09 23:22:08.184 Core 6  connecting to 127.0.0.1:3013
2019.08.09 23:22:08.185 Core 6  connected
2019.08.09 23:22:08.208 Core 6  authorized (agent build 2097)
2019.08.09 23:22:08.228 Core 4  common synchronization completed
2019.08.09 23:22:08.240 Core 6  common synchronization completed
2019.08.09 23:22:08.250 Core 8  common synchronization completed
2019.08.09 23:24:45.931 Tester  optimization finished, total passes 8
2019.08.09 23:24:45.941 Statistics      optimization done in 2 minutes 38 seconds
2019.08.09 23:24:45.941 Statistics      shortest pass 0:02:35.945, longest pass 0:02:37.669, average pass 0:02:37.006
2019.08.09 23:24:45.941 Statistics      8000 frames (3.14 Mb total, 412 bytes per frame) received
2019.08.09 23:24:45.941 Statistics      local 8 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2019.08.09 23:24:45.988 Tester  8 new records saved to cache file 'tester\cache\Tree_Brut_TestPL.30.DFF2DB61B8A3751199D61AD0A0F226D3.opt'

Versione terminale:

2019.08.09 23:20:35.776 Terminal        MetaTrader 5 x64 build 2085 started (MetaQuotes Software Corp.)
2019.08.09 23:20:35.778 Terminal        Windows 10 (build 17763) x64, IE 11, UAC, AMD FX-8300 Eight-Core Processor , Memory: 17102 / 24574 Mb, Disk: 2407 / 2441 Gb, GMT+2
 
Serhii Shevchuk:

Un cavallo vecchio rovina il solco?

Risultati:

Versione terminale:

Sembra che abbiate 8 agenti coinvolti, e ne avete bisogno di 4, perché le FPU in FX hanno solo 4 e 8 ALU, ed è la FPU che viene caricata durante l'ottimizzazione. Perché così - non è chiaro - domanda agli sviluppatori, perché il codice è costruito in gran parte sul confronto, ma apparentemente il consumo di calcolo in virgola mobile prevale o volte più lento, quindi si scopre che è necessario impostare il numero di coprocessori, poi 1 passaggio sarà più veloce e il tempo medio rimarrà lo stesso.

 
Aleksey Vyazmikin:

Sembra che tu abbia 8 agenti coinvolti e ne hai bisogno di 4, poiché la FPU in FX è solo 4 e 8 APU, ed è la FPU che viene caricata durante l'ottimizzazione. Perché è così - non è chiaro - domanda agli sviluppatori, perché il codice è per lo più basato sul confronto, ma apparentemente il consumo del calcolo in virgola mobile prevale o è volte più lento, quindi si scopre che è necessario impostare esattamente il numero di coprocessori, poi 1 passaggio sarà più veloce e il tempo medio rimarrà approssimativamente lo stesso.

Si prega di chiarire. Spengo 4 agenti e imposto il parametro da ottimizzare in modo da ottenere 4 passaggi di ottimizzazione o 8 passaggi?
 
Serhii Shevchuk:
Si prega di chiarire. Disabilito 4 agenti e imposto il parametro da ottimizzare in modo da ottenere 4 passaggi di ottimizzazione o 8 passaggi?

8 passa 4 agenti, un po' come l'hypertrading - secondo il numero di fili.

Attivate"Full optimisation log" per vedere il tempo di ogni passaggio.
Motivazione: