Analyse des Lattice-Boltzmann-Verfahrens auf der CellBE-Architektur

BearbeiterIn:Dimitrij Kotrev
Titel:Analyse des Lattice-Boltzmann-Verfahrens auf der CellBE-Architektur
Typ:Studienarbeit
Betreuer:Werth, T.; Philippsen, M.
Status:abgeschlossen am 19. Oktober 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).

Das Lattice-Boltzmann-Verfahren ist ein diskretes Verfahren zur Annäherung der Navier-Stokes-Gleichung in der Strömungssimulation. Dabei wird auf einem Gitter eine beschränkte Zahl an Partikeln simuliert und das Verhalten des Flusses durch Strömung und Kollision nachgeahmt. Diese Partikel interagieren mit den Partikeln der umgebenden Zellen, so dass bei einer Parallelisierung des rechenintensiven Verfahrens relativ wenige Datenabhängigkeiten entstehen.

Thema:

Im Rahmen der Arbeit sollen die entsprechenden Datenabhängigkeiten und Flaschenhälse des Lattice-Boltzmann-Verfahrens mit verschiedenen Randbedingungen und unterschiedlicher Dimensionszahl untersucht werden. Dabei soll analysiert werden, welche Informationen durch den Kontext der Anwendung bekannt sind und dem Übersetzer mitgeteilt werden können. Aus den Analysen soll eine Spracherweiterung für den Kontext des Lattice-Boltzmann-Verfahrens (und ähnlicher strukturierter Algorithmen) entworfen und implementiert werden. Bei der Implementierung soll auf ein bestehendes Compiler-Framework aufgesetzt werden.
Folgende Schritte sind für die Arbeit vorgeschlagen:

  • Einarbeitung in die CellBE-Architektur und in die vorhandene Infrastruktur
  • Einarbeitung in das Lattice-Boltzmann-Verfahren
  • Analyse der Datenabhängigkeiten bei Betrachtung mehrerer Gittermodelle
  • Auswahl eines geeigneten Compiler-Frameworks [5,6,7]
  • Implementierung der Spracherweiterung
  • 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]: Lattner, C., Adve, V.: The LLVM Compiler Framework and Infrastructure Tutorial, In Languages and Compilers for High Performance Computing., Springer, Berlin, Germany, 2005
[6]: Quinlan, D., Ur, S., Vuduc, R.: An Extensible Open-Source Compiler Infrastructure for Testing, In Hardware and Software, Verification and Testing., Springer, Berlin, Germany, 2006
[7]: Weigand, U.: Porting the GNU Tool Chain to the Cell Architecture, In Proceedings of the GCC Developers’ Summit., Ottawa, ON, Canada, June 2005

watermark seal