Evaluación de los núcleos de la CPU para su optimización

 

Sugiero recopilar estadísticas sobre el rendimiento de varios procesadores para estimar su eficacia para el Probador de Estrategias en modo de optimización.

Para ser más objetivo, le sugiero que utilice un Asesor Experto que se ejecute en el modo"Computación Matemática", que le permite minimizar el uso del disco duro y la memoria de su ordenador. Si es posible, especifica el nombre del procesador, la placa base y la frecuencia de la RAM.

El Asesor Experto sólo tiene un parámetro que debe ser optimizado (de hecho, no es nada y los datos son idénticos para todos los agentes - para ser objetivo), especificar el número de pases igual al número de hilos y seleccionar los agentes por el número de núcleos del procesador (¡no hipertraining!).

Espero que los datos recogidos ayuden a la gente en la elección de un hardware para la optimización que es razonable tomar no de primer orden, al menos ha sido así últimamente, pero algo puede cambiar.

El Asesor Experto en sí es un recorte de un EA real que uso en una tarea similar para seleccionar hojas de un árbol de decisión, es decir, es una tarea real de MdD y si hay alguna idea de cómo acelerar el código estaría muy interesado en escucharla. Sólo hay 1000 hojas en el código, en realidad ya hay más de 70.000, por lo que se ponen en una función para un tiempo de espera aceptable para el resultado de la compilación.

2019.08.09 23:04:26.397 Terminal        Windows 7 Service Pack 1 (build 7601) x64, IE 11, Intel Core i5  M 450 @ 2.40 GHz, Memory: 2045 / 3766 Mb, Disk: 53 / 148 Gb, GMT+3
En el registro del Probador de Estrategias, a través del menú contextual, marque la casilla "Registro de optimización completo".
2019.08.09 22:41:25.630 Core 2  pass 2 returned result 1001000.00 in 0:04:50.391
2019.08.09 22:41:26.642 Core 1  pass 0 returned result 1001000.00 in 0:04:51.365
2019.08.09 22:46:09.036 Core 2  pass 3 returned result 1001000.00 in 0:04:43.441
2019.08.09 22:46:10.759 Core 1  pass 1 returned result 1001000.00 in 0:04:44.152
2019.08.09 22:46:10.759 Tester  optimization finished, total passes 4
2019.08.09 22:46:10.769 Statistics      optimization done in 9 minutes 36 seconds
2019.08.09 22:46:10.769 Statistics      shortest pass 0:04:43.441, longest pass 0:04:51.365, average pass 0:04:47.337

Añadido: En este hilo resultó que el tamaño del archivo en algunos (esto está por averiguar) procesadores afecta al rendimiento del sistema en su conjunto, aunque el código estructuralmente no cambia mucho. Por lo tanto, pido a todo el mundo que pruebe dos probadores.

Ejemplo de configuración del probador - el símbolo, el período y el marco temporal no son importantes - los otros ajustes son relevantes. La captura de pantalla muestra otro EA, pero los ajustes son correctos


Hasta ahora, tenemos la siguiente clasificación donde se ha utilizado el tiempo medio en segundos - las dos últimas columnas y la última columna muestra el número de pasadas del procesador en 1 hora.

La tabla se filtra por la última columna, como la opción de EA más pesada en términos de consumo de recursos computacionales.



Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Большую часть времени современные компьютеры простаивают и не используют всех возможностей процессора. Мы предлагаем задействовать их с пользой. Вы можете сдавать мощности вашего компьютера другим участникам нашей сети для выполнения разнообразных...
Archivos adjuntos:
 
Aleksey Vyazmikin:

Sugiero recopilar estadísticas sobre el rendimiento de los diferentes procesadores para estimar su eficiencia para que el probador de estrategias trabaje en modo de optimización.

Buena iniciativa, la apoyo.

Recibo una advertencia al compilar:

implicit conversion from 'number' to 'string'   Tree_Brut_TestPL.mq5    2567    16

¿Se supone que debe ser así?

Cuerda:

   if(FrameAdd(Test_P,1,0,stat_values)==false)
 
Aleksey Vyazmikin:

Sugiero recopilar estadísticas sobre el rendimiento de varios procesadores para estimar su eficacia para el Probador de Estrategias en modo de optimización.

