Programmierung von hybriden Multi-Core Prozessoren am Beispiel des Cell-Prozessors
Partikelsimulation auf der Cell Broadband Engine
(Bild stammt von IBM)
Systemarchitektur des Cell-Prozessors
Im Bereich des High Performance Computing sind parallele Rechnerarchitekturen seit Jahrzehnten bekannt. In Supercomputern werden eine große Anzahl von Prozessoren über ein Hochgeschwindigkeits-Netzwerk miteinander verbunden, um komplexe Berechnungen in einer angemessenen Zeit durchzuführen. Infolge der nach Moores Law stetig steigenden Integrationsdichte von logischen Schaltungen war die Vereinigung von mehreren Prozessor-Kernen (Cores) in einen Prozessor zu Beginn des 21. Jahrhunderts die logische nächste Evolutionsstufe dieses Prinzips. Diese Multicore-Prozessoren werden unterschieden zwischen homogenen Prozessoren, die aus mehreren Kernen gleicher Art bestehen, und heterogenen Prozessoren, die Kerne mit verschiedenen Spezialisierungen, Befehlssätzen oder Architekturen besitzen.
Eine der ersten heterogenen Multicore-Architekturen ist die Cell Broadband Engine. Der Cell Prozessor wurde in einem Joint Venture von Sony, Toshiba und IBM zwischen 2000 und 2005 entwickelt und in Multimedia-Systemen wie der PS3 von Sony aber auch in Supercomputern wie dem RoadRunner von IBM, dem derzeit schnellsten Rechnersystem weltweit, eingesetzt. Die aktuellen Versionen des Cell-Prozessors besitzen einen PowerPC-Kern für die Ausführung des Betriebssystems (Linux) und acht frei programmierbare Vektoreinheiten. Der PowerPC-Kern wird als Power Processing Element (PPE) und die Vektoreinheiten als Syngeristic Processing Element (SPE) bezeichnet. Der Cell Prozessor besitzt ein Speicherinterface zum direkten Anschluss von bis zu 8GByte RAM und einen FlexIO-Bus zur Verbindung mit der Peripherie und zur direkten Anbindung an einen zweiten Cell Prozessor.
(Abbildung stammt aus [1])
Partikelsimulation
Viele Vorgänge in der Natur lassen sich im Computer durch so genannte Partikelmethoden simulieren, z.B. das Verhalten von Molekülen, Gasgemischen, Flüssigkeiten, Kristallen, Festkörpern bis hin zu Galaxien. Partikelmethoden
basieren auf dem einfachen Modell von einer Anzahl von n Partikeln - dies können in der Realität Atome, Moleküle oder größere Teilchen wie z.B. Wassertropfen oder Kugeln sein - die sich in einem zwei- oder dreidimensionalen Gebiet
befinden und sich gegenseitig dynamisch beispielsweise durch anziehende oder abstoßende Kräfte oder kinematisch beispielsweise durch Kollisionen beeinflussen.
Partikelsimulationen besitzen einen hohen Rechenaufwand, da generell jedes Partikel jedes andere beeinflussen und von jedem anderen beeinflusst werden kann. Damit ergibt sich eine Laufzeit-Komplexität von O(n²). Des Weiteren müssen im Fall von dynamischer Beeinflussung komplexe Differantialgleichungen gelöst werden. Um eine Simulation mit einer hohen Anzahl von Partikeln interaktiv visualisieren zu können, wird daher ein leistungsstarkes paralleles Rechnersystem benötigt.
Aufgaben-Skizze
Das Ziel dieses Projektes ist es, den Teilnehmern ein Verständnis der Cell-Architektur und ihrer Programmierung zu vermitteln und in eine gemeinsame Projektarbeit einzuführen. Die Studierenden sollen eine parallele Partikelsimulation für die Cell Broadband Engine implementieren. Die Simulation soll interaktiv mit Hilfe von OpenGL visualisiert werden.
Teamarbeit
Im Rahmen dieses Projektes sollen die Teilnehmer eigenständig eine Lösung für die gestellte Aufgabe entwickeln und anschließend diesen Lösungsansatz für den Cell-Prozessor umsetzen. Die Aufgabenstellung ist komplex und kann nur im Team gelöst werden. Aus diesem Grund gehört das Projektmanagement zur Problemstellung des Projektes. Das Team wird aus
3-6 Studierenden bestehen. Sie spezifizieren gemeinsam eine Lösungsstrategie und setzen diese im Team um.
Termine
Wöchentlich mittwochs, 09:00h - 12:00h im Praktikumsraum des Lehrstuhls (LfBS Raum 103)
Anmeldung
Die Vergabe der Plätze erfolgt zentral:
Campus
Das Praktikum im Campus:
L²P Lernraum
Für die Veranstaltung wird ein L²P Lernraum eingerichtet.
Literatur
| [1] | E. Perkins and J.R. Williams, “A Fast Contact Detection Algorithm Insensitive to Object Sizes”, Engineering Computations, vol. 18, 2001, pp. 48-61. |
| [2] | S. Luding, “Collisions & Contacts Between Two Particles”, 1998. |
| [3] | C.R. Johns and D.A. Brokenshire, “Introduction to the Cell Broadband Engine Architecture”, IBM J. Res. Dev., vol. 51, 2007, pp. 503-519. |
| [4] | J.A. Kahle, M.N. Day, H.P. Hofstee, C.R. Johns, T.R. Maeurer, and D. Shippy, “Introduction to the Cell Multiprocessor”, IBM J. Res. Dev., vol. 49, 2005, pp. 589-604. |
| [5] | M. Gschwind, H. Hofstee, B. Flachs, M. Hopkins, Y. Watanabe, and T. Yamazaki, “Synergistic Processing in Cell's Multicore Architecture”, Micro, IEEE, vol. 26, 2006, pp. 10-24. |
Ansprechpartner
Dipl.-Inform. Ruben Niederhagen
Der Ansprechpartner steht Ihnen jederzeit gerne zur Verfügung.
|