Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Guten Tag zusammen.
Ein Ratschlag zu diesem sehr interessanten Thema:
1. Gibt es schon EAs für den Handel, die OpenCL für Berechnungen nutzen?
(vor mehr als einem Jahr wurde die Unterstützung angekündigt und wir haben alle zusammen die Leistung an einem Testskript ausprobiert, aber es ist viel Zeit vergangen und das Thema wurde still...).
2. Wenn ich mehrere Grafikkarten in meinem System installiert habe, werden dann alle für die Berechnungen verwendet oder nur eine von ihnen?Wahrscheinlich existieren, aber kaum in kodobaz. Es gibt nur wenige Enthusiasten, und nicht alle tun es.
OpenCL ist vorteilhaft, wenn es eine erhebliche Beschleunigung der Berechnungen ermöglicht, was für den Handel entscheidend ist. Es in den Algorithmus zu packen, nur um "shoblo" zu machen oder die Grafikkarte zu belasten, ist nicht sehr sinnvoll.
Imho lassen sich die seriösesten Ergebnisse mit intensiven, gut parallelisierbaren Berechnungen oder für Designer neuronaler Netze erzielen. Das sollte man sie vielleicht fragen.
Ich persönlich habe zum Beispiel eine Richtung, die michinteressiert, aber OpenCL wird dort kaum gebraucht, da es kaum von Nutzen wäre (zu viele Zufallszugriffsoperationen im globalen Speicher, die nur der Teufel zu parallelisieren weiß). Ich bin noch nicht verzweifelt und habe noch nicht alle vernünftigen Möglichkeiten ausprobiert - aber es wird definitiv nicht im freien Zugang sein.
2. Wenn Sie mehr als eine Grafikkarte im System installiert haben, werden dann alle für die Berechnungen verwendet oder nur eine von ihnen?
Das Unternehmen sagte etwas über Probleme mit mehreren Karten oder sogar doppelköpfigen Karten. Ich weiß nicht, ob sie gelöst sind.
Hallo.
Ich führe Massenberechnungen in MetaTrader5 durch, um ein Problem zu lösen (Modellierung eines Pokerspiels). Ich schreibe in Mcl5, weil ich ein Nerd bin und nur diese Sprache beherrsche. In meinem Fall sind Leistungsfragen sehr wichtig.
Ich verstehe also, dass Aufgaben, bei denen jeder aufeinanderfolgende Berechnungsschritt nicht an die Ergebnisse der vorangegangenen Schritte gebunden ist, parallelisiert werden können. Gut! Ich habe gerade eine solche Aufgabe.
Aber wie kann ich es parallelisieren? Wenn mein Algorithmus mit Strukturen (struct) arbeitet, deren Methoden
- z.B. eine Textdatei von einer Festplatte öffnen, lesen, Informationen in Strukturfelder einfügen, die Textdatei schließen
- und andere Methoden enthalten viele Standardfunktionen, z.B. rand(), ArrayResize(), usw.
OpenCl ist, soweit ich weiß, eine Sprache ähnlich wie C++. Wie auch immer, meine Frage ist, wie kann ich Berechnungen im Allgemeinen parallelisieren?
Hallo.
Ich führe Massenberechnungen in MetaTrader5 durch, um ein Problem zu lösen (Modellierung eines Pokerspiels). Ich schreibe in Mcl5, weil ich ein Nerd bin und nur diese Sprache beherrsche. In meinem Fall sind Leistungsfragen sehr wichtig.
Ich verstehe also, dass Aufgaben, bei denen jeder aufeinanderfolgende Berechnungsschritt nicht an die Ergebnisse der vorangegangenen Schritte gebunden ist, parallelisiert werden können. Gut! Ich habe gerade eine solche Aufgabe.
Aber wie kann ich es parallelisieren? Wenn mein Algorithmus mit Strukturen (struct) arbeitet, deren Methoden
- z.B. eine Textdatei von einer Festplatte öffnen, lesen, Informationen in Strukturfelder einfügen, die Textdatei schließen
- und andere Methoden enthalten viele Standardfunktionen, z.B. rand(), ArrayResize(), usw.
OpenCl ist, soweit ich weiß, eine Sprache ähnlich wie C++. Wie auch immer, meine Frage ist: Wie kann ich Berechnungen im Allgemeinen parallelisieren?
Google ist die Hilfe.
Auf eine solche Frage werden Sie in diesem Forum keine Antwort erhalten.
Aus einer einfachen Kombination von zwei Gründen:
Anfänger programmieren überhaupt nicht in OpenCL (und beschäftigen sich überhaupt nicht mit Parallelität), da sie es nicht verstehen können.
2 Die erfahrenen Programmierer wollen sich nicht mit Ihnen anlegen, weil sie (Ihre Frage) ein gründliches Studium Ihrer Qualifikation erfordert, um sie in einer für Sie verständlichen Sprache zu beantworten, und Ihnen dann eine lange Erklärung Ihrer Antwort geben.
Respektieren Sie daher die Zeitressourcen erfahrener Programmierer und befassen Sie sich selbst mit den Grundlagen, aber wenn Sie es herausfinden und spezifische Fragen zur Sprache (OpenCL) haben, haben Sie bessere Chancen auf ein sinnvolles Gespräch.
könnten Sie antworten, dass es möglich ist, zu parallelisieren
nur in reinem C, nur die einfachsten arithmetischen Operationen
OpenCL 2.0
OpenCL 2.0 ist die jüngste bedeutende Weiterentwicklung des OpenCL-Standards, die die plattformübergreifende Programmierung weiter vereinfachen und gleichzeitig die Beschleunigung einer Vielzahl von Algorithmen und Programmiermustern ermöglichen soll. Als Grundlage für diese erweiterten Fähigkeiten definiert OpenCL 2.0 ein verbessertes Ausführungsmodell und eine Teilmenge der Speichermodelle von C11 und C++11 sowie Synchronisation und atomare Operationen.
OpenCL 2.0 ist die letzte bedeutende Weiterentwicklung des OpenCL-Standards,.............
Worauf wollen Sie hinaus?
Ich habe diese Nachricht gesehen und beschlossen, sie hier zu veröffentlichen. Es ist interessant, sich damit zu befassen, aber ich finde noch nicht die Zeit dazu. Hier ist die gleiche Nachricht auf Russisch:
OpenCL 2.0-Spezifikationangenommen
Die Khronos Group hat die Ratifizierung und Verfügbarkeit der endgültigen Version der OpenCL 2.0-Spezifikation bekannt gegeben. Laut den Entwicklern stellt die Veröffentlichung von OpenCL 2.0 einen bedeutenden Meilenstein in der Entwicklung eines quelloffenen, frei verwendbaren Standards dar, der die plattformübergreifende parallele Programmierung vereinfacht.
Die neue Version verbessert das Ausführungsmodell und die Speichermodell-Teilmengen von C11 und C++11, Synchronisation und atomare Operationen. Es heißt, dass die neue Version von OpenCL eine viel breitere Palette von Algorithmen und Programmiermustern ermöglicht. Die neue Version berücksichtigt die Wünsche von Softwareentwicklern, die OpenCL verwenden. Die Spezifikationen sind bereits auf der Khronos-Website verfügbar.
Zu den Verbesserungen und neuen Funktionen von OpenCL 2.0 gehören: gemeinsam genutzter virtueller Speicher, verschachtelte Parallelität, gemeinsam genutzter Adressraum, bessere Bildverarbeitung, einschließlich sRGB-Unterstützung. Darüber hinaus heben die Entwickler atomare C11-Operationen, In-Memory-FIFO-Stack-Pipelines und installierbare Treibererweiterungen für Android hervor.
Ich habe diese Nachricht gesehen und beschlossen, sie hier zu veröffentlichen. Es ist interessant, sich damit zu befassen, aber ich finde noch nicht die Zeit dazu. Hier ist die gleiche Nachricht auf Russisch:
OpenCL 2.0-Spezifikationangenommen
Die Khronos Group hat die Ratifizierung und Verfügbarkeit der endgültigen Version der OpenCL 2.0-Spezifikation bekannt gegeben. Laut den Entwicklern stellt die Veröffentlichung von OpenCL 2.0 einen bedeutenden Meilenstein in der Entwicklung eines quelloffenen, frei verwendbaren Standards dar, der die plattformübergreifende parallele Programmierung vereinfacht.
Die neue Version verbessert das Ausführungsmodell und die Speichermodell-Teilmengen von C11 und C++11, Synchronisation und atomare Operationen. Es heißt, dass die neue Version von OpenCL eine viel breitere Palette von Algorithmen und Programmiermustern ermöglicht. Die neue Version berücksichtigt die Wünsche von Softwareentwicklern, die OpenCL verwenden. Die Spezifikationen sind bereits auf der Khronos-Website verfügbar.
Zu den Verbesserungen und neuen Funktionen von OpenCL 2.0 gehören: gemeinsam genutzter virtueller Speicher, verschachtelte Parallelität, gemeinsam genutzter Adressraum, bessere Bildverarbeitung, einschließlich sRGB-Unterstützung. Darüber hinaus heben die Entwickler atomare C11-Operationen, In-Memory-FIFO-Stack-Pipelines und installierbare Treibererweiterungen für Android hervor.
Was soll ich damit machen? Soll ich es in C#/C++ ablegen?
Vielleicht kann Renat sehen, was man daraus lernen kann. Es ist durchaus möglich, dass die neue Spezifikation auch in MQL5 eine bessere Leistung bringt, nicht wahr?
Was C#/C++ betrifft, so können wir es notfalls auch wegwerfen. Die Hauptsache ist, dass man die größtmögliche Leistung erzielt. ;)