Kompilierung von MQL5-Programmen mit AVX / AVX2 + FMA3 / AVX512 + FMA3 Befehlssatz ab Build 3902

 

In der nächsten Beta-Version haben wir die Möglichkeit geschaffen, MQL5-Programme mit dem erweiterten Befehlssatz AVX / AVX2 + FMA3 / AVX512 + FMA3 zu kompilieren.

Sie ermöglichen es Ihnen, effizienteren und schnelleren Code zu erzeugen.

Sie können sowohl allgemeine Einstellungen für einzelne Programme als auch persönliche Einstellungen für Projekte konfigurieren:




Bitte beteiligen Sie sich an den Tests, indem Sie die Beta-Version vom MetaQuotes-Demo-Server herunterladen oder über den Menüpunkt "Hilfe" aktualisieren.

 

Kann ich einige Erklärungen/Kommentare von Entwicklern zum MT5-Betrieb auf Prozessoren mit "energieeffizienten" Kernen erhalten?

Die Leute sind in der Regel in Tester Arbeit interessiert, aber ich bin mehr daran interessiert, nur MT5 Arbeit mit einer Menge von laufenden EAs (und "Multi EAs" - viele unabhängige in einem).

 

Forum zum Thema Handel, automatische Handelssysteme und Testen von Handelsstrategien

Prozessoren für MT4/MT5

Stanislav Korotky, 2023.08.26 21:09

Das alles ist Kaffeesatzleserei. MQ sollte einen eigenen Benchmark anbieten (ein Programm wie PCMark, CineBench, Geekbench, etc.) - wie MetaTraderBench. Fragen zur CPU/GPU-Leistung, zur Grafik, zur Handhabung von Datenträgern usw. bei Anwendungsaufgaben würden dann entfallen. Es wäre einfacher, eine PC-Konfiguration für MT zu wählen.

Eine Bench gibt es leider nicht.

 
MetaQuotes:

ermöglichen es Ihnen, effizienteren und schnelleren Code zu erzeugen.

Welche Empfehlungen haben Sie für die Auswahl der besten Einstellungen für den lokalen Rechner und den entfernten Rechner (für Market, Agenten usw.)?
 
JRandomTrader #:

Können wir von den Entwicklern eine Klarstellung/Kommentar zum Betrieb von MT5 auf Prozessoren mit "stromsparenden" Kernen erhalten?

Die Leute sind in der Regel in Tester Arbeit interessiert, aber ich bin mehr daran interessiert, nur MT5 Arbeit mit einer Menge von laufenden EAs (und "Multi EAs" - viele unabhängige in einem).

Unsere Tests haben gezeigt:

  1. Der Umstieg von MSVC-Compiler auf Clang/LLVM bringt einen Zuwachs von bis zu 25% - ein solch monströser Zuwachs, den auch Google bei Chrome-Builds festgestellt hat

    . Deshalb wurde MetaTrader 5 lange Zeit auf Clang aufgebaut.

  2. Die Verwendung von AVX in der Plattform führt zu einer erheblichen Steigerung, ohne dass Prozentsätze angegeben werden

    Deshalb haben wir zwei Sätze von Client-Terminals: die veraltete NoAVX-Version auf MSVC für alte Prozessoren und AVX auf Clang für moderne Prozessoren.

    Installer bestimmt automatisch, welche Version zu verwenden ist. Livapdate auch.

  3. Unsere neuesten Untersuchungen zeigen, dass AVX2 + FMA3 eine Verbesserung gegenüber AVX darstellt.

    FMA3 hilft bei der Vektor-Mathematik, was für unsere Klasse von Problemen gut funktionieren sollte.

    Wir werden bald den dritten Satz von Programmen mit AVX2 veröffentlichen. Bei der nächsten Aktualisierung wird das Terminal selbst transparent die neue Version auswählen.


Die Arbeit mit P/E-Kerneln hängt vollständig vom Windows Scheduler ab, und selbst der Intel Thread Director (Thread Manager-Erweiterung) ist bei der Zuweisung von Aufgaben nach Wichtigkeit nicht völlig effizient. Es gibt verschiedene Grenzfälle, in denen der Dispatcher ineffektiv oder fragwürdig ist.

Der Versuch, die Affinitätsmaske im allgemeinen Fall zu verwenden, macht die Dinge nur noch schlimmer. Vor allem, wenn die Anwendung auf einer virtuellen Maschine läuft.

Sie können die Affinitätsmaske nur in besonderen Fällen der strikten Optimierung einer bestimmten Anwendung einsetzen.



Die allgemeinen Empfehlungen für Prozessoren sind einfach: mehr Kerne, höhere Frequenz, mehr L1/L2-Caches, genügend Hochgeschwindigkeits-RAM und NVME-Disks.

Jetzt haben die Verbraucherprozessoren selbstbewusst die Schwelle von 5 Gigahertz genommen. Zum Beispiel läuft der Ryzen 7950X für 600 Dollar mit 32 Threads bei Volllast problemlos mit 4,5 - 5,0 Gigahertz auf jedem Kern und liefert erstaunliche Ergebnisse.

 

Renat Fatkhullin #:

Das Installationsprogramm erkennt automatisch, welche Version zu installieren ist. Livapdate auch.

Ich aktualisiere alle Terminals durch Kopieren von drei exe-Dateien (Terminal, Tester, Editor). Die Leute behalten frühere Versionen in der gleichen Form - diese drei Dateien.

Jetzt behaupten, dass sie in der gleichen Build unterschiedlich sein können. Und dementsprechend auch unterschiedliche Leistung haben.

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wie man mit MT5 anfängt, Zusammenfassung!

Fernando Carreiro, 01.09.2023 12:43 Uhr.

Wie wird sich dies in Zukunft auf Market-Produkte auswirken?

Ich gehe davon aus, dass der Validierungsprozess erfordern wird, dass das Produkt ohne sie kompiliert wird, um den kleinsten gemeinsamen Nenner zu gewährleisten.

 
fxsaber #:

Ich aktualisiere alle Terminals, indem ich drei exe-Dateien kopiere (Terminal, Tester, Editor). Die Leute behalten die vorherigen Versionen in der gleichen Form - diese drei Dateien.

Jetzt behaupten, dass sie in der gleichen Build unterschiedlich sein können. Und dementsprechend haben unterschiedliche Leistung.

Genau - sehen Sie das Vorhandensein von AVX in der Computerbeschreibung Banner beim Starten des Terminals.


Wir empfehlen, Updates nicht zu blockieren, denn bald werden Terminals mit einer Warnung beim Starten aufhören, wenn sie eine Blockierung feststellen.

Verschiedene Farmen werden ständig gebannt, weil sie:

  1. Updates blockieren und bei ständigen Neustarts Hunderte von Gigabyte an Updates ausgeben, was unsere Infrastruktur belastet
  2. alle Caches beim Start des Terminals löschen und die Server der Broker belasten
  3. die Terminals in allen Arten von Docker/Container/etd mit einer bloßen Umgebung zehntausende Male pro Tag neu starten.

Anstatt sich zu beschweren, sollten sie ihren Kopf einschalten und an diejenigen denken, die sie bedienen. "Ich habe eine 5-GB-Diskette und spare Geld, und der Datenverkehr ist für mich kostenlos" macht nicht viel aus, wenn dies zur Verschwendung von Ressourcen eines Technologieanbieters oder Brokers führt.

 
Fernando Carreiro #:

Nur Programme, die im Modus "x64 Regular" kompiliert wurden, werden auf dem Markt akzeptiert.

Höchstwahrscheinlich werden wir in Zukunft die Möglichkeiten auf dem Markt erweitern.


Die Veröffentlichung von MT5 ist für Freitag nächster Woche geplant. Deshalb bitten wir Sie, neue Modi aktiver zu testen.

 
Renat Fatkhullin #:

Wir empfehlen, Updates nicht zu blockieren, da die Terminals nach der Erkennung der Blockierung bald mit einer Warnung beim Starten aufhören.

Handeln Sie mit Builds mit Fehlern? Ich denke, Sie sind weit von der Praxis des Algo-Trading entfernt.
 
fxsaber #:
Handeln Sie mit Builds mit Fehlern? Ich denke, Sie sind weit von der Praxis der Algo-Handel.

Aktualisieren Sie also nicht auf Betas in proda.

Releases kommen alle 3 Monate heraus. Und die bösen Farmer, die nicht updaten, sitzen ein Jahr oder länger auf veralteten Versionen - ihnen geht es nicht um den Handel. Sie haben einen rein utilitaristischen Ansatz "Ich habe meine Aufgabe erledigt, der Rest ist mir egal".

Ich schreibe speziell über böse Fälle, da ihre Besitzer sicherlich dieses Forum lesen - meine Erklärungen sind für sie.