OpenCl e i relativi strumenti. Recensioni e impressioni. - pagina 3

 
Questo è l'uso della RAM per memorizzare o scambiare dati, ad esempio tra due terminali o anche diverse applicazioni.

Utilizza semplicemente aree riservate della RAM al posto dei file. L'idea è la stessa, ma funziona molto più velocemente.

 

La mappatura è la mappatura, è solo che un oggetto file può essere creato direttamente nella RAM.

Non capisco perché? Alexei ha scritto chiaramente che tutto si trova nell'init.

 

Ripeto, l'ho proposto non per il problema di Alexey, ma come un modo per accelerare i calcoli in generale)

Cioè, organizzare una sorta di cache per utilizzare i dati nelle iterazioni successive.

 
OnGoing:
Questo è l'uso della RAM per memorizzare o scambiare dati, ad esempio tra due terminali o anche diverse applicazioni.

Utilizza semplicemente aree riservate della RAM al posto dei file. L'idea è la stessa, ma funziona molto più velocemente.


dimenticare questa DLL spogliata da esso.

Avete una versione completamente funzionale per lavorare con la mappatura.

 
Mathemat:

E come proponi di farlo - senza fare riferimento alla codifica esterna a MQL4?
Ho già suggerito - attraverso i file. Ma è lungo e fastidioso.

In alternativa, si può fare un dll speciale.
L'insieme dei parametri in memoria sarà associato a un certo risultato.
Puoi anche rendere la mappatura più complicata, così:
DateTime - {Parametri di calcolo} - Risultato[i].
Questo già memorizza i calcoli su ogni barra.

Fanculo alla mappatura e ai file. Ciò di cui abbiamo bisogno è la memorizzazione associativa.
 
sergeev:

dimenticare questa DLL spogliata da esso.

Avete una versione completamente funzionale per lavorare con la mappatura.

Wow, grazie. In attesa di esempi su come usarlo)
 
jartmailru: In alternativa, si potrebbe fare un dll speciale.

Chiesto come senza dll.

OK, non importa. È più facile fare calcoli pesanti in C/C++ e velocizzare l'esecuzione di diverse volte usando SSE*, Open MP e IPP. E invece di 10 secondi su MQL4 avrete 1 secondo - anche sul mio dual-core economico.

 
Mathemat:

Gli ho chiesto come poteva lavorare senza dll.

Ok, non importa. È più facile implementare calcoli pesanti in C/C++ e velocizzare l'esecuzione di diverse volte usando SSE*, Open MP e IPP. E invece di 10 secondi in MQL4 avrete 1 secondo - anche sul mio dual core economico.

MQL5 è 20 volte più veloce di MQL4.

C++ è 6 volte più veloce di MQL5 (quando si usano librerie che parallelizzano automaticamente l'esecuzione).

Totale: 20*6=120 volte.

Se usate i calcoli della GPU, sarà ancora più veloce.

TOTALE: 10/120=0,083c.

qualcosa del genere.

 
joo:

MQL5 è 20 volte più veloce di MQL4.

Mi piacerebbe crederci. Ma in pratica l'ottimizzazione in una CPU multicore in MT5 è molto più lenta dell'ottimizzazione a thread singolo in MT4.

È possibile che sembri solo che il codice di MT5 si muova a malapena?

Dovrei prendere un algoritmo di riferimento e usarlo nella funzione start() di MT4 e OnTick() di MT5 ed eseguirlo su un singolo core in Expert Advisors con un parametro di input fittizio che cambia da 0 a 9999 senza genetica per essere sicuro più esattamente. Ma dove trovare questo singolo nucleo?

 
Reshetov:

Tranne che in pratica l'ottimizzazione su una CPU multi-core in MT5 è notevolmente più lenta dell'ottimizzazione a thread singolo in MT4.

No, questo è un tester. Prima del campionato abbiamo misurato il tempo di esecuzione - il tempo di esecuzione di un Expert Advisor leggero ed economico era molto inferiore al tempo impiegato per i test.

Tuttavia questa informazione non è al 100%, potrei mentire, non ricordo.