MetaTrader 5 Python User Group - Come usare Python in Metatrader - pagina 23

 
Lyuk:


L'unica cosa triste è che i creatori di numeri hanno accelerato solo di circa 12 volte negli ultimi 15 anni, pensavo che le CPU moderne fossero più veloci.

Ho un vecchio i7-3770K, ha sette anni. Le CPU di oggi sono più veloci.

 
Roman:

Ho un vecchio i7-3770K, ha sette anni. Le CPU moderne sono più veloci.

Ahimè, il tuo 3770K è facilmente overcloccato fino a 4.8Ghz, anche se sarebbe più antico 2600K, si raggiungerebbe il paradiso per l'overclocking, l'intero punto è tendenza a ridurre la dimensione della CPU che porta a problemi di raffreddamento. Per esempio il 6xxx è addirittura un problema di overclock. Nel complesso per gli utenti le specifiche non sono cambiate molto tranne che per gli ultimi i9 che sono diventati più simili agli xeon. Il vantaggio degli xeon è l'efficienza energetica rispetto alle CPU per i consumatori normali. quindi il tuo 3770k è ancora abbastanza normale per l'utente medio

 
C'è un thread sui test dei processori, e l'autore ha fatto un buon lavoro di raccolta delle statistiche.
Se siete interessati, potete testare i vostri processori.
Оцениваем ядра CPU для оптимизации
Оцениваем ядра CPU для оптимизации
  • 2019.08.09
  • www.mql5.com
Предлагаю собрать статистику по производительности разных процессоров с целью оценки их эффективности для работы тестера стратегий в режиме оптимиз...
 

Testato su una macchina virtuale Windows7 32bit con 2 core AMD FX.

Su mql5 era di 6 secondi.

Su Python in un thread era di 2,5 sec.

Questo è molto più veloce, e anche più veloce di te su I7 in un thread, il che è incredibile.

Apparentemente il compilatore jit funziona meglio per AMD, o AMD è migliore per questi compiti.

 
Quindi Python con un compilatore jit batte il C (mql) di un fattore 2! Se lo fai girare su un moderno processore a 8 core, batte il C di un fattore 8 semplicemente perché è multi-threaded.

Beh, test normale, permesso a python di urtare l'esatta conformità con lo standard IEEE (fastmath=true), poi è necessario infilare -Ofast anche a syshka. E poi c'è OpenMP, parallelizzare il ciclo con esso - [un paio di righe in più](https://www.ibm.com/developerworks/ru/library/au-aix-openmp-framework/index.html).

I fan delle astrazioni... Cosa succede se c'è un altro add-on sopra python? E se ce ne fosse un altro? Compila il codice byte della macchina virtuale di una macchina virtuale.

 

Sfortunatamente, un numero considerevole di algoritmi può essere decomposto in parallelismo.

L'esempio dato del calcolo di pi greco è solo per la dimostrazione di tale test sintetico. Lo stesso si fa con OpenMP in C++. Può essere fatto ancora più velocemente in MQL5 con OpenCL.

 

Ho trovato un tale parametro di parallelismo per i loop in Visual Studio.
Possiamo implementare una tale direttiva anche in mql?
O i cicli in mql sono paralleli per default?

vs

 
Roman:

Ho trovato un tale parametro di parallelismo per i loop in Visual Studio.
Possiamo implementare una tale direttiva anche in mql?
O i cicli in mql sono paralleli per impostazione predefinita?

Non sono riuscito a vedere l'uso di questo parametro in Visual Studio (così come in tutto il resto) negli ultimi 10 anni. Anche dopo aver acceso tutte le bandiere di segnalazione di loop unfolding.

Semplicemente non ha funzionato e non funziona nemmeno su grandi progetti dove ci sono molte possibilità di parallelizzazione. Solo OpenMP diretto con marcatura manuale dei loop funziona.

In MQL5, i cicli non sono parallelizzati.

 
Renat Fatkhullin:

Sfortunatamente, un numero considerevole di algoritmi può essere decomposto in parallelismo.

L'esempio dato del calcolo di pi greco è solo per la dimostrazione di tale test sintetico. Lo stesso si fa con OpenMP in C++. Può essere fatto ancora più velocemente in MQL5 con OpenCL.

Ho pubblicato un calcolo sul blog che è perfettamente parallelo. Sfortunatamente, le informazioni su OpenCL sono di un livello tale da richiedere una competenza molto più alta di quella che ho io.

Mi piacerebbe vedere un semplice esempio (come nel blog) di un'implementazione OpenCL e il risultato dell'accelerazione.

 
fxsaber:

Ho pubblicato un calcolo sul blog che è perfettamente parallelo. Sfortunatamente, le informazioni su OpenCL sono di un livello tale da richiedere una competenza molto più alta di quella che ho io.

Mi piacerebbe vedere un semplice esempio (come nel blog) di un'implementazione OpenCL e il risultato dell'accelerazione.

Fuori dal tema dell'OpCl ma sul tema di Python

Casi visivamente simili sono anche abbastanza ben definiti (distribuzioni incrementali)

Nota il gruppo 0-6 ore (da GMT + 2)

Mesi in 10 anni

Ore in 10 anni


Motivazione: