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

 
Este é o uso da RAM para armazenar ou trocar dados, por exemplo, entre dois terminais ou mesmo várias aplicações.

Ela simplesmente usa áreas reservadas de RAM em vez de arquivos. A idéia é a mesma, mas funciona muito mais rápido.

 

Mapeamento é mapeamento, é apenas que um objeto de arquivo pode ser criado diretamente na RAM.

Eu simplesmente não entendo por quê? Alexei escreveu claramente que tudo está no init.

 

Repito, eu o propus não para o problema de Alexey, mas como uma forma de acelerar os cálculos em geral)

Ou seja, organizar uma espécie de cache para utilizar os dados em iterações subseqüentes.

 
OnGoing:
Este é o uso da RAM para armazenar ou trocar dados, por exemplo, entre dois terminais ou mesmo várias aplicações.

Ela simplesmente usa áreas reservadas de RAM em vez de arquivos. A idéia é a mesma, mas funciona muito mais rápido.


esqueça esta DLL descascada dela.

Você tem uma versão totalmente funcional para trabalhar com o mapeamento.

 
Mathemat:

E como você se propõe a fazê-lo - sem se referir à codificação externa à MQL4?
Eu já sugeri - através de arquivos. Mas é longo e incômodo.

Alternativamente, você pode fazer uma dll especial.
O conjunto de parâmetros na memória será associado a um determinado resultado.
Você pode até mesmo tornar o mapeamento mais complicado, como este:
DataTime - {Parâmetros de cálculo} - Resultado[s].
Isto já encobre os cálculos em cada barra.

Que se lixe o mapeamento e os arquivos. O que precisamos é de um armazenamento associativo.
 
sergeev:

esqueça esta DLL descascada dela.

Você tem uma versão totalmente funcional para trabalhar com o mapeamento.

Uau, obrigado. Aguardando exemplos sobre como utilizá-lo)
 
jartmailru: Alternativamente, você poderia fazer uma dll especial.

Perguntado como sem uma dll.

OK, não importa. É mais fácil fazer cálculos pesados de C/C++ e acelerar a execução por várias vezes usando SSE*, Open MP e IPP. E ao invés de 10 segundos na MQL4 você terá 1 segundo - mesmo no meu orçamento dual-core.

 
Mathemat:

Perguntei-lhe como ele poderia trabalhar sem dll.

Ok, não importa. É mais fácil implementar cálculos pesados em C/C++ e acelerar a execução por várias vezes usando SSE*, Open MP e IPP. E ao invés de 10 segundos na MQL4 você terá 1 segundo - mesmo no meu orçamento dual core.

A MQL5 é 20 vezes mais rápida que a MQL4.

C++ é 6 vezes mais rápido que a MQL5 (ao utilizar bibliotecas que paralelizam automaticamente a execução).

Total: 20*6=120 vezes.

Se você usar cálculos de GPU, será ainda mais rápido.

TOTAL: 10/120=0,083c.

algo como isto.

 
joo:

A MQL5 é 20 vezes mais rápida que a MQL4.

Eu gostaria de acreditar nisso. Mas, na prática, a otimização em uma CPU de múltiplos núcleos no MT5 é muito mais lenta do que a otimização com uma única rosca no MT4.

É bem possível que apenas pareça que o código no MT5 mal está se mexendo?

Eu deveria pegar algum agloritmo de referência e usá-lo na função start() do MT4 e OnTick() do MT5 e executá-lo em um único núcleo em Expert Advisors com um parâmetro de entrada dummy mudando de 0 para 9999 sem genética para ter certeza de que é mais exato. Mas onde obter este núcleo único?

 
Reshetov:

Exceto que, na prática, a otimização em uma CPU multi-core no MT5 é visivelmente mais lenta do que a otimização com rosca única no MT4.

Não, isto é um testador. Antes do campeonato medimos o tempo de corrida - o tempo de corrida de um Expert Advisor econômico era muito menor do que o tempo gasto para testes.

No entanto esta informação não é 100%, posso mentir, não me lembro.