Frage an Entwickler - Nutzung aller Rechenkerne während der Optimierung - Seite 6

 
Aleksey Vyazmikin:

Dies ist nicht der richtige Ansatz - statt Aufgaben einzeln zu vergeben, sollten Sie die Kapazität neu zuweisen, wenn Sie freie Ressourcen haben, d. h. bereits vergebene Aufgaben stornieren und sie anderen zur Ausführung geben. Gleichzeitig muss die Leistung der einzelnen Agenten analysiert werden, um dem Kernel die richtige Anzahl neuer Aufträge zu geben.

das ist Unsinn, tut mir leid

> Sie müssen bestehende Aufträge abbrechen und sie anderen zur Ausführung übergeben.

Ich denke, dies ist nicht realistisch, und warum, wenn es einfacher ist, einen Stapel von Aufträgen zu erstellen, geben Sie einen Auftrag an den ersten verfügbaren Thread, warten, bis es ausgeführt wird, geben Sie den nächsten Auftrag an die erste verfügbare Thread (Ich weise darauf hin, das Wort Thread, nicht der Kern-Prozessor, die Beschränkung auf Threads sollte entfernt werden - es ist nicht das Recht der Programmierer, sondern die Rechte der Nutzer, daran erinnern, dass jetzt die Netzwerk-Threads sind nur die wirklichen Kern, nicht Threads, die künstlich senkt die Leistung um die Hälfte)

>Es ist notwendig, die Leistung der einzelnen Agenten zu analysieren, um dem Kernel die erforderliche Anzahl neuer Aufträge zur Ausführung zu geben.

und das ist überhaupt nicht nötig, denn die Kerne desselben Prozessors mit derselben Leistung zählen je nach Aufgabe mit unterschiedlicher Geschwindigkeit, es ist nicht nötig, etwas zu zählen, wenn man überhaupt nichts zählen kann

 
Boris Egorov:

Das ist Blödsinn, es tut mir leid.

> Stornieren Sie bereits erteilte Aufträge und geben Sie sie zur Ausführung an andere zurück.

Ich denke, das ist nicht realistisch, und wozu, es ist einfacher, einen Stapel von Aufträgen zu erstellen, einen Auftrag an den ersten verfügbaren Thread zu geben, zu warten, bis er ausgeführt wird, den nächsten Auftrag an den ersten verfügbaren Thread zu geben (man beachte das Wort Thread, nicht den Prozessorkern, die Beschränkung auf Threads sollte aufgehoben werden - es ist nicht das Recht der Programmierer, sondern der Benutzer, daran erinnern, dass jetzt die Netzwerk-Threads nur echte Kerne sind, nicht Threads, die künstlich senkt die Leistung um die Hälfte)

>Es ist notwendig, die Leistung der einzelnen Agenten zu analysieren, um dem Kernel die erforderliche Anzahl neuer Aufträge zur Ausführung zu geben.

und man braucht es nicht, weil die Kerne eines Prozessors mit der gleichen Leistung je nach Aufgaben mit unterschiedlicher Geschwindigkeit zählen, warum sollte man da etwas zählen, wenn man vielleicht gar nichts zählt?

Sie scheinen wenig Erfahrung mit dem Optimierer zu haben und verstehen nicht, dass Informationen über abgeschlossene Durchläufe erst spät eintreffen, dass der Agent nach Erledigung eines Auftrags einen Rahmen sendet, der sehr schwer sein kann, all dies führt zu Verzögerungen in der Kommunikation und verlangsamt die Optimierung. Daher sollten die Aufträge in Stapeln vergeben werden und ihr Fortschritt überwacht werden, indem neue Aufträge an diejenigen Mitarbeiter vergeben werden, die kurz vor der Fertigstellung der Arbeit stehen.

 
Aleksey Vyazmikin:

Sie scheinen wenig Erfahrung mit dem Optimierer zu haben und verstehen nicht, dass Informationen über abgeschlossene Durchläufe erst spät eintreffen, dass ein Agent nach Abschluss eines Auftrags einen Rahmen sendet, der sehr schwer sein kann, was alles zu Verzögerungen bei der Kommunikation führt und die Optimierung verlangsamt. Daher sollten Aufgaben in Stapeln vergeben werden und der Fortschritt der Aufgaben überwacht werden, indem neue Aufgaben an diejenigen Bearbeiter vergeben werden, die kurz vor der Fertigstellung der Arbeit stehen.

>Es scheint, als hätten Sie wenig Erfahrung mit Optimizer,

Machst du Witze? 6 Jahre ohne Unterbrechung

>Die Informationen über abgeschlossene Durchläufe kommen spät, d. h. nach Abschluss eines Auftrags sendet ein Agent einen Rahmen, der sehr umfangreich sein kann, was zu Kommunikationsverzögerungen führt und die Optimierung verlangsamt. Daher sollten die Aufträge in Stapeln vergeben werden und ihr Fortschritt überwacht werden, indem neue Aufträge an diejenigen Mitarbeiter vergeben werden, die kurz vor der Fertigstellung der Arbeit stehen.

>Dies führt zu Kommunikationsverzögerungen und verlangsamt die Optimierung.

und das macht nichts, die Netze sind jetzt schnell.

aber wenn die Kerne im Leerlauf sitzen, während ein armer Kern eine Reihe von Aufträgen abschließt, verlangsamt sich die Optimierung, weil alle anderen (Dutzende von Kernen) im Leerlauf bleiben und die Kerne kontinuierlich weiterzählen müssen, ohne anzuhalten

es sieht so aus, als hätten Sie nie für viele Parameter optimiert ... und argumentieren Sie nicht, dass Sie keine praktische Erfahrung haben

 
Boris Egorov:

>Es scheint, dass Sie wenig Erfahrung mit dem Optimierer haben,

Machst du Witze? 6 Jahre ununterbrochen

>Die Information über abgeschlossene Durchläufe kommt spät, so dass der Agent nach Erledigung eines Auftrags einen Rahmen sendet, der sehr umfangreich sein kann, was zu Kommunikationsverzögerungen führt und die Optimierung verlangsamt. Daher sollten die Aufträge in Stapeln vergeben werden und ihr Fortschritt überwacht werden, indem neue Aufträge an diejenigen Mitarbeiter vergeben werden, die kurz vor der Fertigstellung der Arbeit stehen.

>Dies führt zu Kommunikationsverzögerungen und verlangsamt die Optimierung.

und das macht nichts, die Netze sind jetzt schnell.

aber wenn die Kerne im Leerlauf sitzen, während ein armer Kern eine Reihe von Aufträgen abschließt, verlangsamt sich die Optimierung, weil alle anderen (Dutzende von Kernen) im Leerlauf bleiben und die Kerne kontinuierlich weiterzählen müssen, ohne anzuhalten

Sieht aus, als hätten Sie noch nie für viele Parameter optimiert ... und behaupten Sie nicht, dass Sie keine praktische Erfahrung haben ...

Sie können kein selbstgerechter Egoist sein, Netzwerke sind schnell, wie egozentrisch. Im Gegenteil, die Netze sind nicht schnell, wenn es um Dutzende oder Hunderte von Megabytes geht.

Primitive EA-Optimierung ist nicht alles, was sie zu sein scheint - erweitern Sie Ihren Horizont und nutzen Sie mathematische Berechnungen.

Ja, und bedenken Sie, dass es sich in erster Linie um ein gewinnorientiertes Projekt handelt und nicht um ein Projekt, das den Nutzern Spaß macht. Daher muss der Mechanismus die zufällige Verteilung der Aufgaben und die korrekte finanzielle Abrechnung ihrer Erfüllung berücksichtigen...

 
Aleksey Vyazmikin:

Sie können kein selbstgerechter Egoist sein, Netzwerke sind schnell, wie egozentrisch. Im Gegenteil, die Netze sind nicht schnell, wenn es um Dutzende oder Hunderte von Megabytes geht.

Primitive EA-Optimierung ist nicht alles, was sie zu sein scheint - erweitern Sie Ihren Horizont und nutzen Sie mathematische Berechnungen.

Oh, und denken Sie daran, dass dies in erster Linie ein Projekt für den Profit ist, nicht für die Zufriedenheit der Nutzer, und als solches muss der Mechanismus die zufällige Verteilung von Aufträgen und die korrekte finanzielle Abrechnung ihrer Leistung berücksichtigen...

Dutzende und Hunderte von Megabytes sind nichts, der Zeitaufwand ist minimal, und übrigens hat es nichts damit zu tun, Sie sollten denken, bevor Sie schreiben, dass in einem Stapel, dass einer nach dem anderen sowieso dieser Verkehr wird passieren müssen

>PrimitiveEA-Optimierung ist nicht alles, wofür sie verwendet wird - erweitern Sie Ihren Horizont und nutzen Sie mathematische Berechnungen.

Das wünsche ich Ihnen auch für Horizonte

Auch über Egoismus.

Ich bin nicht primitiv, und was ist der Zweck davon, also klären Sie uns Ignoranten auf.


Ich finde Ihre Initiative in Bezug auf den Zeitaufwand und die Optimierungsgeschwindigkeit völlig absurd.

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

Sie betrachten nur Ihren speziellen Optimierungsfall, während Alexey seinen betrachtet (sein EA ist mehrere hundert MB groß und braucht viel Zeit für die Übertragung).

Und MQ betrachtet die Gesamtnutzung des Optimierers und passt ihn an die meisten an, nicht an Sie und Alexey.

Die Aufgaben werden umverteilt, zumindest bei mir auf den lokalen Kernen. Wenn sie irgendwo nicht weitergegeben werden, geben Sie mir ein Beispiel, das ich reproduzieren kann, damit die Entwickler dies ebenfalls berücksichtigen können.

 
Andrey Khatimlianskii:

Sie betrachten nur Ihren speziellen Optimierungsfall, während Alexey seinen betrachtet (sein EA ist mehrere hundert MB groß und braucht viel Zeit für die Übertragung).

Und MQ betrachtet die Gesamtnutzung des Optimierers und passt ihn an die meisten an, nicht an Sie und Alexey.

Die Aufgaben werden umverteilt, zumindest bei mir auf den lokalen Kernen. Wenn sie irgendwo nicht weitergegeben werden, geben Sie mir ein Beispiel, das ich reproduzieren kann, damit die Entwickler es berücksichtigen können.

Ich stimme zu, dass mein Fall ein besonderer Fall ist.

Es gibt ein Problem mit der Aufgabenzuweisung, wenn neue entfernte Agenten angeschlossen werden - dies geschieht, wenn Ressourcen von anderen Aufgaben frei werden.

 
Andrey Khatimlianskii:

Sie betrachten nur Ihren speziellen Optimierungsfall, während Alexey seinen betrachtet (sein EA ist mehrere hundert MB groß und braucht viel Zeit für die Übertragung).

Und MQ betrachtet die Gesamtnutzung des Optimierers und passt ihn an die meisten an, nicht an Sie und Alexey.

Die Aufgaben werden umverteilt, zumindest bei mir auf den lokalen Kernen. Wenn sie irgendwo nicht weitergegeben werden, geben Sie mir ein Beispiel, das ich reproduzieren kann, damit die Entwickler es auch berücksichtigen können.

>vielleicht habe ich auch eine private, aber wirklich "wahrscheinlich"

>Geben Sie ein Beispiel, das Sie reproduzieren können, damit die Entwickler es auch berücksichtigen können.

nicht wirklich ... ich kann meine EA nicht anzeigen, ich bin nicht an Standard-EAs interessiert, ich kann Screenshots machen, um zu zeigen, dass sie nicht weitergegeben werden

Eine Umverteilung wäre eine Lösung für das Problem.

 

Ich möchte die Entwickler fragen, warum der Optimierer ein Bündel von Aufgaben nur auf bestimmte Kerne und nicht auf jeden einzelnen verteilt hat und damit in diesem Fall die Rechenzeit um das Dreifache erhöht hat?

.... Berechnungszeit verdreifacht wird der Optimierer jemals richtig funktionieren???? eine Menge freier Kerne im Leerlauf sind ...

 

zweiten Tag zählt es nichts, alle Kerne in der Anzahl von 12 lokalen und etwa 30 Netzwerkkerne sind im Leerlauf, ich berühre es nicht mit Absicht ... Ich weiß nicht, was es denkt, wahrscheinlich sucht es nach dem Sinn des Lebens oder nach einem Mittel gegen den Coronovirus :-)

Ich denke, wir sollten den Optimierer wegen seiner Inoperabilität und Langsamkeit aufgeben

und die jüngsten MT-Entscheidungen, nur die physischen Kerne zu begrenzen und hartnäckig und dummerweise eine Reihe von Aufträgen auf nur bestimmte Kerne zu verteilen, statt auf jeden Kern einen Auftrag, zeigen, dass die Entwickler keine Ahnung von Hochleistungsberechnungen haben