Discusión sobre el artículo "Aumente la velocidad de los cálculos con la red en la nube de MQL5" - página 2

 

Mis resultados en la siguiente configuración:

  • Media móvil
  • EURUSD, H1, todos los ticks desde 2010.01.01 hasta 2011.01.01 en MetaQuotes-Demo
  • Saldo: 100 000 USD
  • Configuración


Modo Genetics en MQL5 Cloud Network: 2.624 pases de los 8.704 esperados se calcularon realmente en 15 minutos y 52 segundos. Genetics detuvo el cálculo antes, ya que alcanzó el techo de resultados debido a un campo de búsqueda muy disperso.

2012.02.05 00:52:50     Statistics      locals 0 tasks (0%), remote 0 tasks (0%), cloud 2624 tasks (100%)
2012.02.05 00:52:50     Statistics      optimization passed in 15 minutes 52 seconds
2012.02.05 00:52:50     Tester  genetic optimization finished on pass 8704 (of 1276290)
2012.02.05 00:52:50     Tester  result cache was used 6082 times
2012.02.05 00:52:50     Tester  genetics is over

Tras borrar todas las cachés del disco y reiniciar el terminal, ejecuté Genetics en núcleos locales i7-2600, 3,4 Ghz, Windows 7 x64, RAM 16Gb, 8 núcleos:

Tiempo medio de paso local de 19 a 25 seg (ordenador no cargado con nada):

2012.02.05 01:06:34    Core 2    genetic pass (184, 344771) returned result 97426.26 in 20 sec
2012.02.05 01:06:31    Core 7    genetic pass (191, 419403, 1) started
2012.02.05 01:06:31    Core 7    genetic pass (181, 347989) returned result 94247.90 in 25 sec
2012.02.05 01:06:31    Core 3    genetic pass (190, 1048934, 1) started
2012.02.05 01:06:31    Core 3    genetic pass (183, 255717) returned result 92939.02 in 20 sec
2012.02.05 01:06:28    Core 4    genetic pass (189, 535782, 1) started
2012.02.05 01:06:28    Core 4    genetic pass (182, 131277) returned result 98194.52 in 21 sec


Al darme cuenta de que iba a esperar mucho tiempo a este ritmo, paré el cálculo en 211 pasadas:

2012.02.05 01:07:59    Statistics    locals 211 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2012.02.05 01:07:59    Statistics    optimization passed in 11 minutes 16 seconds
2012.02.05 01:07:59    Tester    genetic optimization finished on pass 211 (of 1276290)
2012.02.05 01:07:59    Tester    result cache was used 0 times


Se puede ver que se trata de 211 pasadas puras con cero aciertos en la caché antigua.

Dado que las distintas ejecuciones de la genética rara vez coinciden en el número de pasadas y que realicé las pruebas de forma bastante limpia, es posible hacer el cálculo del tiempo matemáticamente:

  • consideramos que los agentes locales tardarán 2.624 pasadas así como la genética en el cloude
  • 2.624 en la claude tardaron 15 minutos y 52 segundos (952 segundos).
  • 211 pases locales tardaron 11 minutos y 16 segundos (676 segundos).
  • esto significa que 2.624 pasadas tardarían = (2624 / 211) * 676 = 8.406 segundos (140 minutos y 6 segundos).

El total resulta ser 8.406 / 952 = 8,8 veces la genética es más rápida en la nube. Esto corresponde a la potencia de 64 núcleos locales.


Cuál es la explicación:

  • En genética, el factor de escalado máximo oscila entre 64 y 256 núcleos.

    Esto depende directamente de la propia idea de cruce de diferentes generaciones y del tamaño adaptativo de la población. Es decir, en genética, no se va a utilizar toda la red claude.

  • En genética, los agentes en la nube tienen que esperar a que se complete el cómputo de cada generación.

    Como resultado, de 64-256 agentes, muchos pasan el tiempo esperando un nuevo trozo en lugar de trabajar continuamente. A menudo, cada agente sólo tiene tiempo para completar una tarea de una población de 64-256 tareas. Y los núcleos locales, debido a su menor número e igual potencia, casi nunca están ociosos: cada uno de ellos realiza una parte proporcional del lote de tareas.

  • En las comparaciones con claud la imagen se estropea por la presencia de un probador local multinúcleo.

    Por un lado, cualquier resultado de claud prácticamente tiene que ser dividido por 4-8, y por otro lado - utilizamos las capacidades de los núcleos locales tan eficientemente como sea posible.

  • Hemos derrotado a la latencia de la red - los resultados de los pases de 20 segundos y medio segundo están muy cerca.

    La paquetización y el mecanismo de protocolo de red eficiente mandan.

Por supuesto, los resultados de la enumeración completa no tienen problemas de latencia debido a las pequeñas poblaciones de paquetes y la velocidad puede escalarse linealmente cientos y miles de veces.

 

Encontré un error - estaba probando en el servidor RoboForex de otra persona y pasé bastante tiempo en el bombeo inicial del historial de gráficos.

En la nueva historia, el claude sólo se calienta durante unos minutos, la sincronización de la historia por los agentes. Ahora repetiré las pruebas.

 

He realizado pruebas en MetaQuotes-Demo: hay más historial de M1 en nuestro servidor, casi todas las claudes ya lo tienen y el tiempo de calentamiento de la red es menor.

El aumento del volumen de barras M1 ha provocado el aumento del tiempo de una pasada a 30 segundos.

Aquí están los resultados en la red MQL5 Cloud Network: 3.704 tareas limpias en 25 minutos y 8 segundos (1.508 segundos).

2012.02.05 02:44:37     Statistics      locals 0 tasks (0%), remote 0 tasks (0%), cloud 3704 tasks (100%)
2012.02.05 02:44:37     Statistics      optimization passed in 25 minutes 08 seconds
2012.02.05 02:44:37     Tester  genetic optimization finished on pass 8960 (of 1276290)
2012.02.05 02:44:37     Tester  result cache was used 5256 times
2012.02.05 02:44:37     Tester  genetics is over

Aquí están los resultados de los pases locales: 181 tareas en 11 minutos y 57 segundos (717 segundos) - me detuve para evitar la espera de 4 horas (el tiempo total se puede calcular fácilmente).

2012.02.05 02:58:21     Statistics      locals 181 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2012.02.05 02:58:21     Statistics      optimization passed in 11 minutes 57 seconds
2012.02.05 02:58:21     Tester  genetic optimization finished on pass 181 (of 1276290)
2012.02.05 02:58:21     Tester  result cache was used 0 times

Si calculamos cuánto se tardará en los núcleos locales para calcular 3.704 tareas, obtenemos: ( 3.704 / 181 ) * 717 = 14.672 segundos (244 minutos y 32 segundos = 4 horas, 4 minutos y 32 segundos).

Total resulta que 14.672 / 1.508 = 9,7 veces la genética es más rápido en la nube.

Aunque el resultado se acerca al 8,8 anterior, pero aún así llega a 10 veces, lo que da derecho a declarar "un orden de magnitud más rápido".

Las explicaciones dadas en el comentario https://www.mql5.com/ru/forum/6071/page2#comment_148584 siguen siendo válidas.

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network
 
notused:

Durante 3 min. 28 segundos de uso de la red, me cobraron 2 o 3 céntimos (3 céntimos en el terminal, 2 céntimos en la página web y 3 céntimos congelados). Dejémoslo en 3, o incluso para simplificar, usar la red para la genética cuesta 1 céntimo por minuto. Total, una hora son 60 céntimos, 24 horas = 14,4 dólares. Eso me parece muy caro. Los precios necesitan ser rebajados al menos tres veces para hacerlo atractivo al consumidor (mucha gente prueba EAs, pero no todo el mundo puede/quiere desembolsar unos 15$ al día por Cloud, y si fueran 5$ o menos - habría más gente dispuesta).

...

Creo que mi tren de pensamiento es claro

@Hey vecino, no me gusta que vayas a mi mujer mientras estoy en el trabajo.

@ Usted no entiende que Johnsons, no te gusta, le gusta @ :))

Los compradores siempre quieren más barato, los vendedores más caro, sólo cotizando se resolverá la disputa.

Los compradores deberían poder cotizar un precio deseado por una tarea, los vendedores un precio deseado por sus recursos, entonces se organizaría un mercado.

Pero todo esto será en el futuro, cuando el servicio se convierta en algo habitual y su conveniencia no sea una incógnita. Ahora MQ tiene que demostrar activamente que la nube mola.

 

Mi experiencia: He hecho y estoy haciendo muchas pruebas en claude, pero en todo el tiempo desde el inicio del proyecto he gastado sólo 44 dólares.

Esto es muy poco, teniendo en cuenta que a veces se utilizaron 2-3 mil agentes.

 
Renat:


Resulta que 14.672 / 1.508 = 9,7 veces la genética es más rápida en la nube.

Aunque el resultado se acerca a las 8,8 veces anteriores, sigue llegando a 10 veces, lo que nos da derecho a declarar que es "un orden de magnitud más rápida".

Total, la genética se acelera de 7 a 10 veces. Es decir, en un orden de magnitud. Y como en las pruebas locales no se utilizaron kernels débiles, para algunos usuarios la aceleración alcanzará probablemente las 40 veces.

Yo mismo he decidido que utilizaré la nube si la optimización por mis propias fuerzas me va a llevar más de un día.

+ petición - por favor, amplía los mecanismos para identificar agentes lentos y redistribuir tareas entre ellos a agentes locales + remotos. Pues resulta que la misma prueba con los mismos nucleos que remoto + 10 mas debiles + 2 agentes locales debiles lleva al resultado:

Prácticamente 2,5 veces más lento. Y no siempre hay ganas y posibilidad de medir con que agentes obtener el máximo rendimiento.

 

¿Se menciona que hay que pagar por este servicio?

La página web de MQL Cloud Network(https://cloud.mql5.com/) anuncia ganar $$$ extra dejando que otros usen tu CPU para optimizaciones. ¿Por qué no se menciona que si usas Cloud Network para optimizaciones debes pagar? Si no pagas, ¿quién paga a la gente que pone sus CPUs en la red pero no ejecuta ninguna optimización?

Distributed Computing in the MQL5 Cloud Network
  • cloud.mql5.com
Connect to the MQL5 Cloud Network (Cloud Computing) and earn extra income around the clock — there is much work for you computer!
 

¿La nube es segura? ¿O mi EA será robado si uso la nube?

Gracias

 
MyDream:

¿La nube es segura? ¿O mi EA será robado si uso la nube?

Gracias

Yo diría, que si MQ quiere que ya podría ser implameted, que si su experto backtest resultados son lo suficientemente buenos, que reciben los informes de expertos + backtest de inmediato desde su ordenador local. Pero no creo que estén haciendo nada de eso.

Si usted realmente piensa que su experto puede ser tan bueno, a continuación, sólo tiene que hacer split engeneering (no recuerdo bien therm): Basicamente se prueban las cosas por separado, y los resultados reales solo se ven cuando se combinan todos los resultados que se obtuvieron antes (splits).

 
MyDream:

¿La nube es segura? ¿O mi EA será robado si uso la nube?

gracias

Usted debe leer el artículo Los fundamentos de las pruebas en MetaTrader 5:

El intercambio de datos entre el terminal y el agente

...

Los agentes nunca graban en el disco duro los archivos EX5, obtenidos del terminal (EA, indicadores, librerías, etc.) por razones de seguridad, de modo que un ordenador con un agente en ejecución no podría utilizar los datos enviados. Todos los demás ficheros, incluidas las DLL, se graban en el sandbox. En los agentes remotos no se pueden probar EAs utilizando DLL.

Los resultados de las pruebas son sumados por el terminal en una caché especial de resultados (la caché de resultados), para un rápido acceso a ellos cuando se necesiten. Para cada conjunto de parámetros, el terminal busca en la caché de resultados los resultados ya disponibles de las ejecuciones anteriores, con el fin de evitar repeticiones. Si no se encuentra el resultado con ese conjunto de parámetros, se encarga al agente que realice la prueba.

Todo el tráfico entre el terminal y el agente está cifrado.