EP-Cache
Die Schere zwischen der CPU-Leistung (zurzeit Faktor 1.5 pro Jahr) und der Speicherzugriffsleistung (Faktor 1.07 pro Jahr) wird immer größer. Der Einsatz eines oder mehrerer Caches, platziert zwischen Hauptspeicher und Prozessor, erlaubt einen wesentlich schnelleren Zugriff auf entsprechende Kopien von Daten aus dem Hauptspeicher. Das erfordert aber, dass Anwendungsprogramme eine immer stärkere Lokalität in Zeit (Daten werden mehrfach benutzt) und Raum (Daten werden sequentiell bearbeitet) aufweisen müssen. Bei einer effektiven Nutzung der Caches kann die Laufzeit eines Programms oft um einen Faktor 6 bis 10 reduziert werden.
Das Projekt EP-Cache hat sich zum Ziel gesetzt, Werkzeuge zu entwickeln, die Nutzer (Programmierer) in ihrem Bestreben nach einer Optimierung bzgl. Cache-Zugriffes ihrer Anwendungen unterstützen sollen. Dazu soll zum einen Monitorwerkzeuge (Hardware-Monitor, Simulator) etwickelt werden, die Cache-Daten messen. Diese werden im Rahmen des Tracings von Programmen aufgezeichnet (Trace-Datei) und können mit Hilfe von Visualisierungswerkzeugen (VAMPIR) dargestellt werden. Intelligente Darstellungsmethoden sollen dem Nutzer helfen Schwachstellen im Programm zu identifizieren und zu verstehen. Für die Optimierung der Programme dient ein interaktives Transformations-Werkzeug, das alle Cache-relevanten Transformationen unterstützt, sowie die Möglichkeit, mit Hilfe von HPF Direktiven die Lokalität der Daten direkt für eine bessere Cache-Nutzung umzusetzen.
Innerhalb des Verbundprojektes (Projektleitung SCAI, FhG) wurden am ZHR drei Bereiche bearbeitet.
- Interaktives Optimierungswerkzeug Goofi:
Schleifentransformationen sind eine gute Möglichkeit, um Quellcode im Bezug auf Cache-Zugriffe zu optimieren. Ihre Anwendung und manuelle Implementierung sind jedoch kompliziert und fehleranfällig. Das Source-To-Source Transformationswerkzeug Goofi wurde entwickelt, um Programmierer durch halbautomatische Anwendung von Schleifentransformationen bei Optimierungen von Fortran-Quellcode zu unterstützen. [mehr] - Tracing von Cache-Zugriffsdaten:
Zum Finden von Cache-Problemen bei einer Anwendung ist es nötig, Daten über das Verhalten der Applikation zu sammeln. Von besonderem Vorteil wäre es, wenn Cache-Probleme direkt einer Stelle im Quellcode und einer Datenstruktur zugeordnet werden könnten. Genau dieses ist mit der Erwieterung des Traceformates VTF3 und der Anbindung an die Monitor-Schnittstelle (Monitoring Request Interface) der Projektpartner der TU München möglich. MRI erlaubt es, einheitlich sowohl an den Hardware-Monitor als auch an den Software-Simulator Anfragen zur Monitorierung zu stellen und die Beobachtungsdaten zu empfangen. Die Daten werden in dann eine Trace-Datei im Vampir-Trace-Format VTF3 abgelegt, um anschliessend mit Vampir analysiert werden zu können. [mehr] - Visualisierung von Cache-Zugriffsdaten mit Bezug auf die erzeugenden Datenstrukturen:
Vampir ist ein - am ZHR entwickeltes- erfolgreiches Werkzeug zur Visualisierung von Trace-Daten. Zur verbesserten Analyse von kritischen Cache-Zugriffen wurden neue Formen der Visualisierung von Cache-Zugriffsdaten im direkten Zusammenhang mit den sie verursachenden Datenstrukturen entwickelt.
Partner
- SCAI, Fraunhofer Gesellschaft, St. Augustin
- Lehrstuhl für Rechnertechnik und Rechnerorganisation, TU München
Assoziierte Partner
Laufzeit
01.03.2002 bis 28.02.2005
Förderung
unter der Vertragsnummer 01IRB04
Publikationen
- L. Barabas, R. Müller-Pfefferkorn, W. E. Nagel and R. Neumann: Tracing the Cache Behavior of Data Structures in Fortran Applications, In Proceedings of the International Conference ParCo 2005, Publication Series of the John von Neumann Institute for Computing (NIC), Volume 33, p. 211-218, ISBN 3-00-017352-8, 2006
- T. Brandes, H. Schwamborn, M. Gerndt, J. Jeitner, K. Kereku, W. Karl, M. Schulz, J. Tao, H. Brunst, W. E. Nagel, R. Neumann, R. Müller-Pfefferkorn, B. Trenkler and H. - C. Hoppe: Monitoring Cache Behavior on Parallel SMP Architectures and Related Programming Tools, Future Generation Computer Systems (Volume 21, Issue 8), pp. 1298-1311
- R. Müller-Pfefferkorn, W. E. Nagel and B. Trenkler: Optimizing Cache Access: A Tool for Source-To-Source Transformations and Real-Life Compiler Tests, To be published in "Euro-Par 2004 Parallel Processing", Proceedings of the 10th International Euro-Par Conference 2004, Pisa, Italy, Aug 31 - Sep 3 2004, Springer-Verlag Berlin Heidelberg New York, Lecture Notes in Computer Science, Volume 3149, pp 72ff.