Grupo de usuarios de MetaTrader 5 Python - cómo utilizar Python en Metatrader - página 23

 
Lyuk:


Lo único triste es que los calculadores de números sólo se han acelerado unas 12 veces en los últimos 15 años, yo pensaba que las CPUs modernas eran más rápidas.

Tengo un viejo i7-3770K, tiene siete años. Las CPUs actuales son más rápidas.

 
Roman:

Tengo un viejo i7-3770K, tiene siete años. Las CPUs modernas son más rápidas.

Por desgracia, su 3770K es fácilmente overclockeado hasta 4,8Ghz, incluso si sería más antiguo 2600K, que llegaría al paraíso para el overclocking, el punto es la tendencia a reducir el tamaño de la CPU que conduce a problemas de refrigeración. Por ejemplo el 6xxx es incluso un problema para hacer overclock. En general para los usuarios las especificaciones no cambiaron mucho excepto por los últimos i9 que se volvieron más parecidos a los xeons. La ventaja de los xeons es la eficiencia energética frente a las CPUs para los consumidores normales. así que tu 3770k sigue siendo bastante normal para el usuario medio

 
Hay un hilo sobre las pruebas del procesador, y el autor ha hecho un buen trabajo de recopilación de estadísticas.
Si está interesado, puede probar sus procesadores.
Оцениваем ядра CPU для оптимизации
Оцениваем ядра CPU для оптимизации
  • 2019.08.09
  • www.mql5.com
Предлагаю собрать статистику по производительности разных процессоров с целью оценки их эффективности для работы тестера стратегий в режиме оптимиз...
 

Lo he probado en una máquina virtual Windows7 32bit con 2 núcleos AMD FX.

En el mql5 fue de 6 segundos.

En Python en un hilo fue de 2,5 seg.

Eso es mucho más rápido , e incluso más rápido que tú en I7 en un hilo, lo cual es sorprendente.

Aparentemente el compilador jit funciona mejor para AMD, o AMD es mejor para estas tareas.

 
Así que Python con un compilador jit supera a C (mql) por un factor de 2. Si lo ejecutas en un procesador moderno de 8 núcleos, supera a C por un factor de 8 simplemente porque es multihilo.

Bueno, la prueba normal, permitió a python para golpear el cumplimiento exacto de la norma IEEE (fastmath=true), entonces usted necesita para deslizar -Ofast a syshka también. Y luego está OpenMP, paralelizar el bucle con él - [un par de líneas extra](https://www.ibm.com/developerworks/ru/library/au-aix-openmp-framework/index.html).

Los fans de las abstracciones... ¿Y si hay otro complemento encima de python? ¿Y si hay uno más? Compilar a código de bytes de máquina virtual máquina virtual.

 

Desgraciadamente, un número contable de algoritmos puede descomponerse en paralelismo.

El ejemplo dado de cálculo de pi es sólo para la demostración de dicha prueba sintética. Lo mismo se hace con OpenMP en C++. Se puede hacer aún más rápido en MQL5 con OpenCL.

 

He encontrado un parámetro de paralelismo para bucles en Visual Studio.
¿Podemos implementar una directiva de este tipo también en mql?
¿O los bucles en mql son paralelos por defecto?

vs

 
Roman:

He encontrado un parámetro de paralelismo para bucles en Visual Studio.
¿Podemos implementar una directiva de este tipo también en mql?
¿O los bucles en mql son paralelos por defecto?

No he conseguido ver el uso de este parámetro en Visual Studio (al igual que el resto) desde hace 10 años. Incluso habiendo encendido todas las banderas de la información de desarrollo del bucle.

Sencillamente no funcionó y no funciona ni siquiera en proyectos grandes donde hay muchas posibilidades de paralelizar. Sólo funciona el OpenMP directo con marcado manual de los bucles.

En MQL5, los bucles no están en paralelo.

 
Renat Fatkhullin:

Desgraciadamente, un número contable de algoritmos puede descomponerse en paralelismo.

El ejemplo dado de cálculo de pi es sólo para la demostración de dicha prueba sintética. Lo mismo se hace con OpenMP en C++. Se puede hacer aún más rápido en MQL5 con OpenCL.

He publicado un cálculo en el blog que es perfectamente paralelo. Por desgracia, la información sobre OpenCL es de tal nivel que requiere una competencia muy superior a la que yo tengo.

Me gustaría ver un ejemplo sencillo (como en el blog) de una implementación de OpenCL y el resultado de la aceleración.

 
fxsaber:

He publicado un cálculo en el blog que es perfectamente paralelo. Por desgracia, la información sobre OpenCL es de tal nivel que requiere una competencia muy superior a la que yo tengo.

Me gustaría ver un ejemplo sencillo (como en el blog) de una implementación de OpenCL y el resultado de la aceleración.

Fuera del tema de OpCl pero sobre el tema de Python

Los casos visualmente similares también están bastante bien definidos (distribuciones incrementales)

Tenga en cuenta el grupo 0-6 horas (por GMT + 2)

Meses en 10 años

Horas en 10 años