Domain-Specific and Resource-Aware Computing on Multicore Architectures

Dozent:

Frank Hannig

Modulbeschreibung:

Domain-Specific and Resource-Aware Computing on Multicore Architectures

Umfang/Stunden:

V2 + Ü2

Ort und Zeit der Vorlesung:

Mittwoch, 12:15 – 13:45 Uhr, Raum 01.151-128
Anmeldung über StudOn

Ort und Zeit der Übung:

Dienstag, 10:15 – 11:45 Uhr, Raum 01.151-128 (bzw. Raum 02.133-128)

Aktuelles:

Unterlagen (Folien, Übungen, sonstige Dateien):

Unterlagen zur Vorlesung und Übung finden sich in sich in StudOn

Lernziele und Kompetenzen:

Schwerpunkt der Vorlesung ist die Vermittlung von Grundlagen moderner Multi- und Many-Core-Architekturen und Abbildungstechniken auf diese. Des Weiteren werden Programmierkenntnisse in den Sprachen Scala und X10 erlernt.

Inhalt:

Der gegenwärtige Trend von Multi-Core-Architekturen mit mehreren Prozessorkernen hin zu Architekturen mit hunderten oder tausenden Prozessoren bietet ein enormes Potential für schnellere, energieeffizientere, kostengünstigere Systeme und vollkommen neue Anwendungen. Auf der anderen Seite ergeben sich aus der steigenden Komplexität und Strukturgrößen im Nanometerbereich erhebliche Herausforderungen, angefangen bei der Technologie, beim Architekturentwurf bis hin zur Programmierung. Systeme basierend auf gemeinsamen Speicher oder zentralverwaltete werden in Zukunft nicht mehr skalieren. Hier Bedarf es neuer Architektur- und Programmierkonzepte, um die Skalierbarkeit zu gewährleisten, sowie Methoden zur Optimierung der Ressourcenauslastung, des Leistungsverbrauchs, der Performance und der Toleranz von Fehlern. Um diese unterschiedlichen Ziele zu erreichen, werden in der Lehrveranstaltung zwei wesentliche Ansätze betrachtet: Ressourcenverwaltung / Ressourcengewahre Programmierung und Domänenspezifisches Rechnen. Die Grundidee der ressourcengewahren Programmierung besteht darin, parallelen Programmen die Fähigkeit zu verleihen, selbstadaptiv zur Laufzeit in Abhängigkeit des Zustands von Ressourcen, Berechnungen auf diese zu verteilen, und nach paralleler Abarbeitung diese wieder frei zu geben. Beim domänenspezifischen Rechnen versucht man die oben genannten Ziele durch Einschränkung und Spezialisierung auf ein bestimmtes Anwendungsgebiet oder Problemfeld zu erreichen.Die Lehrveranstaltung gliedert sich im Wesentlichen in folgende Teile:

  1. Im ersten Teil werden aktuelle parallele Prozessorarchitekturen vorgestellt und nach unterschiedlichen Merkmalen klassifiziert. Außerdem werden gegenwärtige und zukünftige Herausforderungen von Architekturen und deren Programmierung betrachtet.
  2. Im zweiten Teil der Veranstaltung werden Abbildungsmethoden und Ansätze, wie zum Beispiel Invasives Rechnen zur ressourcengewahren Programmierung für Multi- und Many-Core-Architekturen vorgestellt.
  3. Domänenspezifisches Rechnen wird im dritten Teil der Lehrveranstaltung betrachtet. Hierbei werden grundlegende Entwurfsmuster und Ansätze domänenspezifischer Sprachen erörtert und an konkreten Beispielen vertieft.

Vertiefende Literatur und weiterführende Links:

  • J. Hennessy and D. Patterson, Computer Architecture: A Quantitative Approach, 3rd Edition, Morgan Kaufmann, 2003.
  • M. Gschwind, The Cell Broadband Engine: Exploiting Multiple Levels of Parallelism in a Chip Multiprocessor, IBM Research Report, 2006.
  • Ahn et al., Tradeoff between Data-, Instruction-, and Thread-Level Parallelism in Stream Processors, ICS 2007.
  • J. Howard et al., A 48-core IA-32 message-passing processor with DVFS in 45nm CMOS, in IEEE International Solid-State Circuits Conference (ISSCC), 2010, pp. 108-109.
  • T. G. Mattson, M. Riepen, T. Lehnig, P. Brett, W. Haas, P. Kennedy, J. Howard, S. Vangal, N. Borkar, G. Ruhl, and S. Dighe, The 48-core SCC processor: the programmer’s view, in Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis, ser. SC ’10. Washington, DC, IEEE Computer Society, 2010, pp. 1-11.
  • T. Ebi, M. A. Al Faruque, J. Henkel, TAPE: Thermal-Aware Agent-Based Power Economy for Multi/Many-Core Architectures, 27th IEEE/ACM Int’l Conference on Computer-Aided Design (ICCAD’09), pp. 302-309, San Jose, California, USA, November, 2009.
  • A. K. Coskun, T. S. Rosing, K. C. Gross, Temperature Management in Multiprocessor SoCs using Online Learning, DAC, pp. 890-893, 2008.
  • I. Yeo, C. C. Liu, E. J. Kim, Predictive Dynamic Thermal Management for Multicore Systems, DAC, pp. 734-739, 2008.
  • M. D. Powell, M. Gomaa, and T. N. Vijaykumar, Heat-and-Run: Leveraging SMT and CMP to Manage Power Density Through the System, ASPLOS, pp. 260-270, 2004.
  • The X10 programming language
  • Sonderforschungsbereich/Transregio 89 „Invasives Rechnen“
  • J. Teich, Invasive Algorithms and Architectures, it – Information Technology, Oldenbourg Wissenschaftsverlag, vol. 50(5):300-310, 2008.
  • J. Teich, J. Henkel, A. Herkersdorf, D. Schmitt-Landsiedel, W. Schröder-Preikschat, and G. Snelting. Invasive Computing: An Overview. In: Multiprocessor System-on-Chip – Hardware Design and Tool Integration, pages 241-268. Springer, Berlin, Heidelberg, 2011.
  • F. Hannig, S. Roloff, G. Snelting, J. Teich, and A. Zwinkau. Resource-Aware Programming and Simulation of MPSoC Architectures through Extension of X10. In Proceedings of the 14th International Workshop on Software and Compilers for Embedded Systems (SCOPES), pages 48-55, St. Goar, Germany, June 2011, ACM Press.
  • D. Wampler and A. Payne. Programming Scala: Scalability = Functional Programming + Objects, O’Reilly Media, 2009.
  • M. Fowler and R. Parsons. Domain-Specific Languages, Addison-Wesley, 2010.