TornadoVM, Teil 2: Parallelisieren im großen Maßstab

Der TornadoVM-Profiler liefert die nötigen Kennzahlen, um die Performance von parallelem Code zu steigern.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
Lesezeit: 17 Min.
Von
  • Jürgen Schuck
Inhaltsverzeichnis
Mehr zum Thema Softwareentwicklung

Profiler sind wichtige Tools zur Analyse von Laufzeitverhalten: Sie spüren Engpässe auf und helfen, parallel ausgeführten Code zu optimieren. Der zweite Teil des Tutorials zeigt den Umgang mit dem TornadoVM-Profiler und wie man Apps auf mehreren Beschleunigern gleichzeitig ausführt. Ein Raytracer für Bewegtbilder schließt das Tutorial mit einer praktischen Anwendung von TornadoVM ab.

Jürgen Schuck

Jürgen Schuck ist Mitarbeiter der Materna Information & Communications SE und als Projektleiter im Bereich Cloud Technology Consulting tätig.

Der erste Teil des Tutorials hat erläutert, wie sich eine Java-App mit wenig Aufwand parallelisieren lässt. Im einfachsten Fall sind dazu nur einige Annotationen und API-Funktionen erforderlich. TornadoVM erzeugt daraus automatisch Kernels für die konfigurierten Beschleuniger und verbessert damit ohne weiteres Zutun bereits deutlich die Performance.

Komplexe Programme mit mehreren Kernels, die möglicherweise aufeinander aufbauend sequenziell auszuführen sind, erreichen allerdings mit den bisher gezeigten einfachen Methoden nicht immer die maximale Performance. Die Ursachen dafür liegen häufig bei den Buffern für Daten und Ergebnisse sowie deren Übertragungszeiten zwischen Host und Beschleuniger.