Ho paura che con 24 agenti su 8 core (4 essenzialmente + hypertrading) spenderete tutte le prestazioni della CPU per fornire infrastrutture.
L'esposizione di un numero eccessivo di agenti fa cadere drasticamente il loro indice di performance PR, con il risultato di un multiplo della tariffa.
Ho impostato tutto con 8 EAs. Grazie per le informazioni!
Renat: Se si macina un sistema di rete distribuita per molto tempo, si ottiene un buon risultato.
PF 0 MQL5 Cloud Europe 200:24:16 genetic pass (264, 0, 188) started
JL 0 MQL5 Cloud Europe 200:29:07 connection closed
ID 0 MQL5 Cloud Europe 200:29:07 connecting to 3.agents.mql5.com:443
GL 0 Tester 00:29:07 cloud server MQL5 Cloud Europe selected for genetic computation
KO 0 MQL5 Cloud Europe 200:29:07 connected
JP 0 MQL5 Cloud Europe 200:29:10 authorized (server build 696)
RG 0 Tester 00:30:11 Best result 32.12073652718463 produced at generation 20. Next generation 21
KJ 0 MQL5 Cloud Europe 00:30:11 common synchronization completed
GN 0 MQL5 Cloud Europe 01:57:24 connection closed
CI 0 MQL5 Cloud Europe 201:57:24 connection closed
MS 3 Tester 01:57:24 genetic pass (21, 285) not processed and added to task queue
II 3 Tester 01:57:24 genetic pass (21, 498) not processed and added to task queue
PO 3 Tester 01:57:24 genetic pass (21, 499) not processed and added to task queue
GQ 0 MQL5 Cloud Europe 01:57:24 genetic pass (21, 285) returned to queue
NF 0 Tester 01:57:24 genetic pass (21, 499) already processed
KN 0 Tester 01:57:24 genetic pass (21, 498) already processed
OJ 0 Core 101:57:24 genetic pass (285, 0, 1) started
PS 0 Core 201:57:24 genetic pass (285, 0, 1) started
I compiti sono stati rilasciati agli agenti locali + remoti + il cloud. Appendere un passaggio sulla nuvola. Dopo quasi un'ora e mezza di attesa, scollegato il cloud - i compiti sono stati trasferiti agli agenti locali. La velocità della corsa è entro 1-3 minuti:
DP 0 Core 102:14:59 genetic pass (23, 256) returned result 4.45in45 sec
LH 0 Core 102:14:59 genetic pass (273, 0, 1) started
CP 0 Core 502:14:59 genetic pass (23, 260) returned result 2.64in46 sec
OH 0 Core 502:14:59 genetic pass (274, 0, 1) started
PS 0 Core 602:15:01 genetic pass (23, 261) returned result 3.37in48 sec
HH 0 Core 602:15:01 genetic pass (278, 0, 1) started
KQ 0 Core 802:15:03 genetic pass (23, 264) returned result -0.01in50 sec
CG 0 Core 802:15:03 genetic pass (279, 0, 1) started
PP 0 Core 202:15:06 genetic pass (23, 257) returned result -0.01in52 sec
DG 0 Core 202:15:06 genetic pass (280, 0, 1) started
NP 0 Core 302:15:07 genetic pass (23, 258) returned result -0.01in53 sec
Tutto sommato, è impossibile che sia un'ora e mezza.
P. S. Ha trasformato la nuvola al volo. A causa della perdita di internet, gli agenti remoti hanno abbandonato. Poi non volevano connettersi (stato autorizzato; almeno due generazioni genetiche non si connettevano) - apparentemente, il tester ha deciso che c'è abbastanza da fare sul cloud, e ha lasciato riposare gli agenti liberi. Disconnesso il cloud. Gli agenti remoti sono collegati. Ha riacceso le nuvole. Finito con una riattaccata.
La rete deve essere un po' finalizzata per evitare tali situazioni (per esempio, per ricordare il tempo massimo di passaggio e se l'attesa del passaggio dura 2 volte di più del tempo massimo di passaggio - per avviare lo stesso processo sul miglior core da locale (o remoto)).
+ la velocità della genetica dipende dalla velocità del core più debole - se i miei core hanno PR - 160-180, e i compiti nel cloud sono distribuiti ai core fino a 100. Di conseguenza, ad ogni generazione, i miei core devono rimanere inattivi per una quantità significativa di tempo e aspettare le risposte dal cloud per generare una nuova popolazione. Penso che dovrei abbandonare il limite di 100PR e dare la priorità a quegli agenti il cui PR è maggiore del PR del nucleo locale più debole (+o del nucleo remoto, se connesso). In caso contrario, il bilanciamento del carico deve essere fatto in qualche modo. Per esempio, se assumiamo che tutti i passaggi vengono eseguiti sullo stesso core alla stessa velocità (nella vita, naturalmente, non è così, ma molti esperti con alcuni presupposti, può essere chiamato stabile nel tempo di test, indipendentemente dai parametri). Se il PR del core locale è 150 e il PR del core nel cloud è 100, allora all'agente locale dovrebbero essere dati 1,5 volte più compiti dell'agente nel cloud. Oppure, se il PR è più basso, non date agli agenti nel cloud un compito alla volta, ma date un compito a una gamma più ampia di agenti. In questo caso, il tempo di inattività sarebbe minimo. In generale, vorrei vedere dei progressi su questo tema
A proposito, qualcuno ha provato a condividere gli agenti su un ssd? Considerando il modo in cui il mio disco rigido inizia a scricchiolare su 8 agenti, anche senza compiti, ho il sospetto che la risorsa ssd si stia esaurendo rapidamente. E quando si testa una EA abbastanza leggera, la velocità di calcolo, la velocità del disco rigido comincia a impantanarsi. Quanti terabyte vengono pompati nella cache è una buona domanda)
sion: A proposito, qualcuno ha provato a condividere gli agenti su un ssd? Considerando come il mio disco inizia a scricchiolare su 8 agenti, anche senza compiti, ho il sospetto che la risorsa ssd si stia esaurendo rapidamente. E quando si testa una EA abbastanza leggera, la velocità di calcolo, la velocità del disco rigido comincia a impantanarsi. Quanti terabyte vengono pompati nella cache è una buona domanda)
C'è una tale lettera nell'alfabeto (voglio dire ssd), ma non ho fatto prove specifiche: poiché il server con tale dispositivo è all'altro capo della città. Ma, IMHO, in qualsiasi sistema c'è una cache del disco, che smussa gli accessi frequenti al disco.
Mi chiedo chi ha dato così tante risorse per questa nuvola, usura del sistema con consumo di elettricità, chiaramente più di 2-3 centesimi al giorno. Diverse volte ho provato a fornire risorse, ma è una causa persa se meno di 10Gb su disco (a 9GB RAM), con qualche genetica di carico, il sistema si blocca solo stupidamente, anche se non mangia tutto lo spazio libero (RAM, ecc, fino a swap), una fey il disco cerca di pompare la cache completa, che porta a freni selvaggi.
Ho deciso di ottimizzare un semplice grider (timer 30 sec, nuovo controllo della barra m1) su tutti i tick per due coppie. I miei 4 core i5 (PR=160-170) e 8 core i7 (PR=170-180) hanno ottimizzato per circa 90 (!) ore.
Poi si è scoperto che i passaggi i5 sono testati 2 volte più lenti (anche se, come ho già scritto diverse volte prima, era viceversa - i5 + winxp64 era più veloce di i7 + win7x64). All'inizio ho falciato la memoria - l'i7 ne ha di più.
Poi ho accidentalmente dato un'occhiata al task manager e ho visto che gli agenti hanno la priorità più bassa (Low). E ce l'ho su entrambe le macchine. E mentre sono riuscito ad aumentare la priorità a Normal su win7, winxp64bit non lo permette per qualche motivo. Durante mezza giornata con le nuove priorità su i7, il mio tempo di test è stato ridotto (apparentemente :)) di diverse ore.
Tali "ritardi" sembrano essere osservati nelle ultime due build (o forse sembra solo a me).
E Priority Low è troppo crudele - se l'attrezzatura almeno 12 ore al giorno può dare la massima priorità agli agenti.
In generale, pensavo che la priorità in qualche modo cambiasse automaticamente a seconda del carico di risorse, ma sembra che non cambi da sola :(
Ho paura che con 24 agenti su 8 core (4 essenzialmente + hypertrading) spenderete tutte le prestazioni della CPU per fornire infrastrutture.
L'esposizione di un numero eccessivo di agenti fa cadere drasticamente il loro indice di performance PR, con il risultato di un multiplo della tariffa.
Non ho usato la nuvola per un po'. Ho deciso di usarlo nella selezione dei parametri. Il lavoro della nuvola è stato piacevolmente sorprendente.
Se si macina un sistema di rete distribuita per molto tempo, si ottiene un buon risultato.
Tutto sommato, è impossibile che sia un'ora e mezza.
P. S. Ha trasformato la nuvola al volo. A causa della perdita di internet, gli agenti remoti hanno abbandonato. Poi non volevano connettersi (stato autorizzato; almeno due generazioni genetiche non si connettevano) - apparentemente, il tester ha deciso che c'è abbastanza da fare sul cloud, e ha lasciato riposare gli agenti liberi. Disconnesso il cloud. Gli agenti remoti sono collegati. Ha riacceso le nuvole. Finito con una riattaccata.
La rete deve essere un po' finalizzata per evitare tali situazioni (per esempio, per ricordare il tempo massimo di passaggio e se l'attesa del passaggio dura 2 volte di più del tempo massimo di passaggio - per avviare lo stesso processo sul miglior core da locale (o remoto)).
+ TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE) deve essere perfezionato
+ la velocità della genetica dipende dalla velocità del core più debole - se i miei core hanno PR - 160-180, e i compiti nel cloud sono distribuiti ai core fino a 100. Di conseguenza, ad ogni generazione, i miei core devono rimanere inattivi per una quantità significativa di tempo e aspettare le risposte dal cloud per generare una nuova popolazione. Penso che dovrei abbandonare il limite di 100PR e dare la priorità a quegli agenti il cui PR è maggiore del PR del nucleo locale più debole (+o del nucleo remoto, se connesso). In caso contrario, il bilanciamento del carico deve essere fatto in qualche modo. Per esempio, se assumiamo che tutti i passaggi vengono eseguiti sullo stesso core alla stessa velocità (nella vita, naturalmente, non è così, ma molti esperti con alcuni presupposti, può essere chiamato stabile nel tempo di test, indipendentemente dai parametri). Se il PR del core locale è 150 e il PR del core nel cloud è 100, allora all'agente locale dovrebbero essere dati 1,5 volte più compiti dell'agente nel cloud. Oppure, se il PR è più basso, non date agli agenti nel cloud un compito alla volta, ma date un compito a una gamma più ampia di agenti. In questo caso, il tempo di inattività sarebbe minimo. In generale, vorrei vedere dei progressi su questo tema
Nelle ultime 12 ore, la rete si è bloccata altre tre volte :(
(E ci sono agenti con PR < 100 nelle riviste di genetica)
A proposito, qualcuno ha provato a condividere gli agenti su un ssd? Considerando come il mio disco inizia a scricchiolare su 8 agenti, anche senza compiti, ho il sospetto che la risorsa ssd si stia esaurendo rapidamente. E quando si testa una EA abbastanza leggera, la velocità di calcolo, la velocità del disco rigido comincia a impantanarsi. Quanti terabyte vengono pompati nella cache è una buona domanda)
C'è una tale lettera nell'alfabeto (voglio dire ssd), ma non ho fatto prove specifiche: poiché il server con tale dispositivo è all'altro capo della città. Ma, IMHO, in qualsiasi sistema c'è una cache del disco, che smussa gli accessi frequenti al disco.
Ho deciso di ottimizzare un semplice grider (timer 30 sec, nuovo controllo della barra m1) su tutti i tick per due coppie. I miei 4 core i5 (PR=160-170) e 8 core i7 (PR=170-180) hanno ottimizzato per circa 90 (!) ore.
Poi si è scoperto che i passaggi i5 sono testati 2 volte più lenti (anche se, come ho già scritto diverse volte prima, era viceversa - i5 + winxp64 era più veloce di i7 + win7x64). All'inizio ho falciato la memoria - l'i7 ne ha di più.
Poi ho accidentalmente dato un'occhiata al task manager e ho visto che gli agenti hanno la priorità più bassa (Low). E ce l'ho su entrambe le macchine. E mentre sono riuscito ad aumentare la priorità a Normal su win7, winxp64bit non lo permette per qualche motivo. Durante mezza giornata con le nuove priorità su i7, il mio tempo di test è stato ridotto (apparentemente :)) di diverse ore.
Tali "ritardi" sembrano essere osservati nelle ultime due build (o forse sembra solo a me).
E Priority Low è troppo crudele - se l'attrezzatura almeno 12 ore al giorno può dare la massima priorità agli agenti.
In generale, pensavo che la priorità in qualche modo cambiasse automaticamente a seconda del carico di risorse, ma sembra che non cambi da sola :(