Pröll, Konrad M.Becker, Michael2019-10-142019-10-142018978-3-88579-448-6https://dl.gi.de/handle/20.500.12116/28984Die Optimierung von Stencil-Codes ist eine zentrale Herausforderung im Bereich des Hochleistungsrechnen. Die meisten Ansätze fokussieren sich entweder darauf, diese zur möglichst effizient zur Berechnung auf groSSen Parallelrechenstrukturen zu parallelisieren oder die möglichst effiziente Ausnutzung des Caches, um die Leistung zu steigern. Viele Stencil-Codes nutzen einfache Arrays zur Speicherung der Matrix. Komplexere Datenstrukturen erhöhen die Rechenzeit des Stencil-Codes dadurch, dass die Berechnung der Speicheradresse einer Zelle deutlich komplizierter wird und sogar bedingte Sprünge enthält. In dieser Arbeit wird ein Ansatz vorgeschlagen, wie aus bereits kompilierten Stencil-Codes zur Laufzeit das Speicherlayout analysiert werden kann und das Programm durch partielle Evaluation optimiert wird. Im Gegensatz zu konventioneller partieller Evaluation wird hierbei nicht für konstante Argumente, sondern für Wertebereiche, in denen sich ein Argument befindet, spezialisiert. Durch diese Methode können die Leistungseinbußen merklich reduziert werden.deProgrammoptimierungPartielle EvaluationStencil-CodesHigh Performance ComputingUmschreiben auf BinärebeneAnpassung von Stencil-Codes zur Laufzeit mit Hilfe von Umschreiben auf Binärebene für dynamisch bestimmtes SpeicherlayoutText/Conference Paper1614-3213