Para ser más objetivo, le sugiero que utilice un Asesor Experto que se ejecute en el modo"Computación Matemática", que le permite minimizar el uso del disco duro y la memoria de su ordenador. Si es posible, especifica el nombre del procesador, la placa base y la frecuencia de la RAM.

El Asesor Experto sólo tiene un parámetro que debe ser optimizado (de hecho, no es nada y los datos son idénticos para todos los agentes - para ser objetivo), especificar el número de pases igual al número de hilos y seleccionar los agentes por el número de núcleos del procesador (¡no hipertraining!).

Espero que los datos recogidos ayuden a la gente en la elección de un hardware para la optimización que es razonable tomar no de primer orden, al menos ha sido así últimamente, pero algo puede cambiar.

El Asesor Experto en sí es un fragmento de un EA real que uso en una tarea similar para seleccionar hojas de un árbol de decisión, es decir, es una tarea real de MdD y si hay alguna idea de cómo acelerar el código, estaría encantado de escucharla. Sólo hay 1000 hojas en el código, en realidad ya hay más de 70.000, así que se ponen en una función para una expectativa aceptable en tiempo de compilación.

¿En qué período debe optimizar y en qué plazo? ¿Es importante la herramienta?
 
Serhii Shevchuk:

Buena iniciativa, la apoyo.

Da un aviso al compilar:

¿Es así como debe ser?

Línea:

¡Corregido y relanzado!

Pruébalo.

 
Maxim Romanov:
¿En qué periodo hay que optimizar y en qué plazo? ¿Es importante la herramienta?

En el modo decálculo matemático no importa, ¡no se generan ticks allí!

 
¿Qué pasa con eso? ¿Ya no despega el tronco de finales de los 2000? :D
 
Artem Prischepa:
¿Qué hay ahí fuera? ¿Ya no despega el tronco de finales del 2000? :D

Pruebe su procesador y publique sus resultados: ¡vea si despega o sólo rueda!

 

¿Un caballo viejo estropea el surco?

hardware

Resultados:

2019.08.09 23:22:07.472 Tester  set "Custom max" as optimization criterion for mathematical calculations
2019.08.09 23:22:07.540 Experts optimization frame expert Tree_Brut_TestPL (EURUSD.m,H1) processing started
2019.08.09 23:22:07.592 Tester  cache file 'tester\cache\Tree_Brut_TestPL.30.DFF2DB61B8A3751199D61AD0A0F226D3.opt' deleted
2019.08.09 23:22:07.623 Tester  Experts\Tree_Brut_TestPL.ex5 math calculations test means no history and no symbol info for EURUSD.m
2019.08.09 23:22:07.623 Tester  complete optimization started
2019.08.09 23:22:07.648 Core 1  agent process started on 127.0.0.1:3008
2019.08.09 23:22:07.650 Core 2  agent process started on 127.0.0.1:3009
2019.08.09 23:22:07.652 Core 3  agent process started on 127.0.0.1:3010
2019.08.09 23:22:07.654 Core 4  agent process started on 127.0.0.1:3011
2019.08.09 23:22:07.657 Core 5  agent process started on 127.0.0.1:3012
2019.08.09 23:22:07.659 Core 6  agent process started on 127.0.0.1:3013
2019.08.09 23:22:07.662 Core 7  agent process started on 127.0.0.1:3014
2019.08.09 23:22:07.664 Core 8  agent process started on 127.0.0.1:3015
2019.08.09 23:22:07.972 Core 1  connecting to 127.0.0.1:3008
2019.08.09 23:22:07.973 Core 1  connected
2019.08.09 23:22:07.983 Core 1  authorized (agent build 2097)
2019.08.09 23:22:07.997 Core 1  common synchronization completed
2019.08.09 23:22:08.035 Core 3  connecting to 127.0.0.1:3010
2019.08.09 23:22:08.036 Core 3  connected
2019.08.09 23:22:08.046 Core 3  authorized (agent build 2097)
2019.08.09 23:22:08.056 Core 2  connecting to 127.0.0.1:3009
2019.08.09 23:22:08.057 Core 2  connected
2019.08.09 23:22:08.059 Core 3  common synchronization completed
2019.08.09 23:22:08.067 Core 5  connecting to 127.0.0.1:3012
2019.08.09 23:22:08.068 Core 5  connected
2019.08.09 23:22:08.068 Core 2  authorized (agent build 2097)
2019.08.09 23:22:08.082 Core 2  common synchronization completed
2019.08.09 23:22:08.083 Core 5  authorized (agent build 2097)
2019.08.09 23:22:08.103 Core 7  connecting to 127.0.0.1:3014
2019.08.09 23:22:08.104 Core 7  connected
2019.08.09 23:22:08.119 Core 7  authorized (agent build 2097)
2019.08.09 23:22:08.125 Core 5  common synchronization completed
2019.08.09 23:22:08.140 Core 7  common synchronization completed
2019.08.09 23:22:08.150 Core 4  connecting to 127.0.0.1:3011
2019.08.09 23:22:08.151 Core 4  connected
2019.08.09 23:22:08.151 Core 8  connecting to 127.0.0.1:3015
2019.08.09 23:22:08.151 Core 8  connected
2019.08.09 23:22:08.162 Core 8  authorized (agent build 2097)
2019.08.09 23:22:08.164 Core 4  authorized (agent build 2097)
2019.08.09 23:22:08.184 Core 6  connecting to 127.0.0.1:3013
2019.08.09 23:22:08.185 Core 6  connected
2019.08.09 23:22:08.208 Core 6  authorized (agent build 2097)
2019.08.09 23:22:08.228 Core 4  common synchronization completed
2019.08.09 23:22:08.240 Core 6  common synchronization completed
2019.08.09 23:22:08.250 Core 8  common synchronization completed
2019.08.09 23:24:45.931 Tester  optimization finished, total passes 8
2019.08.09 23:24:45.941 Statistics      optimization done in 2 minutes 38 seconds
2019.08.09 23:24:45.941 Statistics      shortest pass 0:02:35.945, longest pass 0:02:37.669, average pass 0:02:37.006
2019.08.09 23:24:45.941 Statistics      8000 frames (3.14 Mb total, 412 bytes per frame) received
2019.08.09 23:24:45.941 Statistics      local 8 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2019.08.09 23:24:45.988 Tester  8 new records saved to cache file 'tester\cache\Tree_Brut_TestPL.30.DFF2DB61B8A3751199D61AD0A0F226D3.opt'

Versión de terminal:

2019.08.09 23:20:35.776 Terminal        MetaTrader 5 x64 build 2085 started (MetaQuotes Software Corp.)
2019.08.09 23:20:35.778 Terminal        Windows 10 (build 17763) x64, IE 11, UAC, AMD FX-8300 Eight-Core Processor , Memory: 17102 / 24574 Mb, Disk: 2407 / 2441 Gb, GMT+2
 
Serhii Shevchuk:

¿Un caballo viejo estropea el surco?

Resultados:

Versión de terminal:

Parece que tienes 8 agentes implicados, y necesitas 4, porque la FPU en FX sólo tiene 4 y 8 ALUs, y es la FPU la que se carga durante la optimización. Por qué es así - no está claro - pregunta a los desarrolladores, porque el código se construye en gran medida en la comparación, pero al parecer el consumo de cálculo de punto flotante prevalece o veces más lento, por lo que resulta que es necesario establecer el número de coprocesadores, a continuación, 1 pase será más rápido y el tiempo medio seguirá siendo el mismo.

 
Aleksey Vyazmikin:

Parece que tienes 8 agentes implicados y necesitas 4, ya que la FPU en FX es sólo de 4 y 8 APUs, y es la FPU la que se carga durante la optimización. Por qué es así - no está claro - pregunta a los desarrolladores, porque el código se basa principalmente en la comparación, pero aparentemente el consumo de cálculo de punto flotante prevalece o es veces más lento, por lo que resulta que es necesario establecer exactamente el número de coprocesadores, entonces 1 pase será más rápido y el tiempo promedio será aproximadamente el mismo.

Por favor, aclárese. ¿Desconecto 4 agentes y pongo el parámetro a optimizar para que me den 4 pases de optimización u 8 pases?
 
Serhii Shevchuk:
Por favor, aclárese. ¿Deshabilito 4 agentes y configuro el parámetro a optimizar para tener 4 pases de optimización u 8 pases?

8 pasa a 4 agentes, algo análogo a la hipercomercialización, según el número de hilos.

Activa el"Registro de optimización completo" para ver el tiempo de cada pasada.