Project Details
Projekt Print View

Avoiding of Redundant Computations in Simulation Parameter Studies by Memoization

Subject Area Security and Dependability, Operating-, Communication- and Distributed Systems
Term from 2015 to 2020
Project identifier Deutsche Forschungsgemeinschaft (DFG) - Project number 283852788
 
Final Report Year 2020

Final Report Abstract

Für die Entwicklung und Optimierung von Kommunikationssystemen sind Simulationen unverzichtbar. Im Rahmen von Parameterstudien wird ein Modell des betrachteten Systems vielfältig in unterschiedlichen Konfigurationen simuliert, um frühzeitig Aussagen über das Verhalten des untersuchten Systems zu erlangen. Die Laufzeit steigt mit der Komplexität des Modells und der Größe des zu simulierenden Netzwerks im Allgemeinen stärker als linear und wird deshalb oft zum kritischen Flaschenhals für Forschung und Entwicklung. Bislang wurde die Simulationszeit primär durch mehr Rechenleistung (zusätzliche Prozessorkerne und verteilte parallele Simulation) reduziert. Das theoretische Optimum wird hierbei bereits in vielen Fällen nahezu erreicht. Um trotzdem bei stetig steigender Modellkomplexität weitere Verbesserungen vornehmen zu können, müssen grundlegend neue Ansätze zur Reduktion der Simulationslaufzeit gefunden werden. Bereits in Vorstudien dieses Projekts sowie aufgrund langjähriger Erfahrung mit der Simulation von Netzwerken konnten wir beobachten, dass in Parameterstudien oft viele komplexe Berechnungen wiederholt durchgeführt werden, was eigentlich überflüssig ist. Diese wurden bislang leider nicht automatisch erkannt. Hieraus leitet sich die Forschungsfrage dieses Vorhabens ab: Können redundante Berechnungen in Parameterstudien automatisch erkannt und vermieden werden? Falls ja, bis zu welchem Grad? Diese Laufzeitreduktion soll orthogonal bzw. ergänzend zur Parallelisierung erfolgen und bietet ein großes Optimierungspotential, um bei gleicher Rechenleistung noch komplexere und genauere Simulationsmodelle untersuchen zu können. Unser Ansatz zur Vermeidung redundanter Berechnungen basiert auf dem Konzept der Memoisierung (englisch: Memoization). Hierbei werden Ergebnisse einer Berechnung in einem Ergebnis-Cache zwischengespeichert und bei späterem Bedarf direkt verwendet. Dies kann manuell erfolgen, muss dann aber für jedes Simulationsmodell individuell umgesetzt werden; das ist mit hohem Aufwand für die Entwickler verbunden. Ziel dieses Vorhabens war daher die Untersuchung von Konzepten zur automatisierten Memoisierung. Im Rahmen des Projekts gelang es uns, zu demonstrieren, dass selbst die größeren Herausforderungen, die Eingabeprogramme zu bieten haben können (insbesondere die nahezu beliebige Benutzung von Zeigern zur Adressierung von Ein- und Ausgaben der zu memoisierenden Berechnung), im Grundsatz adressierbar sind. Limitierungen ergeben sich jedoch vor allem dann, wenn während der Memoisierung unentscheidbare Probleme (z. B. durch Aliasing) entschieden werden mussten. Es ist unserem Ansatz hierbei allerdings möglich, das Auftreten einer derartigen Limitierung zu erkennen und die Memoisierung abzubrechen und nur im sicheren Fall durchzuführen. Des weiteren gelang es uns, mittels Abschätzungen von Programmlaufzeiten auf Basis einer Parameterstudie die vielversprechendste Berechnung für die Memoisierung zu identifizieren. Somit lässt sich ein vollautomatisches Werkzeug konstruieren, dass die Memoisierungsblöcke erkennt und optimiert. Auch eine Kombination mit Parallelisierung ist möglich, so dass es uns gelang die Simulationen einer beispielhaften Parameterstudie auf einem 12-Kern-System und den Faktor 600 zu beschleunigen.

Publications

 
 

Additional Information

Textvergrößerung und Kontrastanpassung