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

 
icas:
"Así es, así es, ¿no? Pero hay otra cara de la moneda" ("Cautivo del Cáucaso", C). Las metacomillas por fin "están a la altura de los tiempos".

¿Han decidido seguir con el hierro por alguna razón? Y el hierro es el que más rápido envejece.


Los héroes normales siempre van al revés (c) Es una canción de alguna película.


Personalmente no me inspira lo más mínimo el hecho de que para conseguir la velocidad con la optimización del nivel MT4, tenga que buscar algún tipo de tarjetas de vídeo. Y la optimización es la parte más problemática en el autotrading en términos de coste computacional.

Además, si mañana a los ferreteros se les ocurre alguna otra característica que les dé una solución más aceptable a los mismos problemas, será una pena para los metacomentarios. Al fin y al cabo, los desarrolladores de hardware son los menos conservadores en sus ideas y a la primera oportunidad intentarán implementar algo para abandonar las muletas anteriores y adelantarse a la competencia.

La forma más eficaz de aumentar la productividad del software es mejorar su algoritmo. Todos los demás intentos de desviarse de este camino, y especialmente los que dependen de otros desarrolladores, suelen acabar de forma muy miserable.

 
Reshetov:

Personalmente no me inspira nada el hecho de tener que buscar unos widgets para conseguir la velocidad de optimización a nivel de MT4. Y la optimización es la parte más problemática en el autotrading en términos de coste computacional.

Además, si el día de mañana a los ferreteros se les ocurre alguna otra característica que les dé una solución más aceptable para las mismas tareas, será una pena para los metaqueros. Al fin y al cabo, los desarrolladores de hardware son los menos conservadores en sus ideas y a la primera oportunidad intentarán implementar algo para poder olvidarse de las muletas anteriores y dejar atrás a sus competidores.

La forma más eficaz de mejorar el rendimiento del software es mejorar su algoritmo. Todos los demás intentos de desviarse de este camino, y especialmente los que dependen de otros desarrolladores, suelen acabar muy mal.


Pruebe MQL5 Cloud Network - la velocidad de optimización es tan alta como nunca antes vista en MT4. En los cálculos masivos, será sorprendente cómo fallan cientos de resultados por segundo cuando se utilizan un par de miles de agentes independientes.

No estoy seguro de que el GPU computing vaya a suponer un aumento de los algoritmos básicos de negociación, pero tenemos planes de largo alcance. En las próximas construcciones habrá muchas cosas interesantes: será posible construir las más potentes granjas de cálculo con intercambio de datos y postanálisis de resultados.

 
Renat:

No estoy seguro de que el GPU computing vaya a suponer un aumento de los algoritmos básicos de negociación, pero tenemos planes de largo alcance. Las próximas construcciones serán muy interesantes: será posible construir las más potentes granjas de cálculo con intercambio de datos y postanálisis de resultados.

Vaya, ¿significa esto que el usuario tendrá acceso a los resultados de los cálculos de los agentes?
 
joo:
¡Vaya! ¿Significa esto que el usuario tendrá acceso a los resultados de los cálculos de los agentes?

Exactamente.

Puede transferir grandes cantidades de datos desde los agentes al terminal anfitrión, y cuando los cálculos se hayan completado, ejecutar automáticamente el método OnTesterFinalize() del mismo Asesor Experto en el propio terminal. Así, será posible realizar un complejo post-procesamiento de los resultados de las pruebas.

 
Renat:

Exactamente.

Será posible transferir grandes cantidades de datos desde los agentes al terminal anfitrión, y cuando los cálculos se completen, ejecutar automáticamente el método OnTesterFinalize() del mismo Asesor Experto en el propio terminal. Así, será posible realizar un complejo postprocesamiento de los resultados de las pruebas.

¡Genial!

Además, antes de que sea demasiado tarde. El método OnTesterFinalize() para los agentes también sería deseable (podría ser el mismo, pero con el parámetro de entrada host/agente). La idea es crear matrices en archivos de mapas (por ejemplo, indicadores pesados de caché) en las máquinas de los agentes, y eliminarlas correctamente al final.

 
Renat:

Pruebe MQL5 Cloud Network - la velocidad de optimización es tan alta como nunca antes vista en MT4. Es sorprendente cómo cientos de resultados por segundo utilizando un par de miles de agentes independientes pueden caer en cálculos masivos.

Sí, ya lo he probado en mi ordenador local de 2 núcleos. Los resultados me decepcionaron. El motor de MT5 apenas puede funcionar con 2 núcleos mientras que MT4 se optimiza muy rápido.

Teóricamente, por supuesto, se pueden poner en marcha ordenadores adicionales conectados a la red local y el rendimiento aumentará debido a ello. Puedes tener más tarjetas de vídeo instaladas en tu ordenador, lo que aumentaría el rendimiento. Pero no es la solución cuando hay que comprar un rack de servidores para aumentar la velocidad de optimización en el probador.

Por supuesto, también se puede utilizar la informática distribuida a distancia, aunque el servicio no es gratuito.

Pero la cuestión es que la productividad de MT4 es ahora suficiente para mí. Y como MT5 se vuelve cada vez más dependiente del hardware, no quiero migrar a una plataforma de este tipo.


Renat:

No estoy seguro de que el GPU computing vaya a suponer un aumento de los algoritmos básicos de negociación, pero tenemos planes de largo alcance.

Para ponerlo en perspectiva, la computación en la GPU para cualquier cosa que no sean los juegos de ordenador no es muy útil hasta ahora. Aquí la historia es muy diferente. En concreto, se da la paradoja de que los gráficos 3D, es decir, las imágenes y las animaciones, se crean (renderizan) en los procesadores de los ordenadores principales. Por un lado parece que se producen tarjetas gráficas con potentes procesadores para gráficos con memoria de alta velocidad, pero por otro lado, todos los que tienen que ver con el 3D, no compran gráficos de lujo, y la compra de procesadores de varios núcleos y convencional, pero de alta velocidad de RAM, a veces la combinación de todas estas cosas en las granjas y la representación. Y lo que es mejor, los resultados de la renderización también pueden verse en tarjetas gráficas bastante baratas (en ello influye mucho la calidad de la imagen en el monitor).

Está claro que los fabricantes de tarjetas de vídeo no están contentos con esta situación, ya que los beneficios están fluyendo, por lo que, por su parte, están haciendo intentos de controlar la situación bajo ellos mismos. Pero hasta ahora con muy poco éxito. Es decir, apareció un software de renderizado para ciertas líneas de tarjetas de vídeo, pero si se calcula, resulta que la relación calidad/precio no está a favor de la GPU. La agencia de publicidad o la imprenta quieren esperar a renderizar la imagen 3D en un multinúcleo habitual o en la granja, pero con la máxima calidad, en lugar de llegar rápidamente a la GPU y luego tratar de corregir los errores. Los renderizadores no tienen prisa por pasarse a la GPU, porque en este caso, su software pasaría a depender de los fabricantes de tarjetas de vídeo, y estar atado a un hardware concreto sólo desanimaría a los clientes.

Si MetaQuotes se dedicara a desarrollar granjas para gráficos en 3D, este paso habría sido comprensible. Pero, en mi opinión, es una pérdida de tiempo, ya que sería mejor esperar a que los fabricantes de tarjetas gráficas calibren sus productos, en lugar de meterse demasiado en el ajo.

Aunque no me corresponde a mí decidirlo, ya que soy el jefe. Pero la cuestión se mantiene, es decir, no hay deseo de cambiar a un software dependiente del hardware y no aparecerá pronto.

 
Reshetov:

Sí, ya lo he probado, en un ordenador local de 2 núcleos. Los resultados son decepcionantes. Lo he probado en MT5, mientras que MT4 muestra una optimización muy rápida.

¿Has probado MQL5 Cloud Network con 2000 agentes en un doble núcleo?

¿O sólo has hecho un único pase local y has descansado en él?

Es con la red MQL5 Cloud Network que hemos logrado una simple aceleración de cientos y miles de veces. Sin GPU, en cualquier Asesor Experto. Tome mi antiguo ejemplo con video: Ejemplo de aceleración de cálculos usando MQL5 Cloud Network


Teóricamente, por supuesto, puedes ejecutar ordenadores adicionales en la red local y el rendimiento aumentará por ello. También es posible tener más tarjetas de vídeo conectadas y el rendimiento aumentaría. Pero esta no es la solución, cuando para aumentar la velocidad de optimización en el probador, tendrá que comprar un rack de servidores.

Por supuesto, también se puede utilizar la informática distribuida a distancia, aunque el servicio no es gratuito.

Hemos hecho posible el aumento instantáneo de miles de agentes con un solo botón (el tiempo de calentamiento de la red es de unos 20-30 segundos) para el cálculo rápido de tareas. En lugar de cientos de horas, puedes hacerlo en media hora.

Además, los precios son ridículos: cualquiera puede comprobarlos, y todos los que se registran en MQL5.com reciben una bonificación de 2 dólares.

Esto es una verdadera revolución. Ahora, cualquier usuario puede poner en jaque a casi cualquier superordenador mediante el uso de los cludes. Y con la introducción de la GPU (una compilación estará disponible el viernes) será posible vencer a los superordenadores en manada.


