Testeur de stratégie MetaTrader 5 et MQL5 Cloud Network - page 30

 
Renat:

J'ai peur qu'avec 24 agents sur 8 cœurs (4 essentiellement + hypertrading), vous dépenserez toute la performance du CPU pour fournir l'infrastructure.

L'exposition d'un nombre excessif d'agents entraîne une chute brutale de leur indice de performance RP, ce qui se traduit par un multiple des honoraires.

J'ai tout mis en place avec 8 EAs. Merci pour l'information !
 
papaklass:

Je n'ai pas utilisé le cloud depuis un moment. J'ai décidé de l'utiliser dans la sélection des paramètres. Le travail du nuage a été agréablement surprenant.

Si vous moudre le système de réseau distribué pendant une longue période, le résultat est bon.
 
Renat:
Si vous broyez un système de réseau distribué pendant une longue période, vous obtenez un bon résultat.
PF      0       MQL5 Cloud Europe 2     00:24:16        genetic pass (264, 0, 188) started
JL      0       MQL5 Cloud Europe 2     00:29:07        connection closed
ID      0       MQL5 Cloud Europe 2     00: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 2     00:29:07        connected
JP      0       MQL5 Cloud Europe 2     00: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 2     01: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 1  01:57:24        genetic pass (285, 0, 1) started
PS      0       Core 2  01:57:24        genetic pass (285, 0, 1) started
Les tâches ont été envoyées aux agents locaux, distants et dans le nuage. Accrocher une passe sur le nuage. Après presque une heure et demie d'attente, nous avons déconnecté le nuage - les tâches ont été transférées aux agents locaux. La vitesse de la course est de 1 à 3 minutes :
DP      0       Core 1  02:14:59        genetic pass (23, 256) returned result 4.45 in 45 sec
LH      0       Core 1  02:14:59        genetic pass (273, 0, 1) started
CP      0       Core 5  02:14:59        genetic pass (23, 260) returned result 2.64 in 46 sec
OH      0       Core 5  02:14:59        genetic pass (274, 0, 1) started
PS      0       Core 6  02:15:01        genetic pass (23, 261) returned result 3.37 in 48 sec
HH      0       Core 6  02:15:01        genetic pass (278, 0, 1) started
KQ      0       Core 8  02:15:03        genetic pass (23, 264) returned result -0.01 in 50 sec
CG      0       Core 8  02:15:03        genetic pass (279, 0, 1) started
PP      0       Core 2  02:15:06        genetic pass (23, 257) returned result -0.01 in 52 sec
DG      0       Core 2  02:15:06        genetic pass (280, 0, 1) started
NP      0       Core 3  02:15:07        genetic pass (23, 258) returned result -0.01 in 53 sec

Dans l'ensemble, il n'y a pas moyen que ça dure une heure et demie.

P. S. J'ai transformé le nuage à la volée. En raison de la perte d'internet, les agents à distance ont abandonné. Ensuite, ils n'ont pas voulu se connecter (état autorisé ; au moins deux générations génétiques ne se sont pas connectées) - apparemment, le testeur a décidé qu'il y avait assez à faire sur le nuage, et a laissé les agents libres se reposer. Déconnecter le nuage. Les agents distants sont connectés. J'ai rallumé les nuages. J'ai fini par être raccroché.

 

Le réseau doit être un peu finalisé pour éviter de telles situations (par exemple, pour se souvenir du temps de passage maximal et si l'attente du passage dure 2 fois plus longtemps que le temps de passage maximal - pour démarrer le même processus sur le meilleur noyau local (ou distant)).

+ TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE) doit être affiné.

+ la vitesse de la génétique dépend de la vitesse du cœur le plus faible - si mes cœurs ont un PR - 160-180, et les tâches dans le nuage sont distribuées aux cœurs jusqu'à 100. Par conséquent, à chaque génération, mes cœurs doivent rester inactifs pendant un temps considérable et attendre les réponses du nuage pour générer une nouvelle population. Je pense que je devrais abandonner la limite de 100 RP et donner la priorité aux agents dont le RP est supérieur au RP du noyau local le plus faible (+ou du noyau distant, s'il est connecté). Sinon, l'équilibrage de la charge doit être effectué d'une manière ou d'une autre. Par exemple, si nous supposons que toutes les passes s'exécutent sur le même noyau à la même vitesse (dans la vie, bien sûr, ce n'est pas le cas, mais de nombreux experts avec certaines hypothèses, peut être appelé stable dans le temps de test, indépendamment des paramètres). Si le PR du noyau local est de 150 et le PR du noyau dans le nuage est de 100, alors l'agent local doit se voir attribuer 1,5 fois plus de tâches que l'agent dans le nuage. Par ailleurs, si le RP est plus faible, ne donnez pas aux agents du nuage une tâche à la fois, mais donnez une tâche à un plus grand nombre d'agents. Dans ce cas, le temps d'arrêt serait minime. De manière générale, j'aimerais voir des progrès sur cette question

 

Au cours des 12 dernières heures, le réseau a raccroché trois fois de plus :(

(Et il y a des agents avec un PR < 100 dans les revues de génétique)

 
Au fait, quelqu'un a-t-il essayé de partager des agents sur un ssd ? Vu la façon dont mon disque dur commence à craquer sur 8 agents, même sans tâches, j'ai le sentiment que la ressource ssd s'épuise rapidement. Et lorsqu'on teste un EA assez léger, la vitesse de calcul, la vitesse du disque dur commence à s'enrayer. Le nombre de téraoctets injectés dans le cache est une bonne question).
 
sion:
Au fait, quelqu'un a-t-il essayé de partager des agents sur un ssd ? Vu que mon disque commence à craquer sur 8 agents, même sans tâches, je soupçonne que la ressource ssd s'épuise rapidement. Et lorsqu'on teste un EA assez léger, la vitesse de calcul, la vitesse du disque dur commence à s'enrayer. Le nombre de téraoctets injectés dans le cache est une bonne question).

Il y a une telle lettre dans l'alphabet (je veux dire ssd), mais je n'ai pas fait de tests spécifiques : comme le serveur avec un tel dispositif est à l'autre bout de la ville. Mais, IMHO, dans tout système il y a un cache disque, qui lisse les accès fréquents au disque.

 
Je me demande qui a donné tant de ressources pour ce nuage, l'usure du système avec la consommation d'électricité, clairement plus de 2-3 cents par jour. Plusieurs fois, j'ai essayé de fournir des ressources, mais c'est une cause perdue si moins de 10 Go sur le disque (à 9 Go de RAM), avec une certaine génétique de charge, le système se bloque tout simplement stupide, même si pas manger tout l'espace libre (RAM, etc, jusqu'à swap), un fey le lecteur tente de pomper le plein cache, ce qui conduit à des freins sauvages.
 
Je n'écris pas une question et elle disparaît immédiatement.
Dossiers :
Picture_61.png  585 kb
 

J'ai décidé d'optimiser un simple grider (timer 30 sec, nouveau contrôle m1 bar) sur tous les ticks pour deux paires. Mes i5 à 4 cœurs (PR=160-170) et i7 à 8 cœurs (PR=170-180) ont été optimisés pendant environ 90 ( !) heures.

Puis il s'est avéré que les passages i5 sont testés 2 fois plus lents (bien que, comme je l'ai déjà écrit plusieurs fois auparavant, c'était l'inverse - i5 + winxp64 était plus rapide que i7 + win7x64). Au début, j'ai fauché la mémoire - l'i7 en a plus.

Puis j'ai accidentellement jeté un coup d'œil au gestionnaire de tâches et j'ai vu que les agents ont la priorité la plus basse (Low). Et je l'ai sur les deux machines. Et si j'ai réussi à faire passer la priorité à Normal sous win7, winxp64bit ne le permet pas pour une raison quelconque. Pendant une demi-journée avec de nouvelles priorités sur i7, mon temps de test a été réduit (apparemment :)) de plusieurs heures.

De tels "décalages" semblent être observés dans les deux dernières versions (ou peut-être que cela ne concerne que moi).

Et la priorité basse est trop cruelle - si l'équipement est utilisé au moins 12 heures par jour, les agents peuvent bénéficier d'une priorité maximale.

En général, je pensais que la priorité changeait automatiquement en fonction de la charge des ressources, mais il semble qu'elle ne change pas d'elle-même :(

Raison: