Domanda per gli sviluppatori - usare tutti i core di calcolo durante l'ottimizzazione - pagina 6

 
Aleksey Vyazmikin:

Questo non è l'approccio giusto - invece di dare i compiti uno alla volta, dovresti riallocare la capacità se hai risorse libere, cioè cancellare i compiti già dati e darli ad altri da eseguire. Allo stesso tempo è necessario analizzare le prestazioni di ogni agente per dare al kernel il giusto numero di nuovi lavori.

questa è una sciocchezza, mi dispiace

> Dovete cancellare i lavori esistenti e restituirli al kernel perché altri li eseguano

Penso che questo non sia realistico, e perché, quando è più facile creare un batch di lavori, dare un lavoro al primo thread disponibile, aspettare che venga eseguito, dare il lavoro successivo al primo thread disponibile (attiro l'attenzione sulla parola thread, non sul core del processore, la restrizione sui thread dovrebbe essere rimossa - non è il diritto dei programmatori, ma i diritti dell'utente, ricordate che ora i thread di rete sono solo il vero core, non i thread, che abbassa artificialmente le prestazioni della metà)

>È necessario analizzare le prestazioni di ogni agente per dare al kernel il numero richiesto di nuovi lavori da eseguire.

e questo non è affatto necessario, perché i core dello stesso processore con le stesse prestazioni, a seconda dei compiti, contano con velocità diverse, non c'è bisogno di contare qualcosa quando non si può contare proprio nulla

 
Boris Egorov:

È una stronzata, mi dispiace.

> cancella i compiti che sono già stati emessi e li restituisce ad altri per essere eseguiti

Penso che questo non sia realistico, e per cosa, è più facile creare un batch di lavori, dare un lavoro al primo thread disponibile, aspettare che venga eseguito, dare il lavoro successivo al primo thread disponibile (notare la parola thread, non il core processor, la restrizione sui thread dovrebbe essere rimossa - non è un diritto dei programmatori, ma dell'utente, ricordate che ora i thread di rete sono solo core reali, non thread, il che abbassa artificialmente le prestazioni della metà)

>È necessario analizzare le prestazioni di ogni agente per dare al kernel il numero richiesto di nuovi lavori da eseguire.

e non ne avete bisogno perché i core di un processore con le stesse prestazioni a seconda dei compiti contano con velocità diverse, perché dovreste contare qualcosa lì, quando potreste non contare proprio nulla?

Sembra che tu abbia poca esperienza con l'ottimizzatore e non capisci che le informazioni sui passaggi completati arrivano in ritardo, che dopo che un lavoro è stato fatto l'agente invia un frame, che può essere molto pesante, tutto questo porterà a ritardi nella comunicazione e rallenterà l'ottimizzazione. Pertanto, gli incarichi dovrebbero essere emessi in lotti e monitorare il loro progresso - rilasciando nuovi incarichi a quegli agenti che sono vicini a completare il lavoro.

 
Aleksey Vyazmikin:

Sembra che tu abbia poca esperienza con l'ottimizzatore, e non capisci che le informazioni sui passaggi completati arrivano in ritardo, che una volta che un lavoro è completato un agente invia un frame, che può essere molto pesante, tutto questo porterà a ritardi di comunicazione e rallenterà l'ottimizzazione. Pertanto, i compiti dovrebbero essere emessi in lotti e monitorare il progresso dei compiti - rilasciando nuovi compiti a quegli agenti che sono vicini a completare il lavoro.

>Sembra che tu abbia poca esperienza con optimizer,

stai scherzando? 6 anni ininterrottamente

>Le informazioni sui passaggi completati arrivano in ritardo, che dopo aver completato un lavoro un agente invia un frame, che può essere molto pesante, tutto questo porterà a ritardi di comunicazione e rallenterà l'ottimizzazione. Pertanto, gli incarichi dovrebbero essere emessi in lotti e monitorare il loro progresso - rilasciando nuovi incarichi a quegli agenti che sono vicini a completare il lavoro.

>questo porterà a ritardi di comunicazione e rallenterà l'ottimizzazione.

e non importa, le reti sono veloci ora.

ma avere dei core inattivi mentre un povero core finisce un mucchio di lavori del gruppo rallenta l'ottimizzazione perché tutto il resto (decine di core) rimane inattivo e i core devono continuare a contare continuamente senza fermarsi

sembra che tu non abbia mai ottimizzato per molti parametri ... e non sostenere che non hai esperienza pratica

 
Boris Egorov:

>Sembra che tu abbia poca esperienza con l'ottimizzatore,

stai scherzando? 6 anni ininterrottamente

>Le informazioni sui passaggi completati arrivano in ritardo, dopo che un lavoro è stato fatto l'agente invia un frame che può essere molto pesante, tutto questo porta a ritardi di comunicazione e rallenta l'ottimizzazione. Pertanto, gli incarichi dovrebbero essere emessi in lotti e monitorare il loro progresso - rilasciando nuovi incarichi a quegli agenti che sono vicini a completare il lavoro.

>questo porterà a ritardi di comunicazione e rallenterà l'ottimizzazione.

e non importa, le reti sono veloci ora.

ma avere dei core inattivi mentre un povero core finisce un mucchio di lavori del gruppo rallenta l'ottimizzazione perché tutto il resto (decine di core) rimane inattivo e i core devono continuare a contare continuamente senza fermarsi

sembra che tu non abbia mai ottimizzato per molti parametri ... e non sostenere che non hai esperienza pratica ...

Non puoi essere un egocentrico, le reti sono veloci, che egocentrico. Al contrario, le reti non sono veloci quando si tratta di decine e centinaia di megabyte.

L'ottimizzazione primitiva degli EA non è tutto quello che si dice - allarga i tuoi orizzonti e usa il calcolo matematico.

Sì, e tieni presente che questo è principalmente un progetto per il profitto, non per il divertimento degli utenti, e come tale, il meccanismo deve tenere conto della distribuzione casuale dei compiti e della corretta contabilità finanziaria delle loro prestazioni...

 
Aleksey Vyazmikin:

Non puoi essere un egocentrico, le reti sono veloci, che egocentrico. Al contrario, le reti non sono veloci quando si tratta di decine e centinaia di megabyte.

L'ottimizzazione primitiva degli EA non è tutto quello che si dice - allarga i tuoi orizzonti e usa il calcolo matematico.

Oh, e tenete a mente che questo è principalmente un progetto per il profitto, non per compiacere gli utenti, e come tale il meccanismo deve tenere conto della distribuzione casuale dei lavori e della corretta contabilità finanziaria del loro rendimento...

decine e centinaia di megabyte non sono niente, il tempo speso è minimo e tra l'altro non ha niente a che vedere con questo, si dovrebbe pensare prima di scrivere che in un lotto che uno per uno comunque questo traffico dovrà passare

> L'ottimizzazioneprimitiva dell'EA non serve solo a questo: espandete i vostri orizzonti e usate i calcoli matematici.

Vi auguro lo stesso per gli orizzonti

Anche sull'egoismo.

Sono tutt'altro che primitivo, e a cosa serve, quindi illuminaci noi ignoranti.


Trovo la vostra iniziativa completamente assurda in termini di consumo di tempo e di velocità di ottimizzazione.

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
  • www.mql5.com
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода. В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и...
 
Boris Egorov:

Tu stai solo guardando il tuo caso particolare di ottimizzazione, mentre Alexey sta guardando il suo (il suo EA è di diverse centinaia di MB e richiede molto tempo per essere trasferito).

E MQ guarda l'uso complessivo dell'ottimizzatore e lo regola per adattarlo ai più, non a te e Alexey.

I compiti sono ridistribuiti, almeno per me sui core locali. Se da qualche parte non vengono ridistribuiti, datemi un esempio da riprodurre, così anche gli sviluppatori possono tenerne conto.

 
Andrey Khatimlianskii:

Tu stai solo guardando il tuo caso particolare di ottimizzazione, mentre Alexey sta guardando il suo (il suo EA è di diverse centinaia di MB e richiede molto tempo per essere trasferito).

E MQ guarda l'uso complessivo dell'ottimizzatore e lo regola per adattarlo ai più, non a te e Alexey.

I compiti sono ridistribuiti, almeno per me sui core locali. Se da qualche parte non vengono ridistribuiti, datemi un esempio da riprodurre, in modo che anche gli sviluppatori possano tenerne conto.

Sono d'accordo che il mio è un caso speciale.

C'è un problema con l'assegnazione dei compiti se vengono collegati nuovi agenti remoti - questo accade quando le risorse vengono liberate da altri compiti.

 
Andrey Khatimlianskii:

Tu stai solo guardando il tuo caso particolare di ottimizzazione, mentre Alexey sta guardando il suo (il suo EA è di diverse centinaia di MB e richiede molto tempo per essere trasferito).

E MQ guarda l'uso complessivo dell'ottimizzatore e lo regola per adattarlo ai più, non a te e Alexey.

I compiti sono ridistribuiti, almeno per me sui core locali. Se da qualche parte non vengono ridistribuiti, datemi un esempio da riprodurre, in modo che anche gli sviluppatori possano tenerne conto.

>forse ne ho anche uno privato, ma davvero "probabilmente"

>dare un esempio da riprodurre in modo che anche gli sviluppatori possano tenerne conto.

non proprio ... Non posso mostrare il mio EA, non sono interessato a quelli standard, posso fare degli screenshot per mostrare che non sono ridistribuiti

Se fossero ridistribuiti, sarebbe una soluzione al problema

 

Voglio chiedere agli sviluppatori, perché l'ottimizzatore ha distribuito un mucchio di compiti solo ad alcuni core e non un compito ciascuno e quindi in questo caso ha aumentato il tempo di calcolo di tre volte?

.... tempo di calcolo triplicato riusciranno mai a far funzionare correttamente l'ottimizzatore???? un sacco di core liberi sono inattivi ...

 

il secondo giorno non conta nulla, tutti i core sono 12 core locali e circa 30 core di rete sono inattivi, non li tocco di proposito... Non so cosa stia pensando, probabilmente sta cercando il senso della vita o una cura per il coronovirus :-)

Penso che dovremmo abbandonare l'ottimizzatore a causa della sua inoperosità e lentezza

e le recenti decisioni di MT di limitare solo i core fisici, di distribuire persistentemente e stupidamente un mucchio di lavori solo a certi core invece di ogni core - un lavoro - dimostra una totale mancanza di comprensione dei calcoli ad alte prestazioni da parte degli sviluppatori

Motivazione: