Eis o que você pode fazer com OpenCL diretamente no MetaTrader 5 sem DLLs - página 3

 
pode ser executado na janela do mt5?
 

O código corrigido é reposto. Funciona até mesmo em CPU.

Lançamos o OpenCL no MetaTrader 5 em fevereiro de 2012 no build 581. Agora tanto o próprio OpenCL quanto o suporte de hardware estão em um nível aceitável e voltamos ao assunto de usar o OpenCL em matemática e gráficos.

 
Alexey Volchanskiy:
Renat disse há muito tempo que o OpenCL funciona no testador MT5, mas apenas na máquina local, não na nuvem. Portanto, use-o pelo menos agora.
Bem, ainda não há kernel GP no testador padrão, todos os agentes são apenas CPU.
 

Ainda assim, como estão as coisas com multitarefas? Ninguém respondeu.

  1. Se vários EAs estiverem funcionando em um terminal, eles podem compartilhar e usar o OpenCL independentemente?
  2. É o mesmo com vários terminais.

 
Vitalie Postolache:
Bem, nos GPs de teste de kernel padrão não funcionam de forma alguma, todos os agentes são apenas CPU.
Eles trabalham no testador padrão nos agentes locais.
 
Alexey Volchanskiy:

Ainda assim, como estão as coisas com multitarefas? Ninguém respondeu.

  1. Se vários EAs estiverem funcionando em um terminal, eles podem compartilhar e usar o OpenCL independentemente?
  2. É o mesmo com vários terminais.

Sim, tudo funciona dentro dos limites da adequação de recursos.
 
Vitalie Postolache:
Bem, no testador padrão os núcleos do GP ainda não funcionam de nenhuma forma, todos os agentes são apenas CPU.
Obrigado pela informação, não é verdade? Então eu não preciso realmente do OpenCL ainda.
 
Vitalie Postolache:
Bem, se não apenas 8-16 núcleos de CPU, mas milhares de núcleos de GP fossem usados para otimização, seria uma explosão de desempenho. Se tal possibilidade for implementada, é claro.
Alexey Volchanskiy:
Renat há muito disse que o OpenCL funciona no testador MT5, mas apenas em uma máquina local, não na nuvem. Portanto, use-o pelo menos agora.

A otimização usual envolve passar uma cópia da EA para cada agente, ou seja, é paralela ao nível de toda a EA.

E apenas parte da lógica pode ser enviada à GPU que pode ser paralela à EA, cópia da EA não pode ser enviada à GPU. Ou seja, apenas parte da lógica da EA de cada uma das cópias dos agentes locais pode ser enviada aos "milhares de núcleos de GP".

Assim, a simples especificação de núcleos de GP como agentes para qualquer EA não funcionará.

 
Renat Fatkhullin:
Trabalhando em testador padrão em agentes locais.
Por que eu vejo apenas núcleos de CPU (Core i5, 8 núcleos - 8 agentes) ao otimizar, quando eu tenho NVIDIA 780GTX?
 
Andrey Dik:

A otimização usual envolve passar uma cópia da EA para cada agente, ou seja, é paralela ao nível de toda a EA.

E apenas parte da lógica pode ser enviada à GPU que pode ser paralela à EA, uma cópia da EA não pode ser enviada à GPU. Ou seja, apenas parte da lógica da EA de cada uma das cópias dos agentes locais pode ser enviada aos "milhares de núcleos de GP".

Assim, a simples especificação de núcleos de GP como agentes para qualquer EA não funcionará.

Sim, eu estou um pouco familiarizado com OCL, estou ciente disso. Portanto, não é necessário carregar a EA inteira no mapa, basta deixar carregar os fragmentos de código paralelo; eles, em geral, representam uma porcentagem de todo o código.