Ancora una volta, riguardo al multithreading - pagina 9

 
Maxim Romanov:
Nel tester tutto va in 1 filo, ma nella vita reale sì, funziona.

e i benefici sono brevettati o intorno al margine di errore?

 
Igor Zakharov:

e i benefici sono brevettati o intorno al margine di errore?

Se gli indicatori sono duri, c'è un vantaggio. In un tester, sì, non ha senso.
 

Abbiamo in programma di aggiungere ThreadXXX e funzioni di scambio per eseguire compiti individuali.

Questi non sono thread del programma principale, ma script separati (con gestori OnStart) che verranno eseguiti indipendentemente in una modalità nascosta simile ai servizi.

Sarete in grado di interrogare e gestire gli elenchi dei programmi. Quando si avvia un "thread", il suo file ex5 sarà specificato da un file su disco o dalla propria risorsa. In questo modo, è possibile avere un unico file ex5 che può facilmente eseguire più thread dalle sue risorse e scambiare dati con loro.

I fili non funzionano nel tester.
 
Renat Fatkhullin:

Abbiamo in programma di aggiungere ThreadXXX e funzioni di scambio per eseguire compiti individuali.

Questi non sono thread del programma principale, ma script separati (con gestori OnStart) che verranno eseguiti indipendentemente in modalità nascosta simile ai servizi.

Sarà possibile interrogare e gestire elenchi di programmi. Quando un "thread" viene avviato, il suo file ex5 sarà specificato da un file su disco o dalla propria risorsa. Così sarà possibile avere un unico file ex5, che dalle sue risorse lancia facilmente diversi thread e scambia dati con loro.

I thread non verranno eseguiti nel tester.

Questa è una buona notizia :) .

 
dd:
Non ho offerto un solo buon consiglio sui termini del problema... Buona notte anche a te...

Lo era, ma lui non è un lettore, è uno scrittore.


dd:
mio caro caro, raggio di sole, hai letto il problema? è chiaramente descritto lì - in un ciclo, un sacco di altri compiti devono essere fatti in un secondo, ad esempio chiudere 500 000 ordini o non chiudere - controllare ... 0,1 lotto, 50 000 di deposito, sei bravo in matematica? E sì, è sintetico. Ma il suo consiglio è inutile.

Zajinka, trova il tuo codice di merda e tutto volerà!

Oppure, se il compito è stato formulato così male e avete davvero bisogno di accelerare un singolo test, nient'altro che OpenCL andrà bene. Ma questa è una sciocchezza, molto probabilmente l'approccio era sbagliato fin dall'inizio. Ma non ha senso indovinare senza il codice o una descrizione più dettagliata.

Per accelerare i test, puoi leggere i post di fxsaber, lui ha trattato ampiamente questo problema. Potete usare Virtual o tagliare le zecche. Ma, di nuovo, il problema è molto probabilmente nella dichiarazione iniziale del problema o nel codice subottimale.

 

per chiudere 500.000 ordini al secondo e contare un passaggio per 5 giorni... Sì...

Perdonatemi amministratori, ma se volete usare l'HFT, dovete pagare ~$20K per una licenza di software speciale HFT.

O $100+k - lo scriveranno proprio per voi.

 
Aleksey Mavrin:

per chiudere 500.000 ordini al secondo e contare un passaggio per 5 giorni... Sì...

Perdonatemi amministratori, ma se volete usare l'HFT, dovete pagare ~$20K per una licenza di software speciale HFT.

O 100+k$ - lo scriveranno per voi.

Ho il sospetto che la gente che è appassionata di HFT compri almeno una licenza di server in una volta sola.

Il terminale è un'entità superflua quando si parla di frazioni di secondo

 

Non so come sono disposti i thread, ma MT5 utilizza un solo core del processore, se il core del processore è caricato al massimo, il terminale si blocca.

Non dovreste parallelizzare i thread, ma parallelizzare i compiti su altri processori (core).

 
Sergey Chalyshev:

Non so come sono impostati i threads, ma MT5 usa solo un core della CPU, se il core della CPU è caricato al massimo - il terminale si blocca.

Non lo fa.

Solo gli indicatori per uno strumento funzionano in un thread e si "guasta" se sono pesanti e un core non può gestirli.


Sergey Chalyshev:

Non dovreste parallelizzare i thread, ma parallelizzare i compiti su altri processori (core).

Questo è ciò che fa Windows.

 
Andrey Khatimlianskii:

Questo non è il caso.

Solo gli indicatori lavorano su un thread per strumento, e saranno 'glitchati' se sono pesanti e un core non può farcela.


Questo è ciò che fa Windows.

Windows non c'entra niente, so che quasi ogni compito può essere parallelo a tutti i core

Motivazione: