OpenCl y las herramientas para ello. Reseñas e impresiones. - página 3

 
Se trata del uso de la memoria RAM para almacenar o intercambiar datos, por ejemplo, entre dos terminales o incluso varias aplicaciones.

Simplemente utiliza áreas reservadas de la RAM en lugar de archivos. La idea es la misma, pero funciona mucho más rápido.

 

El mapeo es el mapeo, sólo que un objeto de archivo puede ser creado directamente en la RAM.

Sólo que no entiendo por qué razón. Alexei escribió claramente que todo está en el init.

 

Repito, lo propuse no para el problema de Alexey, sino como una forma de acelerar los cálculos en general)

Es decir, organizar una especie de caché para utilizar los datos en iteraciones posteriores.

 
OnGoing:
Se trata del uso de la memoria RAM para almacenar o intercambiar datos, por ejemplo, entre dos terminales o incluso varias aplicaciones.

Simplemente utiliza áreas reservadas de la RAM en lugar de archivos. La idea es la misma, pero funciona mucho más rápido.


olvídate de esta DLL despojada de ella.

Tienes una versión totalmente funcional para trabajar con la cartografía.

 
Mathemat:

¿Y cómo propones hacerlo, sin recurrir a la codificación externa a MQL4?
Ya lo sugerí - a través de archivos. Pero es largo y molesto.

Como alternativa, puedes hacer un dll especial.
El conjunto de parámetros en memoria se asociará a un determinado resultado.
Incluso puedes hacer el mapeo más complicado, así:
DateTime - {Parámetros de cálculo} - Resultado[s].
Esto ya almacena en caché los cálculos en cada barra.

A la mierda el mapeo y los archivos. Lo que necesitamos es un almacenamiento asociativo.
 
sergeev:

olvídate de esta DLL despojada de ella.

Tienes una versión totalmente funcional para trabajar con la cartografía.

Vaya, gracias. Espero que me den ejemplos de cómo utilizarlo)
 
jartmailru: Como alternativa, puedes hacer un dll especial.

Preguntado cómo sin una dll.

OK, no importa. Es más fácil realizar cálculos pesados en C/C++ y acelerar la ejecución varias veces utilizando SSE*, Open MP e IPP. Y en lugar de 10 segundos en el MQL4 obtendrás 1 segundo, incluso en mi económico doble núcleo.

 
Mathemat:

Le pregunté cómo podía trabajar sin dll.

Vale, no importa. Es más fácil implementar cálculos pesados en C/C++ y acelerar la ejecución varias veces utilizando SSE*, Open MP e IPP. Y en lugar de 10 segundos en MQL4 obtendrás 1 segundo - incluso en mi presupuesto de doble núcleo.

MQL5 es 20 veces más rápido que MQL4.

C++ es 6 veces más rápido que MQL5 (cuando se utilizan bibliotecas que paralelizan automáticamente la ejecución).

Total: 20*6=120 veces.

Si utilizas cálculos en la GPU, será aún más rápido.

TOTAL: 10/120=0,083c.

algo así.

 
joo:

MQL5 es 20 veces más rápido que MQL4.

Me gustaría creerlo. Pero en la práctica la optimización en una CPU multinúcleo en MT5 es mucho más lenta que la optimización de un solo hilo en MT4.

Es muy posible que sólo parezca que el código en MT5 apenas se mueva?

Debería tomar algún algoritmo de referencia y utilizarlo en la función start() de MT4 y OnTick() de MT5 y ejecutarlo en un solo núcleo en Expert Advisors con un parámetro de entrada ficticio que cambie de 0 a 9999 sin genética para asegurarme con mayor exactitud. Pero, ¿dónde conseguir este núcleo único?

 
Reshetov:

Excepto que, en la práctica, la optimización en una CPU multinúcleo en MT5 es notablemente más lenta que la optimización de un solo hilo en MT4.

No, esto es un probador. Antes del campeonato, medimos el tiempo de ejecución: el tiempo de ejecución de un Expert Advisor ligero y económico era mucho menor que el tiempo empleado en las pruebas.

Sin embargo esta información no es 100%, puedo mentir, no lo recuerdo.