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

 
Alexey Volchanskiy:

Hay un gran problema con la OCL y, en general, con todos los medios de paralelización: muy pocos algoritmos se pueden paralelizar de forma efectiva. Por qué en los ejemplos de la computación paralela tan popular son la simulación de las olas, la bola que cae en una pirámide con su destrucción, es decir, todo lo que puede ser dividido en trozos pequeños y calculado en su propio procesador.

En el caso de Fora/Oso, por supuesto, se trata de redes neuronales, diversas transformadas de Fourier, ondículas, filtros, etc., todos ellos perfectamente paralelos. Pero hay algoritmos lineales que no pueden ser paralelos en absoluto. Por regla general, es cuando el resultado del siguiente paso del algoritmo se basa en el resultado del paso anterior.

He escrito esto para los que están pensando que voy a comprar dos tarjetas de vídeo geniales y todo funcionará bien en mi probador.

En mi probador, todo se basará en los resultados del paso anterior, por lo que escribí eso, para los que piensan que deben comprar 2 videocards geniales, pero todo volará en mi probador. Si quieres comerciar con ella, tienes que tener una buena relación con ella.

 
Alexey Volchanskiy:

Hay un gran problema con la OCL y, en general, con todos los medios de paralelización: muy pocos algoritmos se pueden paralelizar de forma efectiva. Por qué en los ejemplos de computación paralela tan populares son la simulación de las olas, la bola que cae en una pirámide con su destrucción, es decir, todo lo que se puede dividir en trozos pequeños y calcular en su propio procesador.

En el caso de Fora/Oso, por supuesto, se trata de redes neuronales, diversas transformadas de Fourier, ondículas, filtros, etc., todos ellos perfectamente paralelos. Pero hay algoritmos lineales que no pueden ser paralelos en absoluto. Por regla general, es cuando el resultado del siguiente paso del algoritmo se basa en el resultado del paso anterior.

He escrito esto para los que están deseando comprar dos cartuchos geniales y que todo vaya bien en mi probador.

Cuando la lógica interna del EA no está en paralelo, todo el EA puede estar en paralelo, un hilo - un EA. Así es como funciona la nube y los agentes en general - un hilo == un EA == un historial ejecutado, di un ejemplo de tal paralelismo.

Por ejemplo, este enfoque permite no sólo lograr un aumento significativo de la velocidad en los optimizadores caseros sin muchos problemas, sino que también hace posible realizar una optimización interna auto-motivada como parte de la optimización general en la nube (por ejemplo, optimización con roll-forward interno). Y, por supuesto, nadie prohíbe utilizar una paralelización adicional dentro de cada hilo (yo no lo he hecho en mi ejemplo, aunque es posible). Por lo tanto, cuando se trata de optimización podemos decir que siempre hay algo que se puede paralelizar, siempre.

 
Andrey Dik:

Cuando la lógica interna del EA no está paralelizada, se puede paralizar todo el EA, un hilo - un EA. Así es como funciona la nube y los agentes en general, un hilo == un EA == una ejecución de la historia, puse un ejemplo de ese paralelismo.

Por ejemplo, este enfoque permite no sólo conseguir un aumento significativo de la velocidad en los optimizadores caseros sin muchos problemas, sino que también hace posible realizar una optimización interna auto-motivada como parte de la optimización general en la nube (por ejemplo, optimización con roll-forward interno). Y, por supuesto, nadie prohíbe utilizar una paralelización adicional dentro de cada hilo (yo no lo he hecho en mi ejemplo, aunque es posible). Por lo tanto, cuando se trata de optimización podemos decir que siempre hay algo que se puede paralelizar, siempre.

Todo esto es cierto, pero ¿qué tiene que ver lo que se destaca con la OCL? Depende de los desarrolladores del optimizador para proporcionar la optimización en la GPU, como en la nube, que deduzco que aún no es el caso. ¿O estás hablando de escribir una envoltura alrededor del EA, dentro de la cual se ejecutan como hilos OCL? El optimizador de hoy en día no entendería tal movimiento.

Todo lo que tienes que hacer ahora es escribir tu propio optimizador, puedes hacer lo que quieras.

En general, el objetivo del post era despejar a los no programadores o a los programadores novatos en general y privarles de ilusiones innecesarias.

 
Alexey Volchanskiy:

Todo esto es cierto, pero ¿qué tiene que ver lo destacado con la OCL? El trabajo de los desarrolladores de optimizadores es proporcionar la optimización en la GPU, como en la nube, lo que deduzco que aún no es el caso. ¿O estás hablando de escribir una envoltura alrededor del EA, dentro de la cual se ejecutan como hilos OCL? El optimizador de hoy en día no entendería tal movimiento.

Todo lo que tienes que hacer ahora es escribir tu propio optimizador, puedes hacer lo que quieras.

En realidad, el objetivo del post era despejar a los no programadores o novatos en general y despojarlos de ilusiones innecesarias.

He dado un ejemplo en el que toda la lógica del EA junto con el historial probado se envía al dispositivo OCL(un hilo == un EA == una ejecución del historial). Esta solución es entendida por el probador y el optimizador. Por supuesto, esta solución es para los programadores.

Pero para los usuarios ordinarios - sí, no obtendrán ninguna velocidad de las innovaciones en sus EAs. Esto sólo podrá hacerse cuando los desarrolladores consigan enviar un EA completo a la OCL en forma de un programa específico recompilado similar a los shaders, pero hasta ahora no es el caso.

 
Andrey Dik:

He dado un ejemplo en el que toda la lógica del EA se envía al dispositivo OCL junto con el historial probado(un hilo == un EA == una ejecución del historial). Esta solución es entendida por el probador y el optimizador. Por supuesto, esta solución es para los programadores.

Pero para los usuarios ordinarios - sí, no obtendrán ninguna velocidad de las innovaciones en sus EAs. Esto sólo puede hacerse cuando los desarrolladores consiguen enviar un EA completo a la OCL en forma de un programa específico recompilado similar a los shaders, pero hasta ahora no estamos hablando de eso.

Todavía no puedo decir nada sobre el ejemplo; tengo que ir a comprobar la OCL en persona, pero parece que funciona.

Por otro lado, no creo realmente en los resaltados. MQ tendrá que escribir algunos puentes que permitan extraer la API MQL de OCL, especialmente las funciones de negociación, el acceso a las series temporales y los indicadores... Esto es una completa pesadilla, MT5 todavía tiene un montón de enfermedades infantiles que todavía se están arreglando, por lo general a través de una referencia a SD.

 
Alexey Volchanskiy:

Todavía no puedo juzgar sobre el ejemplo, tengo que sentir el OCL en persona, pero parece que es un vivo.

Pero no creo realmente en el resaltado. MQ tendrá que escribir algunos puentes para poder extraer la API MQL de OCL, especialmente las funciones de negociación, el acceso a las series temporales, los indicadores... Esto es una total pesadumbre, MT5 todavía tiene un montón de efectos secundarios infantiles que todavía se están corrigiendo, por lo general a través de SD.

Está bien, pero el hecho de que el meta-editor siga al nivel del "Notepad" de 1995 es bastante triste, y con el hecho de que es 2017. Están haciendo algo, pero para escribir algo para ello, tienes que escribir en un editor antiguo.

Señores DESARROLLADORES, ¡hagan por fin un resaltado de partidos, como en el Bloc de notas!

 
Alexey Volchanskiy:

Es genial, pero hay un gran problema con la OCL y con todas las herramientas de paralelización en general: muy pocos algoritmos pueden paralelizarse de forma efectiva.



Tyu, es simple. No hay que pensar si un algoritmo es paralelo o no. El planteamiento es el siguiente: cuando se mira el algoritmo - se ve un bucle -> se considera que ya se puede poner en paralelo (una buena probabilidad). Sin bucles, no hay razón para preocuparse.

 
Vitaly Muzichenko:

Está bien, pero el hecho de que el meta-editor se mantenga al nivel del Notepad de 1995 es bastante triste, aunque estemos en 2017. Están haciendo algo, pero para escribir algo para ello, tienes que escribir en un editor antiguo.

Señores DESARROLLADORES, ¡hagan por fin un resaltado de partidos, como en el Bloc de notas!

Sí, ya he escrito dos posts aquí sobre lo burdas que son las garrapatas. Se borraron. Y tu post será borrado. No es necesario que los administradores/moderadores mencionen en este hilo los fallos de MQ. Fiesta durante la peste...
 
Alexey Kozitsyn:
Sí, ya he escrito 2 posts aquí sobre las garrapatas en bruto. Borrado. Y tu post será borrado. No es necesario que los administradores/moderadores en este hilo mencionen los defectos de MQ. Fiesta durante la peste...

De alguna manera recuerda a cuando pintan un coche, le ponen llantas de titanio y todo tipo de chucherías innecesarias, pero el motor del coche antes de que esté "petado" y atascado, todo eso es innecesario porque el coche está roto.

Y aquí, un montón de todo tipo de trucos para la escritura, pero donde todo tiene que ser escrito, es en el nivel de 1995, en él, para escribir - una tortura, si el código consta de más de 200 líneas

y al mismo tiempo Renat escribe:

Renat Fatkhullin:

Por desgracia, hay que olvidarse de OpenCL en Windows XP. Y los sistemas operativos de 32 bits en general: llega 2017.

¿Dónde está entonces el meta-editor de 2016?

¡Por favor, haga por lo menos el resaltado de código, y eventualmente si es posible - el plegado!

 
Vitaly Muzichenko:

De alguna manera recuerda a cuando pintan un coche, le ponen llantas de titanio y todo tipo de chucherías innecesarias, pero el motor del coche anterior que "golpeó" y se atascó, todo eso es innecesario, porque el coche está roto.

Y aquí, un montón de todo tipo de trucos para la escritura, pero donde todo tiene que ser escrito, es en el nivel de 1995, en él, para escribir - una tortura, si el código consta de más de 200 líneas

y al mismo tiempo Renat escribe:

¿Dónde está entonces el meta-editor de 2016?

Por favor, haga al menos el resaltado de código, y eventualmente si es posible - ¡el plegado!

Yo también me pregunto a veces por la dirección que está tomando MT. Pero los desarrolladores saben mejor...
Razón de la queja: