Compilação de programas MQL5 com conjunto de instruções AVX / AVX2 + FMA3 / AVX512 + FMA3 do build 3902

 

Na próxima versão beta, lançamos a capacidade de compilar programas MQL5 usando o conjunto estendido de instruções AVX / AVX2 + FMA3 / AVX512 + FMA3.

Elas permitem que você gere códigos mais eficientes e mais rápidos.

Você pode definir configurações gerais para programas individuais e configurações pessoais para projetos:




Participe dos testes fazendo o download da versão beta do servidor MetaQuotes-Demo ou atualize-a por meio da seção do menu "Ajuda".

 

Posso obter algumas explicações/comentários dos desenvolvedores sobre a operação do MT5 em processadores com núcleos "energeticamente eficientes"?

As pessoas geralmente se interessam pelo trabalho de testador, mas eu estou mais interessado apenas no trabalho com o MT5 com muitos EAs em execução (e "multi EAs" - muitos EAs independentes em um só).

 

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Processador para MT4/MT5

Stanislav Korotky, 2023.08.26 21:09

Tudo isso é adivinhação de borra de café. A MQ deveria fornecer seu próprio benchmark (um programa como PCMark, CineBench, Geekbench, etc.) - como o MetaTraderBench. As perguntas sobre o desempenho da CPU/GPU, gráficos, manuseio de disco etc. em tarefas de aplicativos seriam eliminadas. Seria mais fácil escolher uma configuração de PC para MT.

Infelizmente, não existe um Bench.

 
MetaQuotes:

permitem que você gere códigos mais eficientes e mais rápidos.

Quais são suas recomendações para escolher as melhores configurações para a máquina local e para a máquina remota (para Market, Agents etc.)?
 
JRandomTrader #:

Podemos obter algum esclarecimento/comentário dos desenvolvedores sobre a execução do MT5 em processadores com núcleos "eficientes em termos de energia"?

As pessoas geralmente estão interessadas no trabalho de testador, mas eu estou mais interessado apenas no trabalho com o MT5 com muitos EAs em execução (e "multi EAs" - muitos EAs independentes em um só).

Nossos testes mostraram:

  1. Mudar do compilador MSVC para o Clang/LLVM dá um aumento geral de até 25% - um crescimento tão monstruoso que o Google sobre o Chrome constrói de forma semelhante

    É por isso que o MetaTrader 5 foi construído em Clang por um longo tempo.

  2. O uso do AVX na plataforma dá um aumento sério, sem especificar porcentagens

    É por isso que temos dois conjuntos de terminais de clientes: a versão desatualizada NoAVX no MSVC para processadores antigos e AVX no Clang para os modernos.

    O instalador determina automaticamente qual versão colocar. Livapdate também.

  3. Nossa pesquisa mais recente mostra que o AVX2 + FMA3 oferece uma melhoria em relação ao AVX

    O FMA3 ajuda na matemática vetorial, o que deve funcionar bem para nossa classe de problemas.

    Em breve lançaremos o terceiro conjunto de programas com o AVX2. Na próxima atualização, o próprio terminal selecionará a nova versão de forma transparente.


O trabalho com kernels P/E depende inteiramente do Windows Scheduler e mesmo o Intel Thread Director (extensão do Thread Manager) não é totalmente eficiente na atribuição de tarefas por importância. Há vários casos limítrofes em que o despachante é ineficaz ou questionável.

A tentativa de usar a máscara de afinidade no caso geral só piora as coisas. Especialmente quando o aplicativo está sendo executado em uma máquina virtual.

Você pode usar a máscara de afinidade somente em casos especiais de otimização rigorosa de um aplicativo específico.



As recomendações gerais sobre processadores são simples: mais núcleos, maior frequência, mais caches L1/L2, RAM de alta velocidade suficiente e discos NVME.

Agora, os processadores de consumo ultrapassaram com confiança o limite de 5 gigahertz. Por exemplo, o Ryzen 7950X por US$ 600 com 32 threads é facilmente executado em carga total a 4,5 - 5,0 gigahertz em cada núcleo e produz resultados surpreendentes.

 

Renat Fatkhullin #:

O instalador detecta automaticamente a versão a ser instalada. O Livapdate também.

Eu atualizo todos os terminais copiando três arquivos exe (terminal, testador, editor). As pessoas mantêm as versões anteriores na mesma forma - esses três arquivos.

Agora afirmam que eles podem ser diferentes em uma mesma compilação. E, consequentemente, têm desempenho diferente.

 

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Como começar a usar o MT5, resumo!

Fernando Carreiro, 01.09.2023 12:43 pm.

Como isso afetará os produtos do Market no futuro?

Presumo que o processo de validação exigirá que o produto seja compilado sem ele para garantir o menor denominador comum.

 
fxsaber #:

Eu atualizo todos os terminais copiando três arquivos exe (terminal, testador, editor). As pessoas mantêm as versões anteriores na mesma forma - esses três arquivos.

Agora afirmam que eles podem ser diferentes em uma mesma compilação. E, consequentemente, têm desempenho diferente.

Exatamente - veja a presença do AVX no banner de descrição do computador ao iniciar o terminal.


Recomendamos não bloquear as atualizações, pois logo os terminais pararão com um aviso na inicialização após detectar o bloqueio.

Vários farms estão sendo constantemente banidos devido a:

  1. bloquear atualizações e bombear centenas de gigabytes de atualizações durante reinicializações constantes, sobrecarregando nossa infraestrutura
  2. apagar todos os caches no início do terminal e criar uma carga nos servidores de corretores
  3. reiniciar os terminais em todos os tipos de dockers/contêineres/etd com um ambiente simples dezenas de milhares de vezes por dia.

Em vez de reclamar, eles precisam virar a cabeça e pensar naqueles que os atendem. "Tenho um disco de 5 GB, estou economizando dinheiro e o tráfego é gratuito para mim" não incomoda muito se resultar no desperdício de recursos de um provedor de tecnologia ou de um corretor.

 
Fernando Carreiro #:

Somente programas compilados no modo "x64 Regular" serão aceitos no mercado.

É muito provável que, no futuro, ampliemos as possibilidades do mercado.


O lançamento do MT5 está programado para sexta-feira da próxima semana. Por isso, pedimos que você teste os novos modos mais ativamente.

 
Renat Fatkhullin #:

Recomendamos não bloquear as atualizações, pois os terminais logo pararão com um aviso na inicialização depois que o bloqueio for detectado.

Você está negociando em compilações com bugs? Acho que você está longe da prática do comércio de algo.
 
fxsaber #:
Você está negociando em compilações com bugs? Acho que você está longe da prática do comércio de algo.

Portanto, não atualize para betas no proda.

As versões são lançadas a cada 3 meses. E os agricultores malvados, que não atualizam, ficam sentados em versões desatualizadas por um ano ou mais - eles não se importam com a negociação. Eles têm uma abordagem puramente utilitária: "Já fiz minha tarefa, não me importo com o resto".

Escrevo especificamente sobre casos ruins, pois seus proprietários certamente leem este fórum - minhas explicações são para eles.