Entwurf und Implementierung einer Cilk-Erweiterung für den Cell-Prozessor

BearbeiterIn:Silvia Schreier
Titel:Entwurf und Implementierung einer Cilk-Erweiterung für den Cell-Prozessor
Typ:Diplomarbeit
Betreuer:Werth, T.; Philippsen, M.
Status:abgeschlossen am 31. Januar 2009
Vorausetzungen:

Sony, Toshiba und IBM haben mit dem Cell-Prozessor eine heterogene Mehrkern-Architektur vorgestellt, die die Rechenleistung heutiger PC-Prozessoren bei Weitem übertrifft. Dabei unterliegen die einzelnen Kerne verschiedenen Einschränkungen und Anforderungen. Beispiele dafür sind der begrenzte Speicherbereich (Local Store) und die Synchronisierung der Arbeit auf den parallel arbeitenden Kernen (SPUs).

Cilk erweitert die Programmiersprache C um wenige Schlüsselworte, die zur Erzeugung und Kontrolle von rechenbetonten Kontrollfäden dienen. In Vergleichen mit anderen Programmiermodellen überzeugt Cilk sowohl mit einem hohen Grad an Abstraktion für den Programmierer als auch guten Laufzeiten bei paralleler Ausführung [7].

Thema:

Im Rahmen der Arbeit soll ein Backend entworfen und implementiert werden, dass die Programmiersprache Cilk auf der CellBE-Architektur zur Verfügung stellt. Dabei sollen die vorhandenen Schlüsselworte übernommen und durch möglichst wenige neue Schlüsselworte ergänzt werden, die für die Architektur notwendige Informationen bereitstellen. Des Weiteren soll die Laufzeitbibliothek ergänzt werden, um eine möglichst komfortable Parallelisierung auf den SPUs zu ermöglichen.

Folgende Schritte sind für die Arbeit vorgeschlagen:

  • Einarbeitung in die CellBE-Architektur und in die vorhandene Infrastruktur
  • Einarbeitung in die Spracherweiterung Cilk
  • Entwurf einer geeigneten Erweiterung der Syntax für die CellBE-Architektur
  • Implementierung eines Backends und der Syntaxerweiterung
  • Ergänzung der Laufzeitbibliothek
  • Implementierung mehrerer Beispielanwendungen und Evaluation
  • 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]: Bellens, P., Perez, J. M., Badia, R. M., and Labarta, J.: CellSs: a programming model for the cell BE architecture. In Proceedings of the 2006 ACM/IEEE Conference on Supercomputing, ACM, New York, NY, USA, November 2006.
[4]: IBM. Cell Broadband Engine resource center, http://www-128.ibm.com/developerworks/power/cell/
[5]: Blumofe, R., Joerg, C., Kuszmaul, B., Leiserson, C., Randall, K., Zhou, Y.: Cilk: an efficient multithreaded runtime system., ACM Press, New York, NY, USA, 1995
[6]: Frigo, M.: Multithreaded Programming in Cilk. In Proceedings of the 2007 international workshop on Parallel symbolic computation., ACM Press, London, ON, Canada, 2007
[7]: Kuszmaul, B.: Cilk provides the "best overall productivity" for high performance computing: (and won the HPC challenge award to prove it), In Proceedings of the 19th annual ACM symposium on Parallel algorithms and architectures., ACM Press, San Diego, CA, USA, 2007
[8]: Houston, M., Park, J.-Y., Ren, M., Knight, T., Fatahalian, K., Aiken, A., Dally, W., Hanrahan, P.: A portable runtime interface for multi-level memory hierarchies, In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming., ACM Press, Salt Lake City, UT, USA, 2008

watermark seal