MetaTrader 5 Python User Group - como usar o Python no Metatrader - página 23

 
Lyuk:


A única coisa triste é que o número de trituradores só acelerou cerca de 12 vezes nos últimos 15 anos, eu pensava que as CPUs modernas eram mais rápidas.

Tenho um i7-3770K antigo, tem sete anos de idade. As CPUs de hoje são mais rápidas.

 
Roman:

Tenho um i7-3770K antigo, tem sete anos de idade. As CPUs modernas são mais rápidas.

Infelizmente, o seu 3770K é facilmente overclocking até 4,8Ghz, mesmo que fosse mais antigo 2600K, chegaria ao paraíso para overclocking, o objectivo geral é a tendência para reduzir o tamanho da CPU, o que leva a problemas de refrigeração. Por exemplo, 6xxx é mesmo um problema de overclock. De um modo geral, as especificações dos utilizadores não mudaram muito, excepto no último i9 que se tornou mais parecido com os xeons. A vantagem dos xeons é a eficiência energética em oposição às CPUs para consumidores normais. por isso o seu 3770k ainda é bastante normal para o utilizador médio

 
um tópico sobre testes de processador, e o autor tem feito um bom trabalho de recolha de estatísticas.
Se estiver interessado, pode testar os seus processadores.
Оцениваем ядра CPU для оптимизации
Оцениваем ядра CPU для оптимизации
  • 2019.08.09
  • www.mql5.com
Предлагаю собрать статистику по производительности разных процессоров с целью оценки их эффективности для работы тестера стратегий в режиме оптимиз...
 

Testado em máquina virtual Windows7 32bit com 2 núcleos FX AMD.

Em mql5 foram 6 segundos.

Em Python num só fio foram 2,5 segundos.

Isso é muito mais rápido, e até mais rápido do que tu na I7 num só fio, o que é espantoso.

Aparentemente o compilador jit funciona melhor para a AMD, ou a AMD é melhor para tais tarefas.

 
Então Python com um compilador jit bate C (mql) por um factor de 2 ! Se o executar num processador moderno de 8 núcleos, bate C por um factor de 8 simplesmente porque é multithreaded.

Bem, teste normal, permitido ao python para bater a conformidade exacta com a norma IEEE (fastmath=true), então é necessário deslizar -Ofast para syshka também. E depois há o OpenMP, em paralelo com ele - [um par de linhas extra](https://www.ibm.com/developerworks/ru/library/au-aix-openmp-framework/index.html).

Fãs das abstracções... E se houver outro suplemento em cima da píton? E se houver mais um? Compilar para byte código de máquina virtual máquina virtual máquina virtual máquina virtual.

 

Infelizmente, um número contável de algoritmos pode ser decomposto em paralelismo.

O exemplo dado de cálculo pi é apenas para demonstração de tal teste sintético. A mesma maneira é feita com OpenMP em C++. Pode ser feito ainda mais rapidamente em MQL5 com OpenCL.

 

Encontrei um tal parâmetro de paralelismo para loops no Visual Studio.
Podemos implementar uma tal directiva também em mql?
Ou os loops em mql são paralelos por defeito?

vs

 
Roman:

Encontrei um tal parâmetro de paralelismo para loops no Visual Studio.
Podemos implementar uma tal directiva também em mql?
Ou os loops em mql são paralelos por defeito?

Não tenho conseguido ver a utilização deste parâmetro no Visual Studio (assim como em todos os outros) nos últimos 10 anos. Mesmo tendo activado todas as bandeiras de relatórios de desdobramento de laço.

Simplesmente não funcionou e não funciona mesmo em grandes projectos onde existem muitas possibilidades de paralelização. Só funciona OpenMP directo com marcação manual de loops.

Na MQL5, os loops não são paralelos.

 
Renat Fatkhullin:

Infelizmente, um número contável de algoritmos pode ser decomposto em paralelismo.

O exemplo dado de cálculo pi é apenas para demonstração de tal teste sintético. A mesma maneira é feita com OpenMP em C++. Pode ser feito ainda mais rapidamente em MQL5 com OpenCL.

Publiquei um cálculo no blogue que se assemelha perfeitamente. Infelizmente, a informação OpenCL é de tal nível que requer uma competência muito superior à minha.

Gostaria de ver um exemplo simples (como no blogue) de uma implementação OpenCL e o resultado de uma aceleração.

 
fxsaber:

Publiquei um cálculo no blogue que se assemelha perfeitamente. Infelizmente, a informação do OpenCL é de tal nível que requer uma competência muito superior à minha.

Gostaria de ver um exemplo simples (como no blogue) de uma implementação OpenCL e o resultado de uma aceleração.

Fora do tema do OpCl mas sobre o tema do Python

Casos visualmente semelhantes são também bastante bem definidos (distribuições incrementais)

Note o grupo 0-6 horas (por GMT + 2)

Meses em 10 anos

Horas em 10 anos