Pero la esencia del asunto es que por ahora la productividad de MT4 es suficiente para mí. Y como MT5 es cada vez más dependiente del hardware, no quiero migrar a esta plataforma.

La productividad es suficiente (o más bien te la aseguras) para casos sencillos. Para los cálculos masivos y detallados no hay suficiente potencia.

El error al comparar los probadores de MT4 vs MT5 es que la gente hace la vista gorda ante el nivel de detalle tan diferente y la capacidad de realizar pruebas multidivisa con precisión.

También has errado en lo de la dependencia del hardware:

  • MT5 soporta arquitecturas de 32 y 64 bits (la versión de 64 bits es realmente más rápida y potente)
  • MT5 utiliza todos los núcleos locales
  • MT5 utiliza agentes remotos (32 y 64 bits)
  • MT5 utiliza la MQL5 Cloud Network cuando un simple ordenador portátil recibe resultados de cálculo de ordenadores varios miles de veces más potentes que él
  • MT5 utiliza OpenCL independiente del hardware, lo que le permite trabajar con una gran variedad de procesadores GPU

Es usted un descarado ilusionista, claramente consciente de que se equivoca.


Está claro que los desarrolladores de videojuegos no están satisfechos con esta situación, ya que los beneficios fluyen, por lo que hacen intentos de tomar la situación bajo su control. Pero hasta ahora con muy poco éxito. Es decir, apareció un software de renderizado para ciertas líneas de tarjetas de vídeo, pero si lo calculas, resulta que la relación calidad/precio no está a favor de la GPU. La agencia de publicidad o la imprenta quieren esperar a renderizar la imagen 3D en un multinúcleo habitual o en la granja, pero con la máxima calidad, en lugar de llegar rápidamente a la GPU y luego tratar de corregir los errores. Los renderizadores no tienen prisa por pasarse a la GPU, porque en este caso, su software pasará a depender de los fabricantes de tarjetas de vídeo, y estar atado a un hardware concreto sólo desanimará a los clientes.

Aunque no soy un defensor de la GPU (he estado abiertamente en contra de ella durante mucho tiempo), tus conclusiones son erróneas.

No hay software para la GPU, porque los desarrolladores aún no han creído en esta dirección, pero no reiteran la mítica vinculación a un hardware específico. Por decencia, habría que leer al menos qué es OpenCL y para qué se inventó (independiente del hardware y la plataforma).

Las empresas sólo se ven obligadas a utilizar el renderizado de software debido a la inercia y a los procesos establecidos. Conseguir que una empresa cambie de software es un esfuerzo titánico, a menudo imposible durante los próximos 3-5 años. Dado el salto que han dado las GPUs en los últimos 3 años y el énfasis claramente visible de sus autores en la universalización, es razonable no sólo esperar una mejora de los resultados, sino también buscar activamente nuevas características.


Si MetaQuotes estuviera desarrollando granjas para gráficos en 3D, entonces ese paso aún sería comprensible. Y ahora, en mi opinión, es sólo una pérdida de tiempo, porque sería mejor esperar a que los fabricantes de tarjetas de vídeo lo tengan todo resuelto, en lugar de meterse demasiado en el ajo.

Aunque no me corresponde a mí decidirlo, ya que soy el jefe. Pero la cuestión se mantiene, es decir, no hay deseo de cambiar a un software dependiente del hardware y no aparecerá pronto.

Hemos esperado bastante, también hemos criticado y discrepado, pero ha llegado el momento.

Y es la tercera vez que se reitera lo del "software dependiente del hardware".

 
Reshetov:

Sí, ya lo he probado, en un ordenador local de 2 núcleos. Los resultados son decepcionantes. Los resultados son decepcionantes. Apenas puedo hacerlo en MT5 usando 2 núcleos mientras que MT4 se optimiza rápidamente.

Principalmente, en igualdad de condiciones, la velocidad de las pruebas en MT5 es más lenta que en MT4 porque MT5 utiliza un mejor modelado del historial de ticks. Reduce en gran medida la velocidad. Pero, existe la esperanza de que MQ implemente métodos de generación de ticks más simples (y variantes de pruebas sin ticks en absoluto) como en MT4 (hay muchas peticiones de este tipo, y viendo las recientes innovaciones, existe la esperanza de que se implemente).

Reshetov:

Si quiero entrar en detalles, la computación en la GPU no es muy útil para nada, excepto para los juegos de ordenador hasta ahora. La historia es bastante diferente aquí. En concreto, se da la paradoja de que los gráficos 3D, es decir, las imágenes y las animaciones, se crean (renderizan) en los procesadores de los ordenadores principales. Por un lado parece que se producen tarjetas gráficas con potentes procesadores para gráficos con memoria de alta velocidad, pero por otro lado, todos los que tienen que ver con el 3D, no compran gráficos de lujo, y la compra de procesadores de varios núcleos y convencional, pero de alta velocidad de RAM, a veces la combinación de todas estas cosas en las granjas y la representación. Y lo que es mejor, los resultados del renderizado también pueden verse en tarjetas gráficas bastante baratas (en ello influye mucho la calidad de la imagen en el monitor).

Está claro que los fabricantes de tarjetas de vídeo no están contentos con esta situación, ya que los beneficios fluyen, por lo que, por su parte, están tratando de ganar la situación bajo ellos mismos. Pero hasta ahora con muy poco éxito. Es decir, apareció un software de renderizado para ciertas líneas de tarjetas de vídeo, pero si se calcula, resulta que la relación calidad/precio no está a favor de la GPU. La agencia de publicidad o la imprenta quieren esperar a renderizar la imagen 3D en un multinúcleo habitual o en la granja, pero con la máxima calidad, en lugar de llegar rápidamente a la GPU y luego tratar de corregir los errores. Los renderizadores no tienen prisa por pasarse a la GPU, porque en este caso, su software pasaría a depender de los fabricantes de tarjetas de vídeo, y estar atado a un hardware concreto sólo desanimaría a los clientes.

Si MetaQuotes estuviera desarrollando granjas para gráficos 3D, entonces este paso sería comprensible. Pero, en mi opinión, es una pérdida de tiempo, ya que sería mejor esperar a que los fabricantes de tarjetas de vídeo lo tengan todo resuelto, en lugar de meterse demasiado en el ajo.

La situación es casi exactamente la contraria. Todo el mundo que piensa en el futuro se está pasando al GPU computing. Están construyendo superordenadores enteros a partir de videocomputadoras.

Hoy en día, las GPU lo calculan todo, vídeo, audio, fotos e incluso cálculos de fuerza en dinámica y estática.

Información no oficial:
Información general sobre CUDA
http://www.gpgpu.ru/
http://www.computerra.ru/interactive/423392/
http://cgm.computergraphics.ru/issues/issue16/cuda
http://www.ixbt.com/video3/cuda-1.shtml
http://www.ixbt.com/video3/cuda-2.shtml
http://www.thg.ru/graphic/nvidia_cuda_test/print.html
http://www.thg.ru/graphic/nvidia_cuda/print.html
https://ru.wikipedia.org/wiki/CUDA

Documentación sobre CUDA
http://www.uraldev.ru/articles/id/33
http://www.steps3d.narod.ru/tutorials/cuda-tutorial.html

Ejemplos y artículos sobre CUDA
http://www.codeproject.com/info/search.aspx?artkw=CUDA

Literatura impresa:
http://www.ozon.ru/context/detail/id/5080841/
http://www.ozon.ru/context/detail/id/5432077/


Información oficial:

Tecnologías relacionadas
http://www.khronos.org/opencl/

http://www.nvidia.ru/object/cuda_home_new_ru.html
http://nvidia.custhelp.com/cgi-bin/nvidia.cfg/php/enduser/std_alp.php

http://developer.nvidia.com/object/gpucomputing.html
http://developer.nvidia.com/object/cuda_3_2_downloads.html
http://developer.nvidia.com/page/documentation.html
http://developer.nvidia.com/object/nsight-downloads.html

Ejemplos de código CUDA

http://developer.download.nvidia.com/compute/cuda/sdk/website/samples.html

Aplicaciones

http://www.nvidia.ru/object/cuda_research_ru.html

Demostraciones de la comunidad

http://www.nvidia.ru/object/cuda_apps_flash_new_ru.html


Estos son en su mayoría enlaces de CUDA (sacados del alijo) pero todo sigue siendo aplicable a OpenCL en su totalidad. Además, el futuro de OpenCL parece más brillante (tecnología independiente del hardware) que el de CUDA (tecnología dependiente del hardware).


Reshetov:
Aunque no me corresponde a mí decidirlo, ya que el amo es el jefe. Pero la esencia se mantiene, es decir, el deseo de cambiar a un software dependiente del hardware no aparece ni aparecerá pronto.

Nadie te impide escribir programas a la antigua usanza, para la CPU. Todos los programas funcionarán.


ZS Renat se me adelantó.

 

joo:

...

ZS Renat se me adelantó.

Doble golpe. La información nunca es superflua. :) Rama muy informativa, incluso debería arreglarse, para que no baje.
 
icas:
Renat, ¿habrá soporte para OpenCL en MT4?

Por desgracia, no.

Pero una gran actualización de MetaTrader 4 saldrá la próxima semana y el nuevo MetaTrader 4 para iPhone/iPad saldrá esta semana.