Multitasking Programmierung

Kali

Vice Admiral Special
Mitglied seit
11.11.2001
Beiträge
778
Renomée
4
Standort
Hamburg, GERMANY
Moin die Herren (und ggf. Frauen)

Ich wollte mal nach Euren Erfahrungen fragen, bezüglich Programmierung für mehrere CPUs?

Gibt es hier jemanden ders schonmal versucht hat?

Greez

Kali
 
Ja.

Es gibt da verschiedene Ansätze.
Die erste ist, dein Programm einfach auf mehrere Prozesse oder Threads zu verteilen.
Bei Prozessen benutzen sie einen gemeinsamen Speicherbereich (shared mem), bei Threads haben sie gleiche Variablen. Bei den beiden Methoden musst du mit Locking aufpassen, dass keine Fehler passieren.

Weiterhin gibt es noch MPI oder OpenMP. MPI arbeitet mit Nachrichten, du musst aktiv Nachrichten von einer CPU an die andere schicken und die an der anderen auch aktiv empfangen (die BlueGene/L verwendet MPI :) ).

Bei OpenMP arbeitest du mit Pragmas im Quelltext, der dann von einem Compiler in verteilbaren Code umgewandelt werden soll (also z.B. über ner for-Schleife ne Anweisung, dass die alle parallel ausgeführt werden können)

Habe mit allen Methoden schon was gemacht.
Welche Richtung schwebt dir denn vor?
 
Das war eine ganz allgemein gehaltene Frage .. jetzt wo die Dual-Core CPUs mehr werden, wollte ich mal locker an die Sache rangehen.

Unterstüzt z.B. VS Express (die Version aus der c't) Multitasking? Was ist mit VS 2005?
Brauch man extra Compiler oder sind es "nur" Einstellungen?
Kann man ggf. VB(A) *duck* auch MT coden?

Da Du wohl schon Erfahrung hast, erzähl doch mal, was Du gemacht hast?
Wie sind die Performanceunterschiede?

Ich komme auf die Frage, das ich ggf. eine Produktverantwortung für ein Händelsystem einer Bankabteilung übernehmen soll.
Sie sind hardwaremässig recht gut ausgestattet, aber ein Excel-Datei bringt die Clients reglemässig in schwitzen.
Da jeder Analyst eine zwei-CPU-Maschine hat, wäre das doch mal ein Ansatz ...

Greez

Kali
 
Unterstüzt z.B. VS Express (die Version aus der c't) Multitasking? Was ist mit VS 2005?
Visual Studio ist eine IDE. Die Sprache/der Compiler muss es unterstützen.
Kann man ggf. VB(A) *duck* auch MT coden?
Mit dem alten VBA, welches auf Visual Basic 6 basiert, ist es so schwierig, dass Du das nicht freiwillig machen willst. Einzig über ActiveX-DLLs kann man VB6-Programme vernünftig parallelisieren. Mit allem was auf .net basiert, sollte es dagegen recht einfach sein.
 
Sie sind hardwaremässig recht gut ausgestattet, aber ein Excel-Datei bringt die Clients reglemässig in schwitzen.

Da hast du glaub ich schlechte Karten, denn die Excel-Datei wird ja wohl von MS Office verarbeitet. Wenn es aber an Analysen dadrauf geht, dürfte das was bringen. Am einfachsten ist es, einige Sachen einfach parallel laufen zu lassen, wenn das möglich ist, das bringt bei einem Mehrprozessor-System schonmal einiges.

Ansonsten bin ich mit MS-Sonstewas der falsche Ansprechpartner ;D
 
Zurück
Oben Unten