Entwicklung/Anpassung einer Lattice-Boltzmann-Bibliothek für die CellBE-Architektur

BearbeiterIn:Christian Kollee
Titel:Entwicklung/Anpassung einer Lattice-Boltzmann-Bibliothek für die CellBE-Architektur
Typ:Diplomarbeit
Betreuer:Werth, T.; Philippsen, M.
Status:abgeschlossen am 15. Oktober 2008
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 soll eine existierende Bibliothek (in C/C++) an die Eigenschaften der Cell-Architektur angepasst werden. Falls eine Portierung nicht möglich ist, soll eine eigene Bibliothek am Vorbild existierender Beispiele entworfen werden. Die portierte Bibliothek sollte in der Lage sein, mehrere Gittermodelle und Randbedingungen des Lattice-Boltzmann-Verfahrens zu unterstützen. Die Parallelisierung auf den SPUs sollte für den Programmierer möglichst komfortabel sein.

Folgende Schritte sind für die Arbeit vorgeschlagen:

  • Einarbeitung in die Cell BE Architektur und in die vorhandene Compilerinfrastruktur (GNU C Compiler, IBM XL Compiler)
  • Einarbeitung in das Lattice-Boltzmann-Verfahren, Vergleich vorhandener Bibliotheken
  • Optional: Entwurf einer geeigneten Bibliothek für das Lattice-Boltzmann-Verfahren
  • Portierung einer Bibliothek auf die Cell-Architektur (einzelnes SPU-Element)
  • Parallelisierung der Bibliothek über mehrere SPUs
  • 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, 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, November 2006.
[4]: IBM. Cell Broadband Engine resource center, http://www-128.ibm.com/developerworks/power/cell/
[5]: Succi, S.: The Lattice Boltzmann Equation for Fluid Dynamics and Beyond (Numerical Mathematics and Scientific Computation), Oxford University Press, June 2001.
[6]: Heuveline, V., Latt, J.: The Openlb Project:. An Open Source and Object Oriented Implementation of Lattice Boltzmann Methods, In International Journal of Modern Physics, World Scientific Publishing Company, 2007
[7]: S. Donath, J. Götz, C. Feichtinger, K. Iglberger, S. Bergler, U. Rüde: On the Resource Requirements of the Hyper-Scale waLBerla Project. Technical Report 07-13, Erlangen, Germany, 2007
[8]: J. Götz, S. Donath, Ch. Feichtinger, K. Iglberger, U. Rüde: Concepts of waLBerla Prototype 0.0. Technical Report 07-4, Erlangen, Germany, 2007

watermark seal