OpenCl und die dazugehörigen Werkzeuge. Bewertungen und Eindrücke. - Seite 3

 
Dies ist die Nutzung des Arbeitsspeichers zur Speicherung oder zum Austausch von Daten, z. B. zwischen zwei Endgeräten oder sogar mehreren Anwendungen.

Er verwendet einfach reservierte Bereiche des Arbeitsspeichers anstelle von Dateien. Das Prinzip ist dasselbe, aber es funktioniert viel schneller.

 

Mapping ist Mapping, es ist nur so, dass ein Dateiobjekt direkt im RAM erstellt werden kann.

Ich verstehe nur nicht, warum? Alexej hat deutlich geschrieben, dass alles in der Init ist.

 

Ich wiederhole, ich habe dies nicht für Alexeys Problem vorgeschlagen, sondern um Berechnungen im Allgemeinen zu beschleunigen)

Das heißt, es wird eine Art Zwischenspeicher eingerichtet, um die Daten in späteren Iterationen zu verwenden.

 
OnGoing:
Dies ist die Nutzung des Arbeitsspeichers zur Speicherung oder zum Austausch von Daten, z. B. zwischen zwei Endgeräten oder sogar mehreren Anwendungen.

Er verwendet einfach reservierte Bereiche des Arbeitsspeichers anstelle von Dateien. Das Prinzip ist dasselbe, aber es funktioniert viel schneller.


Vergessen Sie diese abgespeckte DLL davon.

Sie haben eine voll funktionsfähige Version für die Arbeit mit Mapping.

 
Mathemat:

Und wie schlagen Sie vor, dies zu tun - ohne auf Kodierung außerhalb von MQL4 zurückzugreifen?
Ich habe es bereits vorgeschlagen - über Dateien. Aber es ist lang und lästig.

Alternativ können Sie auch eine besondere Gebühr erheben.
Der Parametersatz im Speicher wird mit einem bestimmten Ergebnis verknüpft.
Sie können die Zuordnung sogar noch komplizierter gestalten, etwa so:
DateTime - {Berechnungsparameter} - Ergebnis[e].
Dadurch werden die Berechnungen für jeden Takt bereits im Cache gespeichert.

Scheiß auf Mapping und Dateien. Was wir brauchen, ist ein assoziativer Speicher.
 
sergeev:

Vergessen Sie diese abgespeckte DLL davon.

Sie haben eine voll funktionsfähige Version für die Arbeit mit Mapping.

Wow, danke. Ich freue mich auf Beispiele für die Verwendung des Programms)
 
jartmailru: Alternativ können Sie auch eine spezielle Füllung anfertigen.

Er fragte, wie er ohne eine Dll.

OK, schon gut. Mit SSE*, Open MP und IPP ist es einfacher, schwere C/C++-Berechnungen durchzuführen und die Ausführung um ein Vielfaches zu beschleunigen. Und statt 10 Sekunden auf MQL4 erhalten Sie 1 Sekunde - sogar auf meinem preiswerten Dual-Core.

 
Mathemat:

Ich fragte ihn, wie er ohne dll arbeiten könne.

Okay, vergiss es. Es ist einfacher, schwere Berechnungen in C/C++ zu implementieren und die Ausführung mit SSE*, Open MP und IPP um ein Vielfaches zu beschleunigen. Und anstelle von 10 Sekunden in MQL4 erhalten Sie 1 Sekunde - sogar auf meinem preiswerten Dual-Core.

MQL5 ist 20 Mal schneller als MQL4.

C++ ist 6 Mal schneller als MQL5 (bei Verwendung von Bibliotheken, die die Ausführung automatisch parallelisieren).

Insgesamt: 20*6=120 Mal.

Wenn Sie GPU-Berechnungen verwenden, wird es sogar noch schneller sein.

GESAMT: 10/120=0,083c.

etwa so.

 
joo:

MQL5 ist 20 Mal schneller als MQL4.

Ich würde es gerne glauben. In der Praxis ist die Optimierung auf einer Multicore-CPU in MT5 jedoch viel langsamer als die Single-Thread-Optimierung in MT4.

Es ist durchaus möglich, dass es nur so aussieht, als ob der Code in MT5 kaum wackelt?

Ich sollte irgendeinen Benchmark-Algorithmus nehmen und ihn in der start()-Funktion von MT4 und OnTick() von MT5 verwenden und ihn auf einem einzelnen Kern in Expert Advisors mit einem Dummy-Eingabeparameter laufen lassen, der sich von 0 bis 9999 ohne Genetik ändert, um genaueres zu erfahren. Aber woher bekommt man diesen einen Kern?

 
Reshetov:

Allerdings ist die Optimierung auf einer Multi-Core-CPU in MT5 in der Praxis merklich langsamer als die Single-Thread-Optimierung in MT4.

Nein, das ist ein Testgerät. Vor der Meisterschaft haben wir die Laufzeit gemessen - die Laufzeit eines sparsamen, leichten Expert Advisors war viel kürzer als die für den Test aufgewendete Zeit.

Allerdings sind diese Informationen nicht 100%ig, ich könnte lügen, ich kann mich nicht erinnern.