Avaliação de núcleos de CPU para otimização

 

Sugiro a coleta de estatísticas sobre o desempenho de vários processadores para estimar sua eficácia para o Testador de Estratégia no modo de otimização.

Para ser mais objetivo, sugiro usar um Expert Advisor que roda no modo"Computação Matemática", o que permite minimizar o uso do disco rígido e da memória de seu computador. Se possível, especificar o nome do processador, placa-mãe e freqüência da RAM.

O Expert Advisor tem apenas um parâmetro que deve ser otimizado (na verdade, não é nada e os dados são idênticos para todos os agentes - para ser objetivo), especificar o número de passes igual ao número de fios e selecionar os agentes pelo número de núcleos do processador (sem hipertreinamento!).

Espero que os dados coletados ajudem as pessoas a escolher um hardware para otimização que seja razoável não tomar da primeira ordem, pelo menos tem sido assim ultimamente, mas algo pode mudar.

O Expert Advisor em si é um recorte de EA real que uso em uma tarefa semelhante para selecionar folhas de uma árvore de decisão, ou seja, é uma verdadeira tarefa MoD e se houver alguma idéia de como acelerar o código, eu ficaria feliz em ouvi-las. Existem apenas 1000 folhas no código, na realidade já existem mais de 70.000, portanto são colocadas em função de um tempo de espera aceitável para o resultado da compilação.

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
No registro do Strategy Tester através do menu de contexto, marque a opção "Full Optimisation Log" (Registro Completo de Otimização).
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

Acrescentado: Neste tópico, descobriu-se que o tamanho do arquivo em alguns (isto deve ser descoberto) processadores afeta o desempenho do sistema como um todo, embora o código estruturalmente não mude muito. Portanto, peço a todos que testem dois testadores.

Exemplo de configurações do testador - símbolo, período e cronograma não são importantes - as outras configurações são relevantes. A captura de tela mostra outra EA, mas as configurações estão corretas


Até agora, temos a seguinte classificação onde o tempo médio em segundos foi utilizado - as duas últimas duas colunas e a última coluna mostra o número de passes do processador em 1 hora.

A tabela é filtrada pela última coluna, como a opção EA mais pesada em termos de consumo de recursos computacionais.



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

Sugiro a coleta de estatísticas sobre o desempenho de diferentes processadores a fim de estimar sua eficiência para que o testador de estratégia trabalhe em modo de otimização.

Boa iniciativa, eu a apoio.

Recebo um aviso ao fazer a compilação:

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

É suposto ser assim?

Cordão:

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

Sugiro a coleta de estatísticas sobre o desempenho de vários processadores para estimar sua eficácia para o Testador de Estratégia no modo de otimização.

Para ser mais objetivo, sugiro usar um Expert Advisor que roda no modo"Computação Matemática", o que permite minimizar o uso do disco rígido e da memória de seu computador. Se possível, especificar o nome do processador, placa-mãe e freqüência da RAM.

O Expert Advisor tem apenas um parâmetro que deve ser otimizado (na verdade, não é nada e os dados são idênticos para todos os agentes - para ser objetivo), especificar o número de passes igual ao número de fios e selecionar os agentes pelo número de núcleos do processador (sem hipertreinamento!).

Espero que os dados coletados ajudem as pessoas a escolher um hardware para otimização que seja razoável não tomar da primeira ordem, pelo menos tem sido assim ultimamente, mas algumas coisas podem ter mudado.

O próprio Expert Advisor é um recorte de uma EA real que eu uso em uma tarefa semelhante para selecionar folhas de uma árvore de decisão, ou seja, é uma verdadeira tarefa MoD e se houver alguma idéia de como acelerar o código eu estaria muito interessado em ouvi-las. Existem apenas 1000 folhas no código, na realidade já existem mais de 70.000, portanto são colocadas em uma função para uma expectativa aceitável de tempo de compilação.

Em que período você deve otimizar e em que período de tempo? A ferramenta é importante?
 
Serhii Shevchuk:

Boa iniciativa, eu a apoio.

Ela dá um aviso ao compilar:

É assim que deve ser?

Linha:

Corrigido e relançado!

Teste-o.

 
Maxim Romanov:
Durante que período e em que prazo? A ferramenta é importante?

No modo deCálculo Matemático não importa, não são gerados carrapatos lá!

 
O que tem? O toco do final dos anos 2000 não está mais decolando? :D
 
Artem Prischepa:
O que há por aí? O cepo do final de 2000 não está mais decolando? :D

Experimente seu processador e poste seus resultados - veja se ele decola ou apenas rola!

 

Será que um cavalo velho estraga o sulco?

hardware

Resultados:

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'

Versão terminal:

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:

Será que um cavalo velho estraga o sulco?

Resultados:

Versão terminal:

Parece que você tem 8 agentes envolvidos e precisa de 4, porque a FPU em FX tem apenas 4 e 8 ALUs, e é a FPU que é carregada durante a otimização. Porque assim - não é claro - pergunta aos desenvolvedores, porque o código é construído em grande parte sobre a comparação, mas aparentemente o consumo de cálculo de ponto flutuante prevalece ou vezes mais lento, então acontece que é necessário definir o número de coprocessadores, então 1 passe será mais rápido e o tempo médio permanecerá o mesmo.

 
Aleksey Vyazmikin:

Parece que você tem 8 agentes envolvidos e precisa de 4, já que a FPU em FX é apenas 4 e 8 APUs, e é a FPU que é carregada durante a otimização. Por que é tão - não é claro - pergunta aos desenvolvedores, porque o código é baseado principalmente na comparação, mas aparentemente o consumo de cálculo de ponto flutuante prevalece ou é vezes mais lento, de modo que se torna necessário colocar exatamente o número de coprocessadores, então 1 passe será mais rápido e o tempo médio permanecerá aproximadamente o mesmo.

Por favor, esclareça. Eu desligo 4 agentes e defino o parâmetro a ser otimizado para que eu obtenha 4 passes de otimização ou 8 passes?
 
Serhii Shevchuk:
Por favor, esclareça. Desabilito 4 agentes e defino o parâmetro a ser otimizado para que eu tenha 4 passes de otimização ou 8 passes?

8 passes 4 agentes, tipo de análogo ao hypertrading - de acordo com o número de fios.

Ligue o"Diário de Otimização Completo" para ver o tempo de cada passe.