OpenCl e as ferramentas para ele. Revisões e impressões. - página 7

 
icas:
"Isso mesmo, isso mesmo, não é verdade? Mas há um outro lado da moeda" ("Cativo do Cáucaso", C). As metaquotas estão finalmente "acompanhando os tempos".

Será que eles decidiram acompanhar o ferro por alguma razão? E o ferro envelhece mais rápido.


Os heróis normais sempre vão ao contrário (c) É uma canção de algum filme.


Pessoalmente não estou minimamente inspirado pelo fato de que, para conseguir a velocidade com a otimização no nível MT4, terei que procurar algum tipo de placa de vídeo. E a otimização é a parte mais problemática do autotrading em termos de custo computacional.

Além disso, se amanhã os ferrageiros pensarem em alguma outra característica que lhes dê uma solução mais aceitável para as mesmas tarefas, será uma pena para as metaquotas. Afinal, os desenvolvedores de hardware são os menos conservadores em suas idéias e na primeira oportunidade eles tentarão implementar algo para abandonar as muletas anteriores e ficar à frente da concorrência.

A maneira mais eficaz de aumentar a produtividade do software é melhorar seu algoritmo. Todas as outras tentativas de desvio deste caminho, e especialmente as que dependem de outros desenvolvedores, muitas vezes terminam de forma muito miserável.

 
Reshetov:

Pessoalmente, não estou nada inspirado pelo fato de ter que procurar alguns widgets para alcançar a velocidade de otimização no nível MT4. E a otimização é a parte mais problemática do autotrading em termos de custos computacionais.

Além disso, se amanhã os ferrageiros pensarem em alguma outra característica que lhes dará uma solução mais aceitável para as mesmas tarefas, será uma pena para as metáforas. Afinal, os desenvolvedores de hardware são os menos conservadores em suas idéias e na primeira oportunidade eles tentarão implementar algo para que possam esquecer as muletas anteriores e superar seus concorrentes.

A maneira mais eficaz de melhorar o desempenho do software é melhorar seu algoritmo. Todas as outras tentativas de desvio deste caminho, e especialmente aquelas que dependem de outros desenvolvedores, muitas vezes terminam muito mal.


Experimente MQL5 Cloud Network - a velocidade de otimização é tão alta quanto nunca vista antes no MT4. Em cálculos massivos, será incrível como centenas de resultados por segundo falharão ao utilizar um par de milhares de agentes independentes.

Não tenho certeza de que a computação por GPU trará um aumento nos algoritmos básicos de negociação, mas temos planos de longo alcance. Nas próximas construções haverá muitas coisas interessantes - será possível construir as fazendas de cálculo mais poderosas com intercâmbio de dados e resultados pós-análise.

 
Renat:

Não tenho certeza de que a computação por GPU dará um aumento nos algoritmos básicos de negociação, mas temos planos de longo alcance. As próximas construções serão muito interessantes - será possível construir as fazendas de cálculo mais poderosas com troca de dados e pós-análise de resultados.

Isso significa que o usuário terá acesso aos resultados dos cálculos dos agentes?
 
joo:
Uau! Isto significa que o usuário terá acesso aos resultados dos cálculos dos agentes?

Exatamente.

Você pode transferir grandes quantidades de dados dos agentes de volta para o terminal host, e quando os cálculos estiverem concluídos, executar automaticamente o método OnTesterFinalize() do mesmo Expert Advisor no próprio terminal. Assim, será possível realizar um complexo pós-processamento dos resultados dos testes.

 
Renat:

Exatamente.

Será possível transferir grandes quantidades de dados dos agentes de volta para o terminal host, e quando os cálculos forem concluídos, executar automaticamente o método OnTesterFinalize() do mesmo Expert Advisor no próprio terminal. Assim, será possível realizar um pós-processamento complexo dos resultados dos testes.

Legal!!!

Além disso, antes que seja tarde demais. O método OnTesterFinalize() para agentes também seria desejável (poderia ser o mesmo, mas com parâmetro de entrada do host/agente). A idéia é criar matrizes em arquivos de mapas (por exemplo, indicadores pesados de cache) em máquinas de agentes, e apagá-los corretamente no final.

 
Renat:

Experimente MQL5 Cloud Network - a velocidade de otimização é tão alta quanto nunca vista antes no MT4. É incrível como centenas de resultados por segundo usando um par de milhares de agentes independentes podem cair em computações massivas.

Sim, eu já experimentei em meu computador local de 2 núcleos. Fiquei desapontado com os resultados. O motor MT5 dificilmente pode funcionar com 2 núcleos enquanto o MT4 está otimizando muito rapidamente.

