You are in the main area:Organization
Headerimage for: ECOUSS

ECOUSS

Effiziente und offene Compiler Umgebung für Semantisch annotierte parallele Simulationen

BMBF HPC-013
Zeitraum: 2011-05-01 bis 2014-04-30

Im Gegensatz zur bisherigen Entwicklung auf dem Prozessormarkt erhöht sich die Rechenfrequenz eines einzelnen Kerns eines Mehrkernprozessors kaum mehr. Stattdessen gehen die Prozessorhersteller dazu über mehrere (viele), parallel arbeitende Kerne auf einem Chip zu integrieren – die „Mehrkern-Prozessoren“. Das bedeutet aber, dass Softwareentwickler nicht mehr, wie bisher, sich auf die Fortschritte der Halbleitertechnik verlassen können, um die Leistung ihrer Programme zu erhöhen, sondern stattdessen die Parallelität des Systems nutzen müssen.

Dies stellt einen fundamentalen Wandel der Informatik-Landschaft dar, und insbesondere der vorherrschenden Programmiermodelle, welche primär sequentiell orientiert sind. Aber auch auf der Basis von parallelen Erweiterung (MPI, OpenMP etc.) stellen die neuen Systeme kaum überwindbare Herausforderungen an den Entwickler. Insbesondere zeigt sich dabei, dass die Skalierbarkeit der Hardware, die der Software bereits überflogen hat – die von Amdahl aufgewiesene Grenzen stellen dabei noch eine optimistische Abschätzung dar, da zusätzlicher Overhead dabei ignoriert wird. Zukünftige Entwickler stehen also mehr denn je vor dem Problem, die Nebenläufigkeit und Parallelität ihrer Programme zu erhöhen.

Programmiermodelle sind dabei direkt durch die Fähigkeiten des Compilers bestimmt, welcher das Bindeglied zwischen Programmierer und Maschine darstellt. Er wandelt das Programm in eine Form um, die von der Maschine ausführbar ist. Die üblichen, weitverbreiteten Übersetzer behandeln dabei die hoch-parallele Hardware aber nur unzureichend, da sie immer noch mit den sequentiellen Programmiersprachen von gestern arbeiten. Auf der anderen Seite, berücksichtigen Hardware-spezialisierte Übersetzer kaum höherwertige Annotationen und binden den Code fix an eine spezifische Infrastruktur. Automatisierte Parallelisierung in einer Weise, die immer noch effizient die Hardware zu nutzen weiß ist dabei nahezu ein Ding der Unmöglichkeit – von Portabilität einmal ganz zu schweigen.

Um Portierbarkeit und Effizienz zu erhöhen, verfolgt ECOUSS einen komplett neuen Ansatz, der Analyse, Übersetzung und Optimierung als ganzheitlichen Prozess, und nicht als Sequenz von Aktionen ansieht. ECOUSS stützt dabei auf drei Hauptpfeiler:

(1) Typische parallele Programmiermuster, die zwar von Experten bei der Programmierung verwendet, aber von keinem derzeitigen Compiler unterstützt werden, werden nun als Spracherweiterung angeboten. ECOUSS erlaubt dem Programmierer die Programmiersprache selbst durch solche Konstrukte zu erweitern.

(2) Abstraktionen von Eigenschaften der Zielhardware werden dem Programmierer zur Verfügung gestellt. Er kann so die Eigenschaften von Hochleistungs-Hardware speziell berücksichtigen, ohne die Portabilität des Codes zu stark zu beeinträchtigen.

(3) Integration des Nutzers in die Übersetzungsschritte, so dass dieser nicht nur in die Transformation eingreifen kann, sondern auch Rückmeldung über die Ergebnisse der gewählten Optimierungsschritte erhält. Der Nutzer kann so auch die Optimierungsziele (z.B. Effizienz vs. Portierbarkeit) beeinflussen.
Dabei greift ECOUSS auf die Expertise von HPC Software- und Hardware-Entwicklern und deren Strategien zur Optimierung von Code in verschiedenen Stadien der Übersetzung zurück.
Das Projekt verfolgt dabei vollkommene Offenheit der Module, d.h. sowohl der Plattform selber (basierend auf LLVM), als auch und insbesondere der Transformationsstrategien und der Spracherweiterungsdefinition. Auf diese Weise erlaubt ECOUSS die schnelle und effiziente Erweiterung der Plattform für weitere Anwendungsfälle und Optimierungsstrategien.

Projektpartner

  • Höchstleistungrechenzentrum Stuttgart (HLRS), D
  • Universität des Saarlandes, Intel Visual Computing Institut (IVCI), D
  • Deutsches Forschungszentrum für Künstliche Intelligenz GmbH (DFKI), D
  • Universität Karlsruhe, Karlsruher Institut für Technologie (KIT), D
  • Cray Computer Deutschland GmbH (CRAY), D

Assoziierte Partner

  • Realtime Technology (RTT), D
  • Böhringer Ingelheim GmbH & Co. KG (BI), D

Für mehr Informationen, kontaktieren Sie Lutz Schubert oder schauen Sie auf der Projektwebseite vorbei: http://ecouss.dfki.de