Motivation
Seit ca. 10 Jahren kann die Taktfrequenz von Mikroprozessoren nicht mehr signifikant gesteigert werden, da die Energiedichte der Prozessoren zu groß würde, um die Hitze effizient abzuführen. Das Resultat ist, dass die Fortschritte im Fertigungsprozess der Mikroprozessoren nicht mehr automatisch zu einer Beschleunigung existierender Software führt, wie das von 1970 bis 2005 der Fall war. Da aber auf Grund der anhaltenden Verkleinerung der Transistoren immer mehr Rechner pro Raumeinheit integriert werden können, rücken Rechenleistungen von einem Exaflop (1 Trillion Operationen pro Sekunde) pro Supercomputer in die Reichweite des Möglichen. Für solche Rechner ist die Steigerung der Energieeffizienz maßgeblich. Das Schlagwort ist: „performance is performance per watt“.
Ziele und Vorgehen
Es ist daher abzusehen, dass die Rechnerlandschaft heterogener wird. Es wird zunehmend Spezialprozessoren geben, die für bestimmte Rechenmodelle besonders energieeffizient arbeiten. Das stellt den Programmierer vor große Probleme: Eine performante Implementierung eines Algorithmus für eine Architektur, kann sich von einer für eine andere Architektur erheblich unterscheiden. Die im Hochleistungsrechnen verwendeten Codes sind so komplex, dass man sie aber nicht für jede neue Architektur immer wieder neu entwickeln kann. Dies ist schlicht zu zeit- und kostenaufwendig. Dazu kommt, dass existierende Programmiersprachen kaum für die heterogene Rechnerlandschaft der Zukunft geeignet sind. Eine vielversprechende Lösung dieses Problems sind domänenspezifische Sprachen (DSLs). Hierbei erlaubt man dem Programmierer, sich geeignete Konstrukte für seine Programmiersprache selbst zu definieren. Diese kann er dann nutzen, um den Algorithmus in mehrere Abstraktionsschichten zu untergliedern, um somit die Anpassung auf eine spezielle Zielarchitektur von anderen Teilen des Codes zu isolieren. Dadurch kann er große Teile des Codes unabhängig von der jeweiligen Architektur entwickeln und für neue Architekturen wiederverwenden. Hierdurch wird die Produktivität des Programmierers und die Leistungsfähigkeit des Codes erheblich gesteigert.
Innovationen und Perspektiven
Das Projekt „Metacca“ baut auf einem im BMBF-Projekt ECOUSS entwickelten Rahmenwerk (AnyDSL) auf, das die einfache Erstellung von DSLs ermöglicht. Dazu wird das Rahmenwerk um mehrere, für das Hochleistungsrechnen wichtige Fähigkeiten erweitert. Die Ergebnisse sowie die allgemeine Anwendbarkeit des Ansatzes werden durch zwei Anwendungen aus komplett unterschiedlichen Bereichen demonstriert: die Hochleistungs-Beleuchtungssimulation zur realitätsgetreuen Visualisierung z. B. von Fahrzeugen sowie durch Probleme in der Bioinformatik bei der Simulation biologischer Systeme.