Automatisierte Parallelisierung mit AutoFutures
- Type:Studienarbeit
- Supervisor:
Dr. Frank Otto
Dipl.-Inform. Korbinian Molitorisz
Dipl.-Inform. Jochen Schimmel - Person in Charge:Jochen Huck
- Links:Links_bearbeiten
-
Multikern-Prozessoren stellen Software-Entwickler vor die Herausforderung, Anwendungen zu parallelisieren, um weitere Leistungssteigerungen zu erreichen. Die Parallelisierung erweist sich jedoch als aufwändig und fehleranfällig. Zum einen müssen parallelisierbare Programmteile identifiziert und oftmals refaktorisiert werden. Zum anderen müssen Zugriffe auf gemeinsame Daten sowie Seiteneffekte berücksichtigt werden, um die Korrektheit des Programms zu gewährleisten. Insbesondere für weniger erfahrene Entwickler ist es daher wünschenswert, den Parallelisierungsprozess zu automatisieren. In dieser Studienarbeit wird ein Konzept entwickelt, mit dem bestehende Java-Anwendungen automatisiert parallelisiert werden können. Mit Hilfe von Programmanalysen werden Datenabhängigkeiten und Seiteneffekte erkannt und somit voneinander „unabhängige“ Programmstellen identifiziert. Anschließend werden die entsprechenden Variablen und Methodenaufrufe auf die von Java 5 bereitgestellten Future- und Callable-Objekte abgebildet, um eine Parallelisierung zu erreichen.