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

 
icas:
"Das ist richtig, das ist richtig, nicht wahr? Aber es gibt noch eine andere Seite der Medaille" ("Captive of the Caucasus", C). Die Meta-Zitate sind endlich "auf der Höhe der Zeit".

Haben sie aus irgendeinem Grund beschlossen, mit dem Eisen Schritt zu halten? Und Eisen altert am schnellsten.


Normale Helden gehen immer den umgekehrten Weg (c) Es ist ein Lied aus einem Film.


Ich persönlich bin nicht im Geringsten begeistert von der Tatsache, dass ich, um die Geschwindigkeit mit MT4-Level-Optimierung zu erhalten, muss ich für eine Art von Grafikkarten zu suchen. Und die Optimierung ist der problematischste Teil des Autohandels, was den Rechenaufwand angeht.

Und wenn sich die Eisenwarenhändler morgen ein anderes Merkmal ausdenken, mit dem sie dieselben Aufgaben akzeptabler lösen können, wäre es schade um die Meta-Zitate. Schließlich sind die Hardware-Entwickler am wenigsten konservativ in ihren Ideen und werden bei der ersten Gelegenheit versuchen, etwas zu implementieren, um die bisherigen Krücken zu verlassen und der Konkurrenz voraus zu sein.

Der effektivste Weg zur Steigerung der Produktivität von Software ist die Verbesserung ihres Algorithmus. Alle anderen Versuche, von diesem Weg abzuweichen, und insbesondere solche, die von anderen Entwicklern abhängig sind, enden oft sehr unglücklich.

 
Reshetov:

Ich persönlich bin überhaupt nicht begeistert von der Tatsache, dass ich nach einigen Widgets suchen muss, um die Geschwindigkeit der Optimierung auf MT4-Ebene zu erreichen. Und die Optimierung ist der problematischste Teil des Autohandels, was den Rechenaufwand angeht.

Und wenn den Ironmongers morgen eine andere Funktion einfällt, die ihnen eine akzeptablere Lösung für die gleichen Aufgaben bietet, wäre es schade um die Metaquotes. Schließlich sind die Hardware-Entwickler am wenigsten konservativ in ihren Ideen und werden bei der ersten Gelegenheit versuchen, etwas zu implementieren, damit sie ihre bisherigen Krücken vergessen und ihre Konkurrenten überholen können.

Der effektivste Weg zur Verbesserung der Leistung einer Software ist die Verbesserung ihres Algorithmus. Alle anderen Versuche, von diesem Weg abzuweichen, und insbesondere solche, die von anderen Entwicklern abhängig sind, enden oft sehr schlecht.


Testen Sie MQL5 Cloud Network - die Geschwindigkeit der Optimierung ist so hoch wie nie zuvor in MT4. Bei umfangreichen Berechnungen wird es erstaunlich sein, wie Hunderte von Ergebnissen pro Sekunde ausfallen, wenn ein paar tausend unabhängige Agenten verwendet werden.

Ich bin mir nicht sicher, ob das GPU-Computing zu einer Verbesserung der grundlegenden Handelsalgorithmen führen wird, aber wir haben weitreichende Pläne. In den nächsten Builds wird es eine Menge interessanter Dinge geben - es wird möglich sein, die leistungsfähigsten Rechenfarmen mit Datenaustausch und Postanalyse der Ergebnisse aufzubauen.

 
Renat:

Ich bin mir nicht sicher, ob das GPU-Computing zu einer Verbesserung der grundlegenden Handelsalgorithmen führen wird, aber wir haben weitreichende Pläne. Die nächsten Builds werden sehr interessant sein - es wird möglich sein, die leistungsstärksten Berechnungsfarmen mit Datenaustausch und Postanalyse der Ergebnisseaufzubauen.

Bedeutet dies, dass der Nutzer Zugang zu den Ergebnissen der Berechnungen der Agenten hat?
 
joo:
Wow! Bedeutet dies, dass der Nutzer Zugang zu den Ergebnissen der Berechnungen der Bearbeiter hat?

Ganz genau.

Sie können große Datenmengen von den Agenten zurück zum Host-Terminal übertragen und nach Abschluss der Berechnungen automatisch die Methode OnTesterFinalize() desselben Expert Advisors auf dem Terminal selbst ausführen. So wird es möglich sein, eine komplexe Nachbearbeitung der Testergebnisse durchzuführen.

 
Renat:

Ganz genau.

Es wird möglich sein, große Datenmengen von den Agenten zurück zum Host-Terminal zu übertragen und nach Abschluss der Berechnungen automatisch die Methode OnTesterFinalize() desselben Expert Advisors auf dem Terminal selbst auszuführen. So wird es möglich sein, komplexe Nachbearbeitungen von Testergebnissen durchzuführen.

Cool!!!

Außerdem, bevor es zu spät ist. Die OnTesterFinalize()-Methode für Agenten wäre ebenfalls wünschenswert (könnte die gleiche sein, aber mit Host/Agent-Eingabeparameter). Die Idee ist, Arrays in Map-Dateien (z. B. Cache-lastige Indikatoren) auf den Agentenrechnern zu erstellen und sie am Ende korrekt zu löschen.

 
Renat:

Testen Sie MQL5 Cloud Network - die Geschwindigkeit der Optimierung ist so hoch wie nie zuvor in MT4. Es ist erstaunlich, wie Hunderte von Ergebnissen pro Sekunde mit ein paar Tausend unabhängigen Agenten an massiven Berechnungen scheitern können.

Ja, ich habe es bereits auf meinem lokalen 2-Kern-Computer ausprobiert. Ich war von den Ergebnissen enttäuscht. Die MT5-Engine kann kaum auf 2 Kernen laufen, während MT4 sehr schnell optimiert wird.

Theoretisch kann man natürlich zusätzliche Computer starten, die mit dem lokalen Netzwerk verbunden sind, und die Leistung wird dadurch erhöht. Sie können mehrere Grafikkarten in Ihren Computer einbauen lassen, um die Leistung zu erhöhen. Aber es ist nicht die Lösung, wenn Sie ein Server-Rack kaufen müssen, um die Optimierungsgeschwindigkeit im Tester zu erhöhen.

Natürlich kann auch das verteilte Fernrechnen genutzt werden, obwohl der Dienst nicht kostenlos ist.

Aber der Punkt ist, dass MT4 Produktivität ist jetzt genug für mich. Und da MT5 immer mehr von der Hardware abhängig wird, möchte ich nicht auf eine solche Plattform umsteigen.


Renat:

Ich bin mir nicht sicher, ob das GPU-Computing zu einer Verbesserung der grundlegenden Handelsalgorithmen führen wird, aber wir haben weitreichende Pläne.

Um es ins rechte Licht zu rücken: GPU-Computing ist für alles andere als Computerspiele bisher nicht sehr nützlich. Hier ist die Geschichte ganz anders. Es ist nämlich paradox, dass 3D-Grafiken, d. h. Bilder und Animationen, auf den Hauptprozessoren der Computer erstellt (gerendert) werden. Auf der einen Seite würde scheinen, Grafikkarten mit leistungsstarken Prozessoren für Grafiken mit High-Speed-Speicher zu produzieren, aber auf der anderen Seite, alle, die mit 3D zu tun haben, nicht kaufen, schicke Grafik, und kaufen Multi-Core-Prozessoren und konventionellen, aber High-Speed-RAM, manchmal die Kombination all dieses Zeug in Farmen und Render. Noch besser ist, dass die Ergebnisse des Renderings auch auf einer relativ billigen Grafikkarte zu sehen sind (die Qualität des Bildes auf dem Monitor spielt dabei eine große Rolle).

Es ist klar, dass die Hersteller von Grafikkarten mit dieser Situation nicht zufrieden sind, denn die Gewinne sprudeln, so dass sie ihrerseits versuchen, die Situation unter Kontrolle zu bringen. Aber bisher sehr erfolglos. D.h. Software für Rendering für bestimmte Linien von Grafikkarten erschienen, aber wenn berechnen, stellt sich heraus, dass die Qualität / Preis-Verhältnis ist nicht zu Gunsten der GPU. Eine Werbeagentur oder eine Druckerei möchte das Rendering eines 3D-Bildes auf einem gewöhnlichen Multicore oder auf der Farm abwarten, aber mit der höchsten Qualität, anstatt schnell auf die GPU zu kommen und dann zu versuchen, Fehler zu beheben. Renderer haben es nicht eilig, auf die GPU umzusteigen, denn in diesem Fall würde ihre Software von den Grafikkartenherstellern abhängig werden, und die Bindung an eine bestimmte Hardware würde die Kunden nur abschrecken.

Wäre MetaQuotes mit der Entwicklung von Farmen für 3D-Grafiken beschäftigt gewesen, wäre dieser Schritt verständlich gewesen. Aber IMHO ist das eine Zeitverschwendung, denn es wäre besser zu warten, bis die Grafikkartenhersteller ihre Produkte kalibriert haben, als sich zu sehr ins Getümmel zu stürzen.

Aber das habe ich nicht zu entscheiden, denn ich bin der Chef. Aber der Punkt bleibt, d.h. es besteht kein Wunsch, auf eine hardwareabhängige Software umzusteigen, und es wird auch nicht bald dazu kommen.

 
Reshetov:

Ja, ich habe es bereits versucht, auf einem lokalen 2-Kern-Computer. Die Ergebnisse sind enttäuschend. Ich habe es auf MT5 ausprobiert, während MT4 eine sehr schnelle Optimierung zeigt.

Haben Sie MQL5 Cloud Network mit 2000 Agenten auf einem Dual Core ausprobiert?

Oder haben Sie nur einen einzigen lokalen Durchgang durchgeführt und sich darauf ausgeruht?

Mit dem MQL5 Cloud Network haben wir eine einfache Beschleunigung um das Hundert- und Tausendfache erreicht. Ohne GPU, bei jedem Expert Advisor. Nehmen Sie mein altes Beispiel mit Video: Beispiel für Berechnungsbeschleunigung mit MQL5 Cloud Network


Theoretisch können Sie natürlich zusätzliche Computer im lokalen Netzwerk betreiben und die Leistung wird dadurch gesteigert. Es ist auch möglich, mehrere Grafikkarten anzuschließen und die Leistung zu erhöhen. Aber das ist nicht die Lösung, denn um die Optimierungsgeschwindigkeit im Testgerät zu erhöhen, müssen Sie ein Server-Rack kaufen.

Natürlich kann auch das verteilte Fernrechnen genutzt werden, obwohl der Dienst nicht kostenlos ist.

Wir haben es möglich gemacht, Tausende von Agenten mit einem einzigen Knopfdruck (Aufwärmzeit des Netzwerks ca. 20-30 Sekunden) für eine schnelle Aufgabenberechnung zu aktivieren. Statt Hunderten von Stunden kann man es wirklich in einer halben Stunde schaffen.

Außerdem sind die Preise lächerlich - jeder kann sie überprüfen, und jeder, der sich bei MQL5.com anmeldet, erhält einen Bonus von 2 $.

Dies ist eine echte Revolution. Jetzt kann jeder Benutzer fast jeden Supercomputer durch den Einsatz des Cludes in die Knie zwingen. Und mit der Einführung der GPU (ein Build wird am Freitag verfügbar sein) wird es möglich sein, Supercomputer in Rudeln zu schlagen.


Aber der Kern der Sache ist, dass für jetzt MT4 Produktivität ist völlig genug für mich. Und da MT5 immer mehr von der Hardware abhängt, möchte ich nicht auf diese Plattform umsteigen.

Die Produktivität reicht für einfache Fälle aus (bzw. Sie versichern sich dessen). Für umfangreiche und detaillierte Berechnungen ist die Leistung nicht ausreichend.

Der Fehler beim Vergleich zwischen MT4- und MT5-Testern besteht darin, dass die Leute die Augen vor dem sehr unterschiedlichen Detailgrad und der Fähigkeit, mehrere Währungen genau zu testen, verschließen.

Auch in Bezug auf die Hardware-Abhängigkeit haben Sie Ihr Ziel verfehlt:

  • MT5 unterstützt sowohl 32- als auch 64-Bit-Architekturen (die 64-Bit-Version ist sogar schneller und leistungsfähiger)
  • MT5 verwendet alle lokalen Kerne
  • MT5 verwendet Remote-Agenten (32 und 64 Bit)
  • MT5 nutzt das MQL5 Cloud Network, wenn ein einfaches Notebook Berechnungsergebnisse von Computern erhält, die mehrere tausend Mal leistungsfähiger sind als es selbst
  • MT5 verwendet das hardwareunabhängige OpenCL, das Ihnen die Arbeit mit einer Vielzahl von GPU-Prozessoren ermöglicht

Sie sind ein eklatantes Wunschdenken und wissen genau, dass Sie falsch liegen.


Es ist klar, dass die Videospielentwickler mit dieser Situation nicht zufrieden sind, da die Gewinne nur so dahinfließen, und deshalb versuchen sie, die Situation unter ihre Kontrolle zu bringen. Aber bisher sehr erfolglos. D.h. Software für Rendering für bestimmte Linien von Grafikkarten erschienen, aber wenn Sie es zu berechnen, stellt sich heraus, dass die Qualität / Preis-Verhältnis ist nicht zu Gunsten der GPU. Eine Werbeagentur oder eine Druckerei möchte das Rendering eines 3D-Bildes auf einem gewöhnlichen Multicore oder auf der Farm abwarten, aber mit der höchsten Qualität, anstatt schnell auf die GPU zu kommen und dann zu versuchen, Fehler zu beheben. Renderer haben es nicht eilig, auf die GPU umzusteigen, da ihre Software in diesem Fall von den Videokartenherstellern abhängig wird und die Bindung an eine bestimmte Hardware die Kunden nur abschreckt.