Teoricamente, é claro, é possível lançar computadores adicionais conectados à rede local e o desempenho aumentará devido a isso. Você pode ter mais placas de vídeo instaladas em seu computador, o que aumentaria o desempenho. Mas não é a solução quando você tem que comprar um rack de servidor a fim de aumentar a velocidade de otimização no testador.

Naturalmente, a computação distribuída à distância também pode ser utilizada, embora o serviço não seja gratuito.

Mas a questão é que a produtividade do MT4 agora é suficiente para mim. E como o MT5 se torna cada vez mais dependente de hardware, não quero migrar para uma plataforma desse tipo.


Renat:

Não tenho certeza de que a computação por GPU dará um aumento nos algoritmos básicos de negociação, mas temos planos de longo alcance.

Para colocá-lo em perspectiva, a computação por GPU para qualquer outra coisa além de jogos de computador não é muito útil até agora. Aqui a história é bem diferente. Nomeadamente, há um paradoxo que os gráficos 3D, ou seja, imagens e animação são criados (renderizados) nos principais processadores de computadores. Por um lado, parece produzir placas gráficas com poderosos processadores para gráficos com memória de alta velocidade, mas por outro lado, todos os que têm a ver com 3D, não compram gráficos chiques, e compram processadores multi-core e RAM convencional, mas de alta velocidade, às vezes combinando todas essas coisas em fazendas e renderização. Melhor ainda, os resultados da renderização também podem ser vistos em uma placa gráfica bastante barata (há um grande papel desempenhado pela qualidade da imagem no monitor).

É claro que os fabricantes de placas de vídeo não estão satisfeitos com esta situação, pois os lucros estão fluindo, portanto, eles, de seu lado, estão fazendo tentativas de controlar a situação sob si mesmos. Mas até agora muito mal sucedido. Isto é, apareceu um software de renderização para certas linhas de placas de vídeo, mas se calcularmos, verificamos que a relação qualidade/preço não é a favor da GPU. A agência de publicidade ou gráfica quer esperar para renderizar a imagem 3D em um multi-núcleo ou na fazenda, mas com a mais alta qualidade, em vez de entrar rapidamente na GPU e depois tentar corrigir bugs. Os provedores não têm pressa em mudar para a GPU, porque neste caso, seu software se tornaria dependente dos fabricantes de cartões de vídeo, e estar vinculado a um hardware específico só desencorajaria os clientes.

Se a MetaQuotes estivesse envolvida no desenvolvimento de fazendas para gráficos 3D, então esta etapa teria sido compreensível. Mas IMHO, é uma perda de tempo, porque seria melhor esperar até que os fabricantes de placas gráficas tenham calibrado seus produtos, em vez de empurrar muito para o grosso das coisas.

Embora não me cabe a mim decidir, já que sou o chefe. Mas o ponto permanece, ou seja, não há desejo de mudar para um software dependente de hardware e ele não aparecerá logo.

 
Reshetov:

Sim, eu já tentei, em um computador local de 2 núcleos. Os resultados são decepcionantes. Eu o experimentei no MT5, enquanto o MT4 mostra uma otimização muito rápida.

Você já tentou a MQL5 Cloud Network com 2000 agentes em um núcleo duplo?

Ou você apenas fez um único passe local e descansou sobre isso?

É com a MQL5 Cloud Network que conseguimos uma simples aceleração de centenas e milhares de vezes. Sem GPU, em qualquer Expert Advisor. Pegue meu antigo exemplo com vídeo: Exemplo de aceleração de cálculo usando a MQL5 Cloud Network


Teoricamente, é claro, você pode executar computadores adicionais na rede local e o desempenho aumentará por causa disso. Também é possível ter mais placas de vídeo conectadas e o desempenho aumentaria. Mas esta não é a solução, quando, para aumentar a velocidade de otimização no testador, você precisará comprar um rack de servidor.

Naturalmente, a computação distribuída à distância também pode ser utilizada, embora o serviço não seja gratuito.

Tornamos possível levantar instantaneamente milhares de agentes com um botão (tempo de aquecimento da rede cerca de 20-30 segundos) para um cálculo rápido das tarefas. Em vez de centenas de horas, você pode realmente conseguir fazer isso em meia hora.

Além disso, os preços são ridículos - qualquer um pode verificá-los, e todos que se inscreverem na MQL5.com recebem um bônus de $2.

Esta é uma verdadeira revolução. Agora qualquer usuário pode colocar quase qualquer supercomputador a drogas através do uso dos cludes. E com a introdução da GPU (uma construção estará disponível na sexta-feira) será possível bater os supercomputadores em pacotes.


Mas a essência da questão é que, por enquanto, a produtividade MT4 é suficiente para mim. E como o MT5 se torna cada vez mais dependente de hardware, eu não quero migrar para esta plataforma.

A produtividade é suficiente (ou melhor, você se assegura disso) para casos simples. Para cálculos massivos e detalhados, não há energia suficiente.

O erro de comparar os testadores MT4 com MT5 é que as pessoas fazem vista grossa ao nível muito diferente de detalhes e capacidade de testar com precisão o teste multimoedas.

Você também perdeu sua marca sobre a dependência de hardware:

  • O MT5 suporta arquiteturas de 32 e 64 bits (a versão de 64 bits é na verdade mais rápida e poderosa)
  • MT5 utiliza todos os núcleos locais
  • MT5 utiliza agentes remotos (32 e 64 bits)
  • MT5 utiliza a Rede MQL5 Cloud quando um simples notebook recebe resultados de cálculo de computadores milhares de vezes mais poderosos do que ele
  • MT5 usa OpenCL independente de hardware, o que lhe permite trabalhar com uma variedade de processadores de GPU

Você está claramente consciente de que está errado.


É evidente que os desenvolvedores de videogames não estão satisfeitos com esta situação, já que os lucros fluem, portanto, eles fazem tentativas de tomar a situação sob seu controle. Mas até agora muito mal sucedido. Isto é, surgiu um software de renderização para certas linhas de placas de vídeo, mas se você calculá-lo, verifica-se que a relação qualidade/preço não é a favor da GPU. A agência de publicidade ou gráfica quer esperar para renderizar a imagem 3D em um multi-núcleo ou na fazenda, mas com a mais alta qualidade, em vez de entrar rapidamente na GPU e depois tentar corrigir bugs. Os provedores não têm pressa em mudar para a GPU, porque neste caso, seu software se tornará dependente dos fabricantes de cartões de vídeo, e estar vinculado a um determinado hardware só desencorajará os clientes.

Embora eu não seja um defensor da GPU (tenho sido franco contra isso por muito tempo), suas conclusões estão erradas.

Não há software para GPU, porque os desenvolvedores ainda não acreditaram nesta direção, mas não reiteraram a ligação mítica a um hardware específico. Por uma questão de decência, deve-se pelo menos ler o que o OpenCL é e para que ele foi inventado (independente de hardware e plataforma).

As empresas são forçadas a usar apenas a renderização de software por inércia e processos estabelecidos. Conseguir que uma empresa mude de software é um esforço titânico, muitas vezes impossível durante os próximos 3-5 anos. Dado o salto que as GPUs deram nos últimos 3 anos e a ênfase claramente visível de seus autores na universalização, é razoável não apenas esperar melhores resultados, mas também buscar ativamente novas características.


Se a MetaQuotes estivesse desenvolvendo fazendas para gráficos 3D, então tal passo ainda seria compreensível. E agora, IMHO, é apenas uma perda de tempo, porque seria melhor esperar até que os fabricantes de placas de vídeo tenham tudo resolvido, em vez de empurrar muito para dentro da grossura das coisas.

Embora não me cabe a mim decidir, já que sou o chefe. Mas o ponto permanece, ou seja, não há desejo de mudar para um software dependente de hardware e ele não aparecerá logo.

Já esperamos o suficiente, também já criticamos e discordamos, mas chegou a hora.

E esta é a terceira vez que a reiteração do "software dependente de hardware" é feita.

 
Reshetov:

Sim, eu já tentei, em um computador local de 2 núcleos. Os resultados são decepcionantes. Os resultados são decepcionantes. Mal consigo chegar no MT5 usando 2 núcleos enquanto o MT4 está sendo otimizado rapidamente.

Principalmente, sendo tudo mais igual, a velocidade de teste no MT5 é mais lenta do que no MT4 porque o MT5 usa melhor modelagem do histórico de carrapatos. Reduz muito a velocidade. Mas, há uma esperança de que a MQ implemente métodos mais simples de geração de carrapatos (e variantes de testes sem carrapatos) como no MT4 (há muitas solicitações desse tipo, e olhando para as inovações recentes, há uma esperança de que ela seja implementada).

Reshetov:

Se eu quiser entrar em detalhes, a computação por GPU não é muito útil para nada, exceto jogos de computador até agora. A história aqui é bem diferente. Nomeadamente, há um paradoxo que os gráficos 3D, ou seja, imagens e animação são criados (renderizados) nos principais processadores de computadores. Por um lado, parece produzir placas gráficas com poderosos processadores para gráficos com memória de alta velocidade, mas por outro lado, todos os que têm a ver com 3D, não compram gráficos chiques, e compram processadores multi-core e RAM convencional, mas de alta velocidade, às vezes combinando todas essas coisas em fazendas e renderização. Melhor ainda, os resultados da renderização também podem ser vistos em uma placa gráfica bastante barata (há um grande papel desempenhado pela qualidade da imagem no monitor).

É claro que os fabricantes de placas de vídeo não estão satisfeitos com esta situação, porque os lucros estão fluindo, então eles, de seu lado, estão tentando vencer a situação sob si mesmos. Mas até agora muito mal sucedido. Isto é, apareceu um software de renderização para certas linhas de placas de vídeo, mas se calcularmos, verificamos que a relação qualidade/preço não é a favor da GPU. A agência de publicidade ou gráfica quer esperar para renderizar a imagem 3D em um multi-núcleo ou na fazenda, mas com a mais alta qualidade, em vez de entrar rapidamente na GPU e depois tentar corrigir bugs. Os provedores não têm pressa em mudar para a GPU, porque neste caso, seu software se tornaria dependente dos fabricantes de cartões de vídeo, e estar amarrado a um determinado hardware só desencorajaria os clientes.

Se a MetaQuotes estivesse desenvolvendo fazendas para gráficos 3D, então esta etapa seria compreensível. Mas IMHO, é uma perda de tempo, porque seria melhor esperar até que os fabricantes de placas de vídeo tenham tudo resolvido, em vez de empurrar muito para dentro da grossura das coisas.

A situação é quase exatamente a oposta. Todos pensando no futuro estão mudando para a computação GPU. Eles estão construindo supercomputadores inteiros a partir de videocomputadores.

As GPUs atualmente calculam tudo, vídeo, áudio, fotos e até mesmo cálculos de força em dinâmica e estática.

Informações não-oficiais:
Informações gerais sobre a CUDA
http://www.gpgpu.ru/
http://www.computerra.ru/interactive/423392/
http://cgm.computergraphics.ru/issues/issue16/cuda
http://www.ixbt.com/video3/cuda-1.shtml
http://www.ixbt.com/video3/cuda-2.shtml
http://www.thg.ru/graphic/nvidia_cuda_test/print.html
http://www.thg.ru/graphic/nvidia_cuda/print.html
https://ru.wikipedia.org/wiki/CUDA

Documentação CUDA
http://www.uraldev.ru/articles/id/33
http://www.steps3d.narod.ru/tutorials/cuda-tutorial.html

Exemplos e artigos da CUDA
http://www.codeproject.com/info/search.aspx?artkw=CUDA

Literatura impressa:
http://www.ozon.ru/context/detail/id/5080841/
http://www.ozon.ru/context/detail/id/5432077/


Informações oficiais:

Tecnologias relacionadas
http://www.khronos.org/opencl/

http://www.nvidia.ru/object/cuda_home_new_ru.html
http://nvidia.custhelp.com/cgi-bin/nvidia.cfg/php/enduser/std_alp.php

http://developer.nvidia.com/object/gpucomputing.html
http://developer.nvidia.com/object/cuda_3_2_downloads.html
http://developer.nvidia.com/page/documentation.html
http://developer.nvidia.com/object/nsight-downloads.html

Exemplos de códigos CUDA

http://developer.download.nvidia.com/compute/cuda/sdk/website/samples.html

Aplicações

http://www.nvidia.ru/object/cuda_research_ru.html

Demonstrações da comunidade

http://www.nvidia.ru/object/cuda_apps_flash_new_ru.html


Estes são principalmente links CUDA (arrancados do esconderijo), mas tudo ainda se aplica ao OpenCL em sua totalidade. Além disso, o futuro do OpenCL parece mais brilhante (tecnologia independente do hardware) do que o da CUDA (tecnologia dependente do hardware).


Reshetov:
Embora não me caiba a mim decidir, pois o mestre é o chefe. Mas a essência permanece, ou seja, o desejo de mudar para um software dependente de hardware não aparece e não aparecerá em breve.

Ninguém está impedindo você de escrever programas da maneira antiga, para a CPU. Todos os programas funcionarão.


ZS Renat me venceu.

 

joo:

...

ZS Renat me venceu.

Greve dupla. A informação nunca é supérflua. :) Ramo muito informativo, deve até ser fixado, para que não desça.
 
icas:
Renat, haverá suporte OpenCL no MT4?

Infelizmente, não.

Mas uma grande atualização do MetaTrader 4 será lançada na próxima semana e o novo MetaTrader 4 para iPhone/iPad será lançado esta semana.

Razão: