Dynamische Overlays für die CellBE-Architektur

BearbeiterIn:Tobias Floßmann
Titel:Dynamische Overlays für die CellBE-Architektur
Typ:Diplomarbeit
Betreuer:Werth, T.; Weigand, U.; Philippsen, M.
Status:abgeschlossen am 23. Oktober 2009
Vorausetzungen:

Die IBM Cell Broadband Engine (bekannt aus Sony's Playstation 3) ist eine heterogene Mehrkernarchitektur basierend auf zwei verschiedenen Prozessorelementen. Der Cell-Prozessor erreicht Spitzenwerte bei der Rechengeschwindigkeit trotz wesentlich geringerem Stromverbrauch als vergleichbar schnelle traditionelle CPUs und wird auch im Bereich des wissenschaftlichen Rechnens eingesetzt.

Aufgebaut ist der Cell-Prozessor im Wesentlichen aus einer PowerPC-Einheit sowie bis zu 8 Synergistic Processing Elements (SPEs), welche parallel Berechnungen ausführen können. Da der lokale Speicher der SPEs sehr klein ist (nur 256kB), können nicht beliebig große Programme und Daten abgelegt werden.

Thema:

Am Lehrstuhl wurde für die SPEs ein dynamischer Programmlader entwickelt, der dynamisch den auszuführenden Programmcode in kleinen Fragmenten (Grundblöcke bzw. Funktionen) in einen Zwischenspeicher lädt, aus dem sie dann ausgeführt werden. Da ein Speicherbereiniger die Fragmente bei Platzmangel aus dem Speicher entfernt und nur die benötigten Fragmente zur gleichen Zeit im Speicher vorgehalten werden müssen, kann der Platzverbrauch bei moderaten Laufzeiteinbußen um 70 Prozent reduziert werden.

Der existierende Programmlader unterliegt dabei aber immer noch der Einschränkung, dass maximal 256 KB Code ausgeführt werden können, da der Instruktionssatz der Architektur nicht auf größere Codesegmente ausgelegt ist. Es ist die zentrale Aufgabe dieser Diplomarbeit, diese Beschränkung zu umgehen. Dabei ist zu untersuchen, wie vorhandene Overlay-Techniken dabei verwendet werden können, um den dynamischen Ansatz des Programmladers mit den Vorteilen statischer Overlays und eines Overlay-Managers zu verknüpfen.

Folgende Schritte sind für die Arbeit vorgeschlagen:

  • Einarbeitung in die vorhandene Infrastruktur
  • Analyse von Overlay-Techniken für den Cell-Prozessor
  • Erstellung einer Testsuite mit Benchmarkprogrammen, um neue Version des Programmladers auf Korrektheit und Effizienz zu testen
  • Implementierung der Overlay-Techniken im Programmlader
  • Optional: Optimierungen (z.B. Branch-Hints, Codegröße des Programmladers...)
  • Ausarbeitung Literatur:

[1]: Kahle, J. A., Day, M. N., Hofstee, H. P., Johns, C. R., Maeurer, T. R., and Shippy, D.: Introduction to the cell multiprocessor. In IBM Journal of Research and Development 49, 4/5 pages 589-604, July 2005.
[2]: Eichenberger, A. E., O'Brien, K., O'Brien, K., Wu, P., Chen, T., Oden, P. H., Prener, D. A., Shepherd, J. C., So, B., Sura, Z., Wang, A., Zhang, T., Zhao, P., and Gschwind, M.: Optimizing Compiler for the CELL Processor. In Proceedings of the 14th international Conference on Parallel Architectures and Compilation Techniques., IEEE Computer Society, Washington, DC, USA, pages 161-172, September 2005.
[3]: IBM. Cell Broadband Engine resource center, http://www-128.ibm.com/developerworks/power/cell/
[4]: Weigand, U.: Porting the GNU Tool Chain to the Cell Architecture, In Proceedings of the 2009 GCC Developers Summit., Ottawa, ON, Canada, June 2005
[5]: Werth, T., Floßmann, T., Klemm, M., Schell, D., Weigand, U., Philippsen, M.: Dynamic Code Footprint Optimization for the IBM Cell Broadband Engine.

watermark seal