Ich bin zwar kein GPU-Befürworter (ich habe mich lange Zeit ausdrücklich dagegen ausgesprochen), aber Ihre Schlussfolgerungen sind falsch.

Es gibt keine Software für GPU, weil die Entwickler noch nicht in diese Richtung geglaubt haben, aber nicht die wiederholte Erwähnung der mythischen Bindung an eine bestimmte Hardware. Dem Anstand zuliebe sollte man wenigstens lesen, was OpenCL ist und wofür es erfunden wurde (hardware- und plattformunabhängig).

Unternehmen sind nur aufgrund von Trägheit und etablierten Prozessen gezwungen, Software-Rendering einzusetzen. Ein Unternehmen dazu zu bringen, seine Software zu ändern, ist eine gigantische Anstrengung, die oft für die nächsten 3-5 Jahre unmöglich ist. Angesichts des Sprungs, den die GPUs in den letzten drei Jahren gemacht haben, und der deutlich sichtbaren Betonung der Universalisierung durch ihre Autoren ist es vernünftig, nicht nur verbesserte Ergebnisse zu erwarten, sondern auch aktiv nach neuen Funktionen zu suchen.


Wenn MetaQuotes Farmen für 3D-Grafiken entwickeln würde, dann wäre ein solcher Schritt noch verständlich. Und jetzt, IMHO, ist es nur eine Zeitverschwendung, denn es wäre besser zu warten, bis die Grafikkartenhersteller alles geregelt haben, und nicht in der Mitte des Nirgendwo zu springen.

Aber das habe ich nicht zu entscheiden, denn ich bin der Chef. Aber der Punkt bleibt, d.h. es besteht kein Wunsch, auf eine hardwareabhängige Software umzusteigen, und es wird auch nicht bald dazu kommen.

Wir haben lange genug gewartet, kritisiert und auch widersprochen, aber jetzt ist die Zeit gekommen.

Und dies ist bereits das dritte Mal, dass der Begriff "hardwareabhängige Software" wiederholt wird.

 
Reshetov:

Ja, ich habe es bereits versucht, auf einem lokalen 2-Kern-Computer. Die Ergebnisse sind enttäuschend. Die Ergebnisse sind enttäuschend: Ich schaffe es kaum auf MT5 mit 2 Kernen, während MT4 schnell optimiert ist.

Vor allem ist die Testgeschwindigkeit auf dem MT5 langsamer als auf dem MT4, weil der MT5 eine bessere Modellierung der Tick-Historie verwendet. Dadurch wird die Geschwindigkeit stark reduziert. Es besteht jedoch die Hoffnung, dass MQ einfachere Tick-Erzeugungsmethoden (und Varianten des Testens ohne Ticks) wie in MT4 implementieren wird (es gibt viele solcher Anfragen, und wenn man sich die jüngsten Innovationen ansieht, besteht die Hoffnung, dass dies umgesetzt wird).

Reschetow:

Wenn ich ins Detail gehen will: GPU-Computing ist für alles außer Computerspiele nicht sehr nützlich. Die Geschichte ist hier ganz anders. Es ist nämlich paradox, dass 3D-Grafiken, d. h. Bilder und Animationen, auf den Hauptprozessoren der Computer erstellt (gerendert) werden. Auf der einen Seite würde scheinen, Grafikkarten mit leistungsstarken Prozessoren für Grafiken mit High-Speed-Speicher zu produzieren, aber auf der anderen Seite, alle, die mit 3D zu tun haben, nicht kaufen, schicke Grafik, und kaufen Multi-Core-Prozessoren und konventionellen, aber High-Speed-RAM, manchmal die Kombination all dieses Zeug in Farmen und Render. Noch besser ist, dass die Ergebnisse des Renderings auch auf einer relativ billigen Grafikkarte zu sehen sind (die Qualität des Bildes auf dem Monitor spielt dabei eine große Rolle).

Es ist klar, dass die Hersteller von Grafikkarten mit dieser Situation nicht zufrieden sind, denn die Gewinne fließen vorbei, also versuchen sie, die Situation für sich zu gewinnen. Aber bisher sehr erfolglos. D.h. Software für Rendering für bestimmte Linien von Grafikkarten erschienen, aber wenn berechnen, stellt sich heraus, dass die Qualität / Preis-Verhältnis ist nicht zu Gunsten der GPU. Eine Werbeagentur oder eine Druckerei möchte das Rendering eines 3D-Bildes auf einem gewöhnlichen Multicore oder auf der Farm abwarten, aber mit der höchsten Qualität, anstatt schnell auf die GPU zu kommen und dann zu versuchen, Fehler zu beheben. Renderer haben es nicht eilig, auf die GPU umzusteigen, denn in diesem Fall würde ihre Software von den Grafikkartenherstellern abhängig werden, und die Bindung an eine bestimmte Hardware würde die Kunden nur abschrecken.

Wenn MetaQuotes Farmen für 3D-Grafiken entwickeln würde, dann wäre dieser Schritt verständlich. Aber IMHO ist das eine Zeitverschwendung, denn es wäre besser zu warten, bis die Hersteller von Grafikkarten alles geregelt haben, als sich zu sehr ins Getümmel zu stürzen.

Die Situation ist fast genau das Gegenteil. Jeder, der an die Zukunft denkt, stellt auf GPU-Computing um. Sie bauen ganze Supercomputer aus Videocomputern.

GPUs berechnen heute alles: Video, Audio, Fotos und sogar Festigkeitsberechnungen in Dynamik und Statik.

Inoffizielle Informationen:
Allgemeine Informationen über CUDA
http://www.gpgpu.ru/
http://www.computerra.ru/interactive/423392/
http://cgm.computergraphics.ru/issues/issue16/cuda
http://www.ixbt.com/video3/cuda-1.shtml
http://www.ixbt.com/video3/cuda-2.shtml
http://www.thg.ru/graphic/nvidia_cuda_test/print.html
http://www.thg.ru/graphic/nvidia_cuda/print.html
https://ru.wikipedia.org/wiki/CUDA

CUDA-Dokumentation
http://www.uraldev.ru/articles/id/33
http://www.steps3d.narod.ru/tutorials/cuda-tutorial.html

CUDA Beispiele und Artikel
http://www.codeproject.com/info/search.aspx?artkw=CUDA

Gedruckte Literatur:
http://www.ozon.ru/context/detail/id/5080841/
http://www.ozon.ru/context/detail/id/5432077/


Offizielle Informationen:

Verwandte Technologien
http://www.khronos.org/opencl/

http://www.nvidia.ru/object/cuda_home_new_ru.html
http://nvidia.custhelp.com/cgi-bin/nvidia.cfg/php/enduser/std_alp.php

http://developer.nvidia.com/object/gpucomputing.html
http://developer.nvidia.com/object/cuda_3_2_downloads.html
http://developer.nvidia.com/page/documentation.html
http://developer.nvidia.com/object/nsight-downloads.html

CUDA Code-Beispiele

http://developer.download.nvidia.com/compute/cuda/sdk/website/samples.html

Anwendungen

http://www.nvidia.ru/object/cuda_research_ru.html

Demos aus der Gemeinschaft

http://www.nvidia.ru/object/cuda_apps_flash_new_ru.html


Dies sind hauptsächlich CUDA-Links (aus dem Fundus), aber alles gilt auch für OpenCL in seiner Gesamtheit. Außerdem sieht die Zukunft von OpenCL (hardware-unabhängige Technologie) besser aus als die von CUDA (hardware-abhängige Technologie).


Reschetow:
Allerdings habe ich das nicht zu entscheiden, denn der Meister ist der Chef. Aber das Wesentliche bleibt, d.h. der Wunsch, auf eine hardwareabhängige Software umzusteigen, ist nicht vorhanden und wird auch nicht so bald entstehen.

Niemand hindert Sie daran, Programme auf die altmodische Weise für die CPU zu schreiben. Alle Programme werden funktionieren.


ZS Renat ist mir zuvorgekommen.

 

joo:

...

ZS Renat ist mir zuvorgekommen.

Doppelschlag. Informationen sind niemals überflüssig. :) Sehr informativer Zweig, er sollte sogar fixiert werden, damit er nicht untergeht.
 
icas:
Renat, wird es OpenCL-Unterstützung in MT4 geben?

Leider nein.

Aber ein großes Update von MetaTrader 4 kommt nächste Woche heraus und der neue MetaTrader 4 für iPhone/iPad kommt diese Woche heraus.