GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze...

23
GPU, a @lobal GPU, a @lobal processing unit?? processing unit?? Ein Projekt, das die Welt hätte Ein Projekt, das die Welt hätte verändern sollen, und eine kurze verändern sollen, und eine kurze Einführung in einem spannenden Einführung in einem spannenden Forschungsgebiet Forschungsgebiet

Transcript of GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze...

Page 1: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

GPU, a @lobal GPU, a @lobal processing unit??processing unit??

Ein Projekt, das die Welt hätte verändern Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem sollen, und eine kurze Einführung in einem

spannenden Forschungsgebietspannenden Forschungsgebiet

Page 2: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Parallelisieren ist schwierig!!Parallelisieren ist schwierig!!

Im realen Leben, z.B. Im realen Leben, z.B. gleichzeitig Zähne gleichzeitig Zähne putzen, Mickey Mouse putzen, Mickey Mouse lesen und sich anziehenlesen und sich anziehen

Spätenstens in der Spätenstens in der Schule merkt man, dass Schule merkt man, dass der Kleiderhaken in der der Kleiderhaken in der Jacke geblieben istJacke geblieben ist

Auf einem Auf einem Supercomputer: man löse Supercomputer: man löse die Laplace-PDE auf die Laplace-PDE auf einem Polygon, in einem Polygon, in parallel, mit einem parallel, mit einem iterativen Jacobi-iterativen Jacobi-VerfahrenVerfahrenKommunikation zwischen Kommunikation zwischen den Knoten so klein wie den Knoten so klein wie möglich halten!! möglich halten!! Ansonsten je mehr Ansonsten je mehr Prozessoren, desto Prozessoren, desto langsamer…langsamer…

Page 3: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Wie wird heutzutage parallel Wie wird heutzutage parallel programmiert??programmiert??

Man definiert eine fixe Anzahl (=p) Prozessoren, bevor Man definiert eine fixe Anzahl (=p) Prozessoren, bevor das Programm auf dem Supercomputer ausgeführt wird. das Programm auf dem Supercomputer ausgeführt wird. OpenMP: Compiler übernimmt die gesamte Aufgabe der OpenMP: Compiler übernimmt die gesamte Aufgabe der Parallelisierung (Der Programmierer muss nur Direktiven Parallelisierung (Der Programmierer muss nur Direktiven angeben)angeben)MPI (Message Passing Interface): Der Programmierer MPI (Message Passing Interface): Der Programmierer muss die Kommunikation zwischen den Knoten selbst muss die Kommunikation zwischen den Knoten selbst definieren.definieren.Meistens wird aber ein Programm geschrieben, und das Meistens wird aber ein Programm geschrieben, und das Programm wird mehrmals mit verschiedenen Programm wird mehrmals mit verschiedenen Anfangsparametern gestartet!!Anfangsparametern gestartet!!

Page 4: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Vergleich von Supercomputer - Anordnungen

• Dieser Laptop führt etwa eine halbe Milliarde Operationen pro Sekunde aus = ½ GigaFlop, das war die Leistung eines Supercomputers vor 10 Jahren

• Ein Supercomputer mit Shared Memory (= alle Prozesse greifen auf dem gleichen Speicher zu), etwa 470 Gigaflops (HP Superdome)

• Linux Beowulf Cluster mit Distributed Memory und 502 Prozessoren (jeder Prozess hat eigenen Speicher), etwa 266 Gigaflops

Page 5: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Vergleiche von Supercomputer-Anordnungen

• Der japanische Supercomputer Earth Simulator rechnet mit 35 Teraflops (=35000 Gigaflops)

• Das Projekt Seti@home, der erste erfolgreiche Grid - Computing Projekt rechnet mit 43 Teraflops

Page 6: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Heutige CPUs sind fast Heutige CPUs sind fast arbeitslos!!arbeitslos!!

Mehr als 80% der Rechenzeit einer CPU Mehr als 80% der Rechenzeit einer CPU besteht aus dem Warten von besteht aus dem Warten von Benutzereingaben…Benutzereingaben…

Heutige Betriebssysteme können in dieser Heutige Betriebssysteme können in dieser Zeit Prozesse im Hintergrund laufen Zeit Prozesse im Hintergrund laufen lassen, ohne dass der Anwender etwas lassen, ohne dass der Anwender etwas merktmerkt

Page 7: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Internet - Supercomputer

• Wenn alle Computer auf der Welt in einem Cluster zusammengefügt würden, welche Leistung könnte man dann teoretisch erreichen??

• 400 Millionen Rechner à ½ Gigaflop = 200 Millionen Gigaflop = 200 000 Teraflop = etwa 2000 Supercomputer!

Page 8: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Vergleich von Supercomputer - Anordnungen

0.1

1

10

100

1000

10000

100000

1000000

10000000

100000000

1000000000

Laptop Beowulf HP Earth Sim Seti IBM Internet

Gigaflops/ s

Page 9: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Seti@home, Jagd auf Seti@home, Jagd auf E.T.!!E.T.!!

Ein alter Supercomputer Ein alter Supercomputer verteilt Datensätze eines verteilt Datensätze eines Radioteleskopes an normale Radioteleskopes an normale Rechner.Rechner.Auf diese Rechner ist ein Auf diese Rechner ist ein kleines Programm installiert, kleines Programm installiert, das die Datensätze im das die Datensätze im Hintergrund analysiertHintergrund analysiertDie Analyse erfolgt mit einer Die Analyse erfolgt mit einer langwierigen langwierigen Fouriertransformation, das Fouriertransformation, das Ergebnis der Analyse wird Ergebnis der Analyse wird dann an den alten dann an den alten Supercomputer Supercomputer zurückgeschicktzurückgeschicktAlle können beim Projekt Alle können beim Projekt mitmachen! Sogar ein 80486!mitmachen! Sogar ein 80486!

Page 10: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

KrebsforschungKrebsforschung

United Devices, wie Seti@home, verteilt United Devices, wie Seti@home, verteilt Datensätze, die von normalen Rechnern im Datensätze, die von normalen Rechnern im Hintergrund verarbeitet werden.Hintergrund verarbeitet werden.

Page 11: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Achtung!Achtung!

Bei diesen beiden Projekten, Seti@home und Bei diesen beiden Projekten, Seti@home und Krebsforschung, die über Internet laufen, ist die Krebsforschung, die über Internet laufen, ist die Anzahl beteiligter Prozessoren (=p) am Anfang Anzahl beteiligter Prozessoren (=p) am Anfang nicht im voraus bestimmt… Rechner können nicht im voraus bestimmt… Rechner können vom Projekt ein und aussteigen…vom Projekt ein und aussteigen…

Unterschied gegenüber MPI und OpenMP!!Unterschied gegenüber MPI und OpenMP!!

Page 12: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Eine Erweiterung des Client / Server Modells??

Client / Server Beispiele:

Seti@home, Krebsforschung

Peer to peer Netwerk Beispiele: Kazaa,

Gnutella, GPU, a @lobal processing unit??

Server

Client

Client

Client

Client

Client

Client Cl

ient

Client/Server

Peer to peer

Node

Node

Node

Node

Node

Node

Node

Page 13: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Wie funktioniert (sehr grob) ein Peer to Peer – Netwerk??

NodeA

A

A

AAn incoming packet…

… is forwarded through all other connections

Problem des geometrischen Wachstums der Pakete!Duplikate müssen weggeworfen werden.

Page 14: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Wie könnte man das verbessern??

Idee aus Simulationen eines Teams der Princeton University

NodeA

AAn incoming packet…

… is forwarded through only one randomly chosen connection and not through all connections as before

Page 15: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Die Idee von GPUDie Idee von GPU

Rechner im Internet lassen GPU laufen. GPU Rechner im Internet lassen GPU laufen. GPU verbindet sich automatisch zu einem Peer to verbindet sich automatisch zu einem Peer to Peer – NetzwerkPeer – Netzwerk

GPU stellt wissenschaftliche Bibliotheken zur GPU stellt wissenschaftliche Bibliotheken zur VerfügungVerfügung

Jeder, der GPU installiert hat, kann auch mal Jeder, der GPU installiert hat, kann auch mal andere Rechner verwenden, um eine eigene andere Rechner verwenden, um eine eigene verteilte Berechnung auszuführenverteilte Berechnung auszuführen

Page 16: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Die Idee von GPU (2)Die Idee von GPU (2)

GPU ist in 3 Teile gegliedertGPU ist in 3 Teile gegliedertDer Routing Layer leitet Berechnungspakete Der Routing Layer leitet Berechnungspakete weiterweiterEine virtuelle Maschine interpretiert die Eine virtuelle Maschine interpretiert die Berechnungspakete mit Hilfe einer Bibliothek Berechnungspakete mit Hilfe einer Bibliothek von Pluginsvon PluginsPlugins sind kompilierte DLLs, die die Plugins sind kompilierte DLLs, die die Funktionalität des Knotens erweiternFunktionalität des Knotens erweitern

Page 17: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Die Idee von GPU (3)Die Idee von GPU (3)

Die polnische Notation wird eingeführt, um die Die polnische Notation wird eingeführt, um die virtuelle Maschine zu vereinfachen 1 + 1 wird zu virtuelle Maschine zu vereinfachen 1 + 1 wird zu 1,1,+1,1,+

Berechnungspakete werden als Dateisuche Berechnungspakete werden als Dateisuche getarnt, z.B eine Dateisuche für „GPU:1,1,+“ getarnt, z.B eine Dateisuche für „GPU:1,1,+“ wird als Berechnungsaufgabe interpretiertwird als Berechnungsaufgabe interpretiert

Page 18: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

GPU in der PraxisGPU in der Praxis

Zwei Bibliotheken (Pi – Berechnung und verteilte Zwei Bibliotheken (Pi – Berechnung und verteilte Berechnung des diskreten Logarithmus)Berechnung des diskreten Logarithmus)

Weiterentwicklung als Open Source Projekt an Weiterentwicklung als Open Source Projekt an der Komplexität der Aufgabe gescheitertder Komplexität der Aufgabe gescheitert

Prototyp kann man von Internet herunterladen Prototyp kann man von Internet herunterladen http://sourceforge.net/projects/gpuhttp://sourceforge.net/projects/gpu

Page 19: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

GPU in der Praxis (2)GPU in der Praxis (2)

Version 0.688 implementiert alles, was in der Version 0.688 implementiert alles, was in der Dokumentation beschrieben wird… ist aber sehr Dokumentation beschrieben wird… ist aber sehr instabilinstabil

Version 0.768 ist sehr stabil (dank dem Version 0.768 ist sehr stabil (dank dem Komponenten TGnutella von Kamil Pogorzelski), Komponenten TGnutella von Kamil Pogorzelski), Ergebnisse werden (noch) nicht zurückgesandtErgebnisse werden (noch) nicht zurückgesandt . .

Page 20: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

ScreenshotsScreenshots

Page 21: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

http://gpu.sourceforge.nethttp://gpu.sourceforge.net

Page 22: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

Screenshots (2)Screenshots (2)

Page 23: GPU, a @lobal processing unit?? Ein Projekt, das die Welt hätte verändern sollen, und eine kurze Einführung in einem spannenden Forschungsgebiet.

LinksLinks

Global Grid Forum Global Grid Forum www.gridforum.orgwww.gridforum.orgEU Grid: http://eu-datagrid.web.cern.chEU Grid: http://eu-datagrid.web.cern.chTop 500 Supercomputer: http://www.top500.orgTop 500 Supercomputer: http://www.top500.orgSeti@home Seti@home http://setiathome.berkeley.eduhttp://setiathome.berkeley.eduKrebsforschung Krebsforschung http://members.ud.com/projects/cancerhttp://members.ud.com/projects/cancer