Ich bin auf der Suche nach einer möglichst einfach erlernbaren und handhabbaren Entwicklungs-Umgebung für das parallele Berechnen mit Grafikarten. Umgeschaut habe ich mich bei NVIDA und AMD, die soetwas anbieten. Welche Entwicklungsumgebung wäre da für einen Anfänger in der Materie das Beste? Ich habe Erfahrungen mit DSPs, MicroControllern und Windows-Programmierung, Visual Studio und CodeComposer z.B. Mir geht es zunächst um die Möglichkeit, einfache, aber umfangreiche Berechnungen, die ich in MATLAB erzeuge, mit Varianten zu berechnen. Dazu habe ich fertige C-Algorithmen, die momentan als einfaches C-Programm laufen, sich Daten von der Platte holen und die Ergebnisse ausgeben. Ich arbeite sozusagen offline. MATLAB wird nur hin und wieder benutzt, um an der Physik zu schrauben und ein bischen zu simulieren. Massgeblich ist letztlich der Algo in C. Der wird mit Szenarien gefüttert, um ihn zu optimieren. Am Ende soll der Algo auch in einem PC laufen, d.h. er bekommt dann Daten in Echtzeit und rechnet parallel mehrere Variationen desselben Szenarios aus. Die Varianten unterscheiden sich etwas in den Parametern, die Ergebnisse sind aber ziemlich abweichend, daher kann das nicht analytisch gemacht werden, sondern muss "durchgespielt" werden. Vom Prinziop ist es ähnlich einer Wettersimulation ausgehend von Messungen.
Vielleicht noch ein paar Randbedinungen: Ich weiss, dass MATLAB das automatisch integriert anbietet und auch Infrastruktur bereitstellt. Mit MATLAB möchte ich aber ausdrücklich nicht arbeiten, um nicht von denen abhängig zu sein. Am liebsten wäre mir ein OpenSource System. Bevor ich da was ausprobiere, dachte ich, mich erstmal umzuhören, ob wer Tipps geben kann. Ich verspreche mir von der parallelen Berechnung eine ganze Reihe von Vorteilen. Wenn möglich und machbar würde ich gerne einen ganzen PC mit Leistungskarten vollknallen. Wäre weniger eine Kostenfrage, ein Finanzier ist verfügbar :-)
Schau dich mal bei sgminer & co. um, die haben die komplette Infrastruktur für mehrere Karten (ati/amd) implementiert. Für nvidia findest du in diese Richtung auch etwas.
Suchst du sowas wie OpenCL? Das ist halt keine 'Entwicklungsumgebung', die kannst du dir frei aussuchen.
Die üblichne verdächtigen: http://de.wikipedia.org/wiki/General_Purpose_Computation_on_Graphics_Processing_Unit#Programmierung http://en.wikipedia.org/wiki/CUDA http://en.wikipedia.org/wiki/OpenCL Bevor du aber anfängt dir über die Programmierung von GraKas Gedanken zu machen wäre es vielleicht nicht verkehrt sich erstmal mit den Grundlagen zu beschäftigen welche Randbedingungen für die verschiedenen Arten von Parallelisierung es so alles gibt und dann zu überlegen welch bei deinen Daten und der gewünschten Berechnung überhaupt Vorteile bringt. Irgendwie liest sich das bei dir nicht so als würde dich der bei GraKas gebräuchliche SIMD Ansatz überhaupt weiterbringen: http://en.wikipedia.org/wiki/Flynn's_taxonomy
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.