Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Genial, proporcionará una base para comparar MQL y C/C++. Sólo he aportado los hechos. Y de todos modos, ¿por qué demonios debería ser un Tomás el Creyente?
Puede que haya un poco más de diferencia en los nervios, no hay que discutirlo.
Y, por cierto, me gustaría ver su "sólo los hechos".
Mi "sólo los hechos" están casi allí. "Casi" - porque desenterré las fuentes de mis antiguas pruebas. Voy a actualizarlos un poco, y luego publicaré las fuentes con los resultados de las pruebas como una tabla aquí.
Aquí mismo. Véase mi segundo post en la página.
Por cierto, ya has respondido a mi post con el enlace. El código C anterior puede ser fácilmente reelaborado en MQL4. Consulte el archivo adjunto.
Aquí mismo. Véase mi segundo post en la página.
Por cierto, ya has respondido a mi post con el enlace. El código C de arriba es fácilmente reelaborado para MQL4. Consulte el archivo adjunto.
Te envié un enlace a las fotos de estos behemoths en un mensaje privado - no para complacer el ******ismo digital de los chicos de la escuela vocacional.
Vamos, créeme, tu foto no cambiará sus números aquí ni siquiera en un porcentaje. Adelante, publícalo.
¿Pero cuánto durará? En el buen sentido, hay que montar una buena refrigeración para un equipo de este tipo, refrigeración por agua, digamos, como en la imagen de abajo.
Por favor, escribe los resultados de las pruebas en forma de tabla y publícalos aquí, para que nadie que lea este hilo tenga que saltar por los enlaces.
No es una mesa. Un par de fotos.
Pruebas de los programas parallelpi_x.cpp con diferentes configuraciones de compilación. En la comparación con MQL4, sólo es importante el primer resultado: 6,723 segundos, en el que no se utilizan aceleradores (SSE*, IPP, OML).
Pero si alguien quiere echar un vistazo y ver cómo cambian los resultados al activar los aceleradores, abajo en el adjunto hay un archivo con los ficheros .exe compilados y las librerías paralelas necesarias. Todo lo que necesitas es ponerlos todos en un directorio y ejecutarlos desde la línea de comandos.
Por supuesto, estos resultados no representan ninguna competencia para los monstruos en el conjunto de tarjetas gráficas.
El mismo programa reescrito en MQL4:
El resultado: 22,98 segundos, es decir, 3,4 veces más. Pero allí no se trabaja con matrices, y puede ser crucial para nosotros. Adjunto el código del script.
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í.
¡Así que, fanfarria! Hay cuatro compiladores diferentes en el ring, compitiendo para... para compilar.
Bueno, eso es una broma, por supuesto. Pero en serio, se han escrito seis pruebas. Los resultados se muestran en la siguiente tabla. Y los comentarios son aún más bajos. :)
Como prueba de cálculos pesados se utiliza una red neuronal de 4 capas MLP 80-100-100-10, diseñada como bibliotecas enchufables ex4, ex5 y dll.
Ya lo vemos:
- los resultados de las bibliotecas conectadas ex5 y ex4 difieren en un factor de 6,8 (1 y 5 pruebas)
- los resultados de las bibliotecas eX5 conectadas y las bibliotecas dll del compilador de Intel difieren en un factor de 7,8 (1 y 4 pruebas)
- los resultados de las bibliotecas eX4 conectadas y de las bibliotecas dll del compilador de Intel difieren 62,5 veces (pruebas 5 y 6)
Conclusiones:
Por supuesto, estaba exagerando un poco con respecto a la diferencia de 20 veces entre MQL4 y MQL5. Tal diferencia se producirá (recuerdo dónde se me ocurrió ese número) bajo el uso intensivo de matrices bidimensionales, pero soy demasiado perezoso para ajustar las pruebas específicamente para esa característica específica (además, no corresponderá a los casos típicos de cálculos "pesados" - los casos típicos se presentan en las pruebas), por lo tanto, puedes tomar mi palabra o escribir una prueba por ti mismo. Por tanto, podemos hablar de una diferencia de velocidad de 6,8 veces entre MQL4 y MQL5 y de 62,5 veces entre MQL4 y C++.
Y me desanima este hecho - ¡ahtung! - El script MQL4 que llamó a la dll funciona más rápido que el script MQL5 con la misma dll... ¿Qué significa? - Lo he comprobado, lo he ejecutado varias veces, sin errores. Los desarrolladores parecen haber dicho que MT5 ha optimizado las llamadas dll en comparación con MT4. O bien son peculiaridades de las builds (MT5 574 y MT4 409) y las pruebas no son del todo correctas o... No lo sé.
Quién lo necesita, puede utilizar la rejilla (dll compilado de 4 o 6 pruebas - rejilla muy rápido), las fuentes se adjuntan. El número de neuronas en cada capa es configurable. Pero el optimizador (tanto para el 4 como para el 5) no admite más de 64 parámetros, además hay que utilizar un paso grande, por lo que este monstruo (como en las pruebas, 80-100-100-10, ¡19210 parámetros a optimizar!) no se puede entrenar utilizando medios estándar, hay que utilizar algoritmos de optimización personalizados. Por cierto, para esto (y no sólo para esto) decidí hacer una herramienta de pago (estará en la tienda, por supuesto), que permitirá usar optimizadores personalizados de 4 y 5 pasos para entrenar un número ilimitado de parámetros, incluso de 0 pasos.
Es convincente, joo, muy convincente incluso. Pero hay un par de puntos.
En primer lugar, al compilar por MS, incluso el mejor resultado (opción 3) es menos de 4 veces mejor que la opción 1.
En segundo lugar, no creo que el compilador todo incluido de Intel sea mejor que el de MS por más de un factor 2. Así que has habilitado más optimizaciones con Intel.
En cualquier caso, impresionante. Esperando que la mesa se llene hasta el final.
Ahora sé para qué sirven estas matrices de tarjetas de vídeo: ¡para hacer estos cálculos en cada momento !
En segundo lugar, no creo que el compilador todo incluido de Intel sea más del doble de bueno que el de MS. Por lo tanto, Intel tiene más optimizaciones habilitadas.
¡Y, me desanimé por este hecho, akhtung! - El script MQL4 que llama a la dll funciona más rápido que el script MQL5 con la misma dll... ¿Qué significa? - Lo he comprobado, lo he ejecutado varias veces, sin errores. Los desarrolladores parecen haber dicho que MT5 ha optimizado las llamadas dll en comparación con MT4. O bien son peculiaridades de las builds (MT5 574 y MT4 409) y las pruebas no son del todo correctas o... No lo sé.
Gracias, es muy ilustrativo y ejemplificador.
Supongo que no deberíamos comparar tanto los porcentajes individuales : porque la velocidad de la CPU (bueno, si la tomas en MegaHertz MHz, o GigaHertz, GHz) del ordenador suspendido ... es cero.
Cuando la diferencia de velocidad es de un 10-20%, tiene sentido preocuparse más por la fiabilidad del programa y su entorno y por el tratamiento de los errores. Por ejemplo, cuando se utiliza una DLL hecha en MSC, hay que prestar atención a cómo se enlaza con MSVCRT.DLL y a qué versión, porque tiene que funcionar en el entorno del complicado proceso terminal.exe y en el entorno del bloque de inicialización de MSVCRT.DLL, que puede diferir de una versión a otra, etc. Para el manejo normal de errores en la DLL, MetaTrader construye (y monitorea) una cadena de excepciones, que en sí misma ralentiza todo el sistema y llama a la DLL y así sucesivamente.
Sobre el tema de la velocidad de las neuronas:
aquí hay un hombre que tradujo la biblioteca de redes neuronales FANN a OpenCL y afirma que la aceleración es 20 veces mayor en la tarjeta GTX 285 promedio:
"En mi GPU actual (GeForce 9500 GT), obtengo más o menos la misma velocidad entre las versiones normal y OpenCL. Actualmente tengo una GTX 285 en pedido, y debería ser al menos 10 veces más rápida. Con una GPU moderna, como la GTX 480, espero que sea al menos 20 veces más rápido que mi Mac Pro Nehalem de 2,26 GHz. "
...
"Sí, la nueva tarjeta (GTX 285) ejecuta el kernel unas 20 veces más rápido".
http://leenissen.dk/fann/forum/viewtopic.php?f=2&t=658&start=0
http://leenissen.dk/fann/wp/
Casi todo el mundo ha estado allí, por supuesto.
Para los fanáticos de B4 que no visitan mql5.com : OpenCL: Pruebas de implementación interna en MQL5
Sin embargo, ya casi está.
Sospecho que será muy atractivo para los autotraders que utilizan otras plataformas.