PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Multitasking Programmierung


Kali
02.06.2006, 07:02
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

Georg
02.06.2006, 08:24
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?

Kali
02.06.2006, 09:02
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

TiKu
02.06.2006, 09:14
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.

Georg
02.06.2006, 10:37
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



Copyright © 1999 - 2011 Planet 3DNow!
Rechtliche Hinweise