Esto es lo que puedes hacer con OpenCL directamente en MetaTrader 5 sin ninguna DLL - página 3

 
¿se puede ejecutar doom en la ventana de mt5?
 

El código corregido se ha vuelto a publicar. Funciona incluso con la CPU.

Lanzamos OpenCL en MetaTrader 5 en febrero de 2012 en la versión 581. Ahora, tanto la propia OpenCL como el soporte de hardware están en un nivel aceptable y hemos vuelto a hablar del uso de OpenCL en matemáticas y gráficos.

 
Alexey Volchanskiy:
Renat dijo hace tiempo que OpenCL funciona en el probador de MT5, pero sólo en la máquina local, no en la nube. Así que, úsalo al menos ahora.
Bueno, todavía no hay ningún núcleo de GP en el probador estándar, todos los agentes son sólo de CPU.
 

Así y todo, ¿cómo van las cosas con la multitarea? Nadie ha respondido.

  1. Si varios EAs se ejecutan en un terminal, ¿pueden compartir y utilizar OpenCL de forma independiente?
  2. Lo mismo ocurre con los terminales múltiples.

 
Vitalie Postolache:
Pues bien, en el probador estándar del kernel los GPs no funcionan de ninguna manera, todos los agentes son sólo de CPU.
Trabajan en el probador estándar en los agentes locales.
 
Alexey Volchanskiy:

Así y todo, ¿cómo van las cosas con la multitarea? Nadie ha respondido.

  1. Si varios EAs se ejecutan en un terminal, ¿pueden compartir y utilizar OpenCL de forma independiente?
  2. Lo mismo ocurre con los terminales múltiples.

Sí, todo funciona dentro de los límites de la suficiencia de recursos.
 
Vitalie Postolache:
Bueno, en el probador estándar los núcleos GP no funcionan de ninguna manera todavía, todos los agentes son sólo de la CPU.
Gracias por la información, ¿es así? Entonces no necesito realmente OpenCL todavía.
 
Vitalie Postolache:
Pues bien, si no sólo se utilizan 8-16 núcleos de CPU, sino miles de núcleos de GP para la optimización, será una explosión de rendimiento. Si tal posibilidad se lleva a cabo, por supuesto.
Alexey Volchanskiy:
Renat lleva tiempo diciendo que OpenCL funciona en el probador de MT5 pero sólo en una máquina local, no en la nube. Así que, úsalo al menos ahora.

La optimización habitual consiste en pasar una copia del EA a cada agente, es decir, se está paralelizando a nivel de todo el EA.

Y sólo se puede enviar a la GPU la parte de la lógica que se puede poner en paralelo desde el EA, la copia del EA no se puede enviar a la GPU. Es decir, sólo una parte de la lógica EA de cada una de las copias en los agentes locales puede ser enviada a los "miles de núcleos GP".

Por lo tanto, la simple especificación de núcleos GP como agentes para cualquier EA no funcionará.

 
Renat Fatkhullin:
Trabajar en el probador estándar en los agentes locales.
¿Por qué veo sólo los núcleos de la CPU (Core i5, 8 núcleos - 8 agentes) al optimizar, cuando tengo NVIDIA 780GTX?
 
Andrey Dik:

La optimización habitual consiste en pasar una copia del EA a cada agente, es decir, se está paralelizando a nivel de todo el EA.

Y sólo se puede enviar a la GPU la parte de la lógica que se puede poner en paralelo desde el EA, no se puede enviar una copia del EA a la GPU. Es decir, sólo una parte de la lógica EA de cada una de las copias en los agentes locales puede ser enviada a los "miles de núcleos GP".

Por lo tanto, la simple especificación de núcleos GP como agentes para cualquier EA no funcionará.

Sí, estoy un poco familiarizado con la OCL, soy consciente de ello. Por lo tanto, no hay que cargar todo el EA en el mapa, sólo hay que dejar que se carguen los fragmentos de código paralelos; éstos, por regla general, representan un porcentaje de todo el código.