Discussione sull’articolo "Velocizza i Calcoli con il Cloud Network MQL5" - pagina 2

 

I miei risultati sulla seguente configurazione:

  • Media mobile
  • EURUSD, H1, tutti i tick dal 2010.01.01 al 2011.01.01 su MetaQuotes-Demo
  • Saldo: 100 000 USD
  • Impostazioni


Modalità Genetica in MQL5 Cloud Network: 2.624 passaggi su 8.704 previsti sono stati effettivamente calcolati in 15 minuti e 52 secondi. La modalità Genetica ha interrotto il calcolo prima, poiché ha raggiunto il limite massimo dei risultati a causa di un campo di ricerca molto rado.

2012.02.05 00:52:50     Statistics      locals 0 tasks (0%), remote 0 tasks (0%), cloud 2624 tasks (100%)
2012.02.05 00:52:50     Statistics      optimization passed in 15 minutes 52 seconds
2012.02.05 00:52:50     Tester  genetic optimization finished on pass 8704 (of 1276290)
2012.02.05 00:52:50     Tester  result cache was used 6082 times
2012.02.05 00:52:50     Tester  genetics is over

Dopo aver cancellato tutte le cache sul disco e riavviato il terminale, ho eseguito Genetics su core locali i7-2600, 3,4 Ghz, Windows 7 x64, RAM 16Gb, 8 core:

Tempo medio di passaggio locale da 19 a 25 secondi (computer non caricato con nulla):

2012.02.05 01:06:34    Core 2    genetic pass (184, 344771) returned result 97426.26 in 20 sec
2012.02.05 01:06:31    Core 7    genetic pass (191, 419403, 1) started
2012.02.05 01:06:31    Core 7    genetic pass (181, 347989) returned result 94247.90 in 25 sec
2012.02.05 01:06:31    Core 3    genetic pass (190, 1048934, 1) started
2012.02.05 01:06:31    Core 3    genetic pass (183, 255717) returned result 92939.02 in 20 sec
2012.02.05 01:06:28    Core 4    genetic pass (189, 535782, 1) started
2012.02.05 01:06:28    Core 4    genetic pass (182, 131277) returned result 98194.52 in 21 sec


Rendendomi conto che avrei aspettato a lungo a questo ritmo, ho fermato il calcolo a 211 passaggi:

2012.02.05 01:07:59    Statistics    locals 211 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2012.02.05 01:07:59    Statistics    optimization passed in 11 minutes 16 seconds
2012.02.05 01:07:59    Tester    genetic optimization finished on pass 211 (of 1276290)
2012.02.05 01:07:59    Tester    result cache was used 0 times


Si può notare che si tratta di 211 passaggi puri, con zero accessi alla vecchia cache.

Dato che i diversi cicli di genetica raramente coincidono con il numero di passaggi e che ho eseguito i test in modo abbastanza pulito, è possibile calcolare il tempo in modo matematico:

  • consideriamo che gli agenti locali impiegheranno 2.624 passaggi così come la genetica nel cloude
  • 2.624 nella claude hanno richiesto 15 minuti e 52 secondi (952 secondi).
  • 211 passaggi locali hanno richiesto 11 minuti e 16 secondi (676 secondi).
  • Ciò significa che 2.624 passaggi avrebbero richiesto = (2624 / 211) * 676 = 8.406 secondi (140 minuti e 6 secondi).

Il totale risulta essere 8.406 / 952 = 8,8 volte la genetica è più veloce nel cloud. Ciò corrisponde alla potenza di 64 core locali.


Qual è la spiegazione:

  • In genetica, il fattore di scala massimo va da 64 a 256 core.

    Questo dipende direttamente dall'idea stessa di incrociare generazioni diverse e dalla dimensione adattiva della popolazione. In genetica, cioè, non è possibile utilizzare l'intera rete claudicante.

  • Nella genetica, gli agenti nel cloud devono attendere il completamento del calcolo di ogni generazione.

    Di conseguenza, su 64-256 agenti, molti passano il tempo in attesa di un nuovo chunk piuttosto che lavorare continuamente. Spesso ogni agente ha il tempo di completare un solo task su una popolazione di 64-256 task. E i core locali, a causa del loro minor numero e della pari potenza, non sono quasi mai inattivi: ognuno di essi esegue una parte proporzionale del batch di task.

  • Nel confronto con claud il quadro è rovinato dalla presenza di un tester locale multicore.

    Da un lato qualsiasi risultato di claud deve essere praticamente diviso per 4-8, dall'altro utilizziamo le capacità dei core locali nel modo più efficiente possibile.

  • Abbiamo sconfitto la latenza di rete: i risultati dei passaggi di 20 secondi e di mezzo secondo sono molto vicini.

    La pacchettizzazione e l'efficienza del meccanismo del protocollo di rete la fanno da padrone.

Naturalmente, i risultati dell'enumerazione completa non hanno problemi di latenza a causa delle piccole popolazioni di pacchetti e la velocità può essere scalata linearmente di centinaia e migliaia di volte.

 

Ho trovato un errore: stavo testando sul server RoboForex di qualcun altro e ho dedicato abbastanza tempo al pompaggio iniziale della cronologia dei grafici.

Sulla nuova cronologia, il claude si scalda solo per qualche minuto, sincronizzando la cronologia per agenti. Ora ripeterò i test.

 

Ho condotto dei test su MetaQuotes-Demo: c'è più storia M1 sul nostro server, quasi tutti i claudes ce l'hanno già e il tempo di riscaldamento della rete è più breve.

L'aumento del volume delle barre M1 ha portato a un aumento del tempo per un passaggio a 30 secondi.

Ecco i risultati sulla rete cloud MQL5: 3.704 operazioni pulite in 25 minuti e 8 secondi (1.508 secondi).

2012.02.05 02:44:37     Statistics      locals 0 tasks (0%), remote 0 tasks (0%), cloud 3704 tasks (100%)
2012.02.05 02:44:37     Statistics      optimization passed in 25 minutes 08 seconds
2012.02.05 02:44:37     Tester  genetic optimization finished on pass 8960 (of 1276290)
2012.02.05 02:44:37     Tester  result cache was used 5256 times
2012.02.05 02:44:37     Tester  genetics is over

Ecco i risultati dei passaggi locali: 181 task in 11 minuti e 57 secondi (717 secondi) - mi sono fermato per evitare di aspettare 4 ore (il tempo totale può essere facilmente calcolato).

2012.02.05 02:58:21     Statistics      locals 181 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2012.02.05 02:58:21     Statistics      optimization passed in 11 minutes 57 seconds
2012.02.05 02:58:21     Tester  genetic optimization finished on pass 181 (of 1276290)
2012.02.05 02:58:21     Tester  result cache was used 0 times

Se calcoliamo quanto ci vorrà sui kernel locali per calcolare 3.704 task, otteniamo: ( 3.704 / 181 ) * 717 = 14.672 secondi (244 minuti e 32 secondi = 4 ore, 4 minuti e 32 secondi).

Totale risulta che 14.672 / 1.508 = 9,7 volte la genetica è più veloce nel cloud.

Anche se il risultato è vicino al precedente 8,8, raggiunge comunque le 10 volte, il che dà il diritto di dichiarare "un ordine di grandezza più veloce".

Le spiegazioni fornite nel commento https://www.mql5.com/ru/forum/6071/page2#comment_148584 sono ancora valide.

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network
 
notused:

Durante 3 min. 28 secondi di utilizzo della rete, mi sono stati addebitati 2 o 3 centesimi (3 centesimi nel terminale, 2 centesimi sul sito web e 3 centesimi congelati). Facciamo 3, oppure, per semplicità, l'utilizzo della rete per la genetica costa 1 centesimo per un minuto. In totale, un'ora costa 60 centesimi, 24 ore = 14,4 dollari. Mi sembra molto costoso. I prezzi devono essere scontati almeno tre volte per renderli attraenti per il consumatore (molte persone testano gli EA, ma non tutti possono/vogliono sborsare circa 15 dollari al giorno per Cloud, e se fossero 5 dollari o meno - ci sarebbero più persone disposte).

...

Penso che il mio pensiero sia chiaro

@ Ehi vicino, non mi piace che tu vada da mia moglie mentre sono al lavoro.

@Non capite voi Johnsons, a voi non piace, a lei piace @ :))

Gli acquirenti vogliono sempre un prezzo più basso, i venditori un prezzo più alto, solo la quotazione risolverà la controversia.

Gli acquirenti dovrebbero essere in grado di quotare un prezzo desiderato per un compito, i venditori un prezzo desiderato per le loro risorse, quindi un mercato sarà organizzato.

Ma questo è tutto nel futuro, quando il servizio diventerà di uso comune e la sua convenienza non sarà più un problema. Ora MQ deve dimostrare attivamente che il Cloud è cool.

 

La mia esperienza: ho fatto e sto facendo molti test in Claude, ma per tutto il tempo trascorso dall'inizio del progetto ho speso solo 44 dollari.

È davvero poco, considerando che a volte sono stati utilizzati 2-3 mila agenti.

 
Renat:


Risulta che 14.672 / 1.508 = 9,7 volte la genetica è più veloce nel cloud.

Sebbene il risultato sia vicino al precedente 8,8 volte, raggiunge comunque le 10 volte, il che ci dà il diritto di dichiarare che è "un ordine di grandezza più veloce".

In totale, la genetica è accelerata da 7 a 10 volte. Cioè, di un ordine di grandezza. E poiché nei test locali non sono stati utilizzati kernel deboli, per alcuni utenti l'accelerazione raggiungerà probabilmente le 40 volte.

Ho deciso di utilizzare il cloud se l'ottimizzazione con le mie forze richiederà più di un giorno.

+ richiesta - si prega di espandere i meccanismi per identificare gli agenti lenti e ridistribuire i compiti tra loro agli agenti locali e remoti. Infatti risulta che lo stesso test con gli stessi core del remoto + 10 più deboli + 2 agenti locali deboli porta al risultato:

Praticamente 2,5 volte più lento. E non sempre c'è la volontà e la possibilità di misurare con quali agenti ottenere le massime prestazioni.

 

C'è qualche riferimento al fatto che è necessario pagare per questo servizio?

La pagina web di MQL Cloud Network(https://cloud.mql5.com/) pubblicizza la possibilità di guadagnare $$ extra lasciando che altri utilizzino la vostra CPU per l'ottimizzazione. Perché non viene menzionato il fatto che se si utilizza il Cloud Network per l'ottimizzazione si deve pagare? Se non si paga, chi paga le persone che mettono la loro CPU sulla rete senza eseguire alcuna ottimizzazione?

Distributed Computing in the MQL5 Cloud Network
  • cloud.mql5.com
Connect to the MQL5 Cloud Network (Cloud Computing) and earn extra income around the clock — there is much work for you computer!
 

Il cloud è sicuro? O il mio EA verrà rubato se uso il cloud?

Grazie

 
MyDream:

Il cloud è sicuro? O il mio EA verrà rubato se uso il cloud?

Grazie

Direi che se MQ volesse, potrebbe già essere imploso, che se i risultati del backtest del tuo esperto sono abbastanza buoni, ottengono i rapporti di esperto+backtest direttamente dal tuo computer locale. Ma non credo che stiano facendo nulla di tutto ciò.

Se pensate davvero che il vostro esperto possa essere così bravo, allora fate lo split engeneering (non ricordo bene): In pratica si testano le cose separatamente e i risultati reali si vedono solo quando si combinano tutti i risultati che si sono ottenuti prima (split).

 
MyDream:

Il cloud è sicuro? O il mio EA verrà rubato se uso il cloud?

grazie

Dovresti leggere l'articolo "I fondamenti del test in MetaTrader 5":

Lo scambio di dati tra il terminale e l'agente

...

Gli agenti non registrano mai sul disco rigido i file EX5 ottenuti dal terminale (EA, indicatori, librerie, ecc.) per motivi di sicurezza, in modo che un computer con un agente in esecuzione non possa utilizzare i dati inviati. Tutti gli altri file, comprese le DLL, vengono registrati nella sandbox. Negli agenti remoti non è possibile testare gli EA utilizzando le DLL.

I risultati dei test vengono sommati dal terminale in una speciale cache dei risultati (la cache dei risultati), per un accesso rapido quando sono necessari. Per ogni serie di parametri, il terminale cerca nella cache dei risultati i risultati già disponibili delle esecuzioni precedenti, per evitare di ripetere le esecuzioni. Se non viene trovato un risultato con tale insieme di parametri, all'agente viene affidato il compito di condurre il test.

Tutto il traffico tra il terminale e l'agente è criptato.