Ancora una volta, riguardo al multithreading - pagina 2

 
Renat:

Cos'è il multithreading in MetaTrader 5:

Ho appena cliccato sul test, ha immediatamente ottenuto 5.743 agenti/CPU per lavorare ed eseguito 381.468 passaggi nell'ottimizzatore in 6 minuti. Ogni passaggio durava tra 1 e 2 secondi. Se avessi eseguito il test sul mio computer con 8 core, avrei impiegato da 800 a 1600 minuti invece di 6 minuti (381468 / 8 = 47683 secondi = 794 minuti).

E a parte premere il pulsante di avvio, non ho dovuto fare nient'altro. Qualche skynet si è alzato, ha sincronizzato da solo tutta la storia dei grafici necessaria, ha distribuito il compito a migliaia di computer in tutto il mondo e li ha fatti lavorare in massa.

Benvenuto nella realtà...

Renat, perché pensi che la portata del multi-threading sia limitata al tuo tester? Cosa ne pensi, che l'utente non ha il diritto di implementare l'auto-ottimizzazione direttamente nel suo algoritmo? Deve eseguire il tuo tester? E se usa la sua rete neurale? Non essere così unilaterale nelle cose. E allo stesso tempo mi accusa di non capire nulla. Tu vedi solo la situazione dal tuo campanile, e non ti interessa il resto, per come la vedo io.

 
meat:

Cosa, pensate che l'utente non abbia il diritto di implementare l'auto-ottimizzazione direttamente nel suo algoritmo? Deve eseguire il tuo tester? E se usa la sua rete neurale lì? Non giudicare le cose in modo così unilaterale.

Qual è il problema nel farlo ora?
 
meat:

Renat, perché pensi che la portata del multi-threading sia limitata al tuo tester? Cosa, secondo te, l'utente non ha il diritto di implementare l'auto-ottimizzazione direttamente nel suo algoritmo? Deve eseguire il tuo tester? E se usa la sua rete neurale? Non essere così unilaterale nelle cose. E allo stesso tempo mi accusa di non capire nulla. Tu vedi solo la situazione dal tuo campanile, e non ti interessa il resto, per come la vedo io.

Ho 11 anni di pensiero, lavoro e responsabilità costanti su questa lingua.

Quindi, via all'asilo. Se volete specificatamente il multithreading in MQL5, è meglio usare OpenCL o DLL. Per capire il livello di elaborazione di questo argomento, guardate la compilazione del codice C++ direttamente da MetaEditor e il drag&drop dei file DLL dal navigatore al codice MQL5.

 

Quando il "MQL5 - rete neurale su GPU" è implementato, il prezzo di questo progetto sarà alto. Nelle prime fasi sarà difficile, e questo è proprio l'inizio, in modo che in futuro per cercare i difetti.

Tanto più che con l'aiuto del tester ora si possono risolvere problemi di qualsiasi complessità.

 
Renat:

Ho 11 anni di costante riflessione, lavoro e responsabilità su questa lingua.

Quindi, via all'asilo. Se volete specificatamente il multithreading in MQL5, dovreste usare OpenCL o DLL. Per capire il livello di elaborazione anche in questo argomento, guardate la compilazione di codice C++ direttamente da MetaEditor e il drag&drop di file DLL da Navigator nel codice MQL5.

Ho evidenziato la frase chiave. In realtà si trattava di questo fin dall'inizio. Quindi forse avresti dovuto leggere attentamente i miei post prima, invece di essere scortese e andare sul personale senza capire. Sembra strano vedere un comportamento così scortese da qualcuno che rappresenta il volto dell'azienda...

 
TheXpert:
Che problema c'è a farlo ora?
Stiamo parlando di calcoli multi-thread.
 
meat:

Ho evidenziato la frase chiave. In realtà, questo è esattamente quello di cui parlavo fin dall'inizio. Quindi forse avresti dovuto leggere attentamente i miei post prima, invece di maleducazione e personalità. Sembra strano vedere un comportamento così scortese da qualcuno che rappresenta il volto dell'azienda...

Ti è stato detto di OpenCL e DLL nel primissimo commento, ma hai continuato a dire che ne sai di più e che gli sviluppatori erano così mediocri che non potevano fare questo e quello, hanno aggiunto cose inutili ecc.

 
meat:

Cosa, pensate che l'utente non abbia il diritto di implementare l'auto-ottimizzazione direttamente nel suo algoritmo? Deve eseguire il tuo tester? E se usa la sua rete neurale lì? Non essere così unilaterale nelle cose. E allo stesso tempo mi accusa di non capire nulla. Tu vedi solo la situazione dal tuo campanile, e non ti interessa il resto, per come la vedo io.

L'auto-ottimizzazione può anche essere organizzata sotto forma di script separati, combinati attraverso canali denominati. Ma è molto più facile usare il tester interno e scrivere la propria funzione di fitness in OnTester().
Реализация взаимодействия между клиентскими терминалами MetaTrader 5 при помощи именованных каналов (Named Pipes)
Реализация взаимодействия между клиентскими терминалами MetaTrader 5 при помощи именованных каналов (Named Pipes)
  • 2010.07.01
  • investeo
  • www.mql5.com
Данная статья знакомит с реализацией межпроцессного взаимодействия между терминалами MetaTrader 5 посредством именованных каналов (named pipes). Предложен класс CNamedPipes, реализующий возможность использования именованных каналов. Рассмотрен тиковый индикатор для тестирования связи между двумя клиентскими терминалами MetaTrader 5 и измерения общей пропускной способности системы. Представленный метод взаимодействия оказался пригодным для отправки котировок в реальном времени.
 
Renat:

Ti è stato risposto immediatamente, ma tu hai continuato a sostenere di saperne di più e che gli sviluppatori sono talmente mediocri da non poter fare questo e quello, aggiunte inutili e così via.


E qual è stata la sua risposta? Hai iniziato a dirmi che grande terminale e tester hai, lavorando in più flussi. E non ho detto una parola sul tuo terminale. Intendevo un'altra cosa: il multi-threading nel codice MQL. Quando un algoritmo può essere diviso in più parti, e ogni parte viene eseguita in parallelo. E tu, non avendo nemmeno capito l'argomento, cominci ad essere scortese. Beh, come vedo, con questo approccio non ha senso discutere di nulla di costruttivo, quindi è inutile continuare la discussione.

 
meat:

E qual è stata la sua risposta? Hai iniziato a dirmi che grande terminale e tester hai, lavorando in più flussi. E non ho detto una parola sul tuo terminale. Intendevo un'altra cosa: il multi-threading nel codice MQL. Quando un algoritmo può essere diviso in più parti, e ogni parte viene eseguita in parallelo. E voi, non avendone nemmeno capito l'essenza, cominciate ad essere scortesi. Beh, come vedo, con un approccio del genere non ha senso parlare di nessuna idea costruttiva, quindi è inutile continuare la discussione.

Ti consiglio di rileggere il tuo post originale, facendo attenzione a tutti i tuoi epiteti, poi vai sotto alle risposte.

Le risposte suonavano con calma, con domande morbide "Per parallelizzare i calcoli di qualsiasi cosa, è necessario prima realizzare", ha dato risposte e spiegato lo stato attuale delle cose "cosa è veramente da parallelizzare".

Ma invece di una rapida curva di apprendimento avete vomitato altre sciocchezze e ci avete messo i cani addosso. Il risultato fu una risposta dura.