MetaTrader 5 Strategie-Tester und MQL5 Cloud Netzwerk - Seite 30

 
Renat:

Ich befürchte, dass Sie bei 24 Agenten auf 8 Kernen (im Wesentlichen 4 + Hypertrading) die gesamte CPU-Leistung für die Bereitstellung der Infrastruktur verwenden werden.

Bei einer zu großen Anzahl von Agenten sinkt ihr PR-Leistungsindex drastisch, was zu einem Vielfachen der Gebühr führt.

Ich habe alles mit 8 EAs eingerichtet. Vielen Dank für die Informationen!
 
papaklass:

Ich habe die Cloud schon eine Weile nicht mehr genutzt. Ich habe beschlossen, sie bei der Auswahl der Parameter zu verwenden. Die Arbeit der Wolke war eine angenehme Überraschung.

Wenn Sie das verteilte Netzwerksystem lange Zeit schleifen, ist das Ergebnis gut.
 
Renat:
Wenn man ein verteiltes Netzwerksystem lange Zeit schleift, erhält man ein gutes Ergebnis.
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
Aufgaben wurden an lokale + entfernte Agenten + die Cloud vergeben. Einen Pass an der Wolke aufhängen. Nach fast eineinhalb Stunden Wartezeit wurde die Verbindung zur Cloud getrennt - die Aufgaben wurden an die lokalen Agenten übertragen. Die Geschwindigkeit des Laufs liegt zwischen 1-3 Minuten:
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

Alles in allem sind es auf keinen Fall anderthalb Stunden.

P. S. Hat die Wolke im Handumdrehen gedreht. Wegen des Ausfalls des Internets fielen die Fernagenten aus. Dann wollten sie sich nicht verbinden (autorisierter Zustand; mindestens zwei genetische Generationen haben sich nicht verbunden) - offenbar hat der Tester beschlossen, dass es in der Cloud genug zu tun gibt und die freien Agenten ruhen lassen. Trennen Sie die Wolke. Die Fernagenten sind verbunden. Ich habe die Wolke wieder eingeschaltet. Am Ende wurde er aufgehalten.

 

Das Netzwerk muss ein wenig angepasst werden, um solche Situationen zu vermeiden (z.B. um sich die maximale Durchlaufzeit zu merken und - wenn das Warten auf den Durchlauf 2 mal länger dauert als die maximale Durchlaufzeit - den gleichen Prozess auf dem besten Kern von lokal (oder fern) zu starten).

+ TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE) muss verfeinert werden

+ Die Geschwindigkeit der Genetik hängt von der Geschwindigkeit des schwächsten Kerns ab - wenn meine Kerne PR - 160-180 haben und die Aufgaben in der Cloud auf die Kerne bis zu 100 verteilt werden. Infolgedessen müssen meine Kerne bei jeder Generation für eine beträchtliche Zeit im Leerlauf arbeiten und auf Antworten aus der Cloud warten, um eine neue Population zu erzeugen. Ich denke, ich sollte die 100PR-Grenze fallen lassen und denjenigen Agenten den Vorrang geben, deren PR größer ist als die PR des schwächsten lokalen Kerns (+oder des entfernten Kerns, falls angeschlossen). Ist dies nicht der Fall, muss ein Lastausgleich vorgenommen werden. Zum Beispiel, wenn wir davon ausgehen, dass alle Pässe auf dem gleichen Kern mit der gleichen Geschwindigkeit laufen (im Leben, natürlich nicht so, aber viele Experten mit einigen Annahmen, kann stabil in der Testzeit genannt werden, unabhängig von Parametern). Wenn die PR des lokalen Kerns 150 und die PR des Kerns in der Cloud 100 beträgt, dann sollte der lokale Agent 1,5 Mal mehr Aufgaben erhalten als der Agent in der Cloud. Wenn die PR geringer ist, sollten Sie den Bearbeitern in der Cloud nicht jeweils eine Aufgabe zuweisen, sondern eine Aufgabe an eine größere Anzahl von Bearbeitern vergeben. In diesem Fall wäre die Ausfallzeit minimal. Generell würde ich mir in dieser Frage Fortschritte wünschen

 

In den letzten 12 Stunden hat sich das Netz drei weitere Male aufgehängt :(

(Und es gibt Agenten mit PR < 100 in Genetik-Zeitschriften)

 
Übrigens, hat schon jemand versucht, Agenten auf einer SSD zu teilen? In Anbetracht der Art und Weise, wie meine Festplatte bei 8 Agenten zu knirschen beginnt, auch ohne Aufgaben, habe ich den Verdacht, dass die SSD-Ressourcen schnell zur Neige gehen. Und beim Testen eines relativ leichten EA, der Rechengeschwindigkeit, beginnt die Geschwindigkeit der Festplatte ins Stocken zu geraten. Wie viele Terabyte in den Cache gepumpt werden, ist eine gute Frage)
 
sion:
Übrigens, hat schon mal jemand versucht, Agenten auf einer SSD freizugeben? Wenn man bedenkt, dass mein Laufwerk schon bei 8 Agenten anfängt zu knirschen, auch ohne Aufgaben, habe ich den Verdacht, dass die SSD-Ressourcen schnell zur Neige gehen. Und beim Testen eines relativ leichten EA, der Rechengeschwindigkeit, fängt die Geschwindigkeit der Festplatte an, ins Stocken zu geraten. Wie viele Terabyte in den Cache gepumpt werden, ist eine gute Frage)

Es gibt einen solchen Buchstaben im Alphabet (ich meine ssd), aber ich habe keine konkreten Tests durchgeführt, da der Server mit einem solchen Gerät am anderen Ende der Stadt steht. Aber IMHO gibt es in jedem System einen Festplatten-Cache, der häufige Zugriffe auf die Festplatte glättet.

 
Ich frage mich, wer so viele Ressourcen für diese Cloud bereitgestellt hat, Systemverschleiß mit Stromverbrauch, deutlich mehr als 2-3 Cent pro Tag. Mehrere Male habe ich versucht , Ressourcen zur Verfügung zu stellen, aber es ist eine verlorene Sache, wenn weniger als 10Gb auf der Festplatte (bei 9GB RAM), mit einigen Last Genetik, das System nur dumm hängt, auch wenn nicht essen alle den freien Speicherplatz (RAM, etc., bis zu Swap), ein fey das Laufwerk versucht, den vollen Cache zu pumpen, was zu wilden Bremsen führt.
 
Wenn ich eine Frage nicht schreibe, verschwindet sie sofort.
Dateien:
Picture_61.png  585 kb
 

Ich beschloss, ein einfaches Raster (Timer 30 Sek., neue m1-Balkensteuerung) auf alle Ticks für zwei Paare zu optimieren. Meine 4 Kerne i5 (PR=160-170) und 8 Kerne i7 (PR=170-180) optimierten für etwa 90 (!) Stunden.

Dann stellte sich heraus, dass i5-Passagen 2 mal langsamer getestet werden (obwohl, wie ich schon mehrmals geschrieben habe, es umgekehrt war - i5 + winxp64 war schneller als i7 + win7x64). Zuerst habe ich den Arbeitsspeicher heruntergeschraubt - der i7 hat mehr davon.

Dann habe ich zufällig einen Blick in den Task-Manager geworfen und gesehen, dass die Agenten die niedrigste Priorität (Niedrig) haben. Und ich habe es auf beiden Rechnern. Und während es mir unter Win7 gelungen ist, die Priorität auf Normal zu erhöhen, ist dies unter Winxp64bit aus irgendeinem Grund nicht möglich. Während eines halben Tages mit neuen Prioritäten auf dem i7 hat sich meine Testzeit (scheinbar :)) um mehrere Stunden verkürzt.

Solche "Lags" scheinen in den letzten beiden Builds zu beobachten zu sein (oder vielleicht kommt es nur mir so vor).

Und Priority Low ist zu grausam - wenn Geräte mindestens 12 Stunden pro Tag können maximale Priorität für Agenten geben.

Im Allgemeinen dachte ich, dass sich die Priorität automatisch in Abhängigkeit von der Ressourcenauslastung ändert, aber es scheint, dass sie sich nicht von selbst ändert :(