Ein Team des MIT Computer Science and Artificial Intelligence Laboratory (CSAIL) und der Stony Brook University hat ein System entwickelt, um das Optimieren dynamischer Programmierung für Multicore-Chips zu erleichtern. [...]
„Bellmania“ braucht dazu nur eine relativ allgemein gehaltene Beschreibung der gewünschten Funktion. Das könnte beispielsweise für Ökonomen und Biologen interessant sein. Es gibt eine Klasse mathematischer Optimierungsaufgaben, die im Prinzip aus vielen gleichartigen Teilproblemen besteht. Für eben diese bietet sich die vom Mathematiker Richard Bellman vorgeschlagene dynamische Programmierung an. Dabei werden Ergebnisse von Teilberechnungen zwischengespeichert, um sie wieder zu nutzen. Das macht Programme schneller. „In der Praxis ist die Beschleunigung nicht so hoch wie erwartet, weil der Speicherzugriff langsam ist“, sagt Shachar Itzhaky, Informatik-Postdoc am CSAIL. Das ließe sich weitgehend vermeiden, wenn Berechnungen, die einen Zwischenwert brauchen, möglichst zeitgleich ausgeführt werden.
Eben dafür wären Multicore-Prozessoren eigentlich prädestiniert. Ein Programm entsprechend zu optimieren, ist aber schwer, der resultierende Code oft zehn Mal so umfangreich wie das Original. Nicht-Informatiker können solche Optimierungen meist gar nicht selbst vornehmen. Ihnen soll das nach Bellman benannte System helfen. Denn es benötigt nur eine relativ einfache Beschreibung dessen, was ein Programm macht. Dann setzt Bellmania auf eine rekursive Methode, um das Programm möglichst so immer feiner zu unterteilen, dass Teilberechnungen möglichst speichereffizient erfolgen können.
Experten-Effizienz
Um zu zeigen, dass das neue System funktioniert, hat das Team das System mit mehreren Algorithmen, die dynamische Programmierung nutzen, für die Verwendung von Muticore-Chips parallelisieren lassen. Diesen Experimenten zufolge liefert Bellmania nicht nur Code, der drei bis elf Mal schneller läuft als jener, der mit bisherigen automatisierten Ansätzen für die Parallelisierung erstellt wurde. Die Effizienz des Bellmania-Codes entspräche im Normalfall sogar dem, was Informatiker in mühevoller Detailarbeit zustande bringen.
Davon, dass Bellmania eine effiziente Multicore-Optimierung ohne wirklich tiefgehende Programmierkenntnisse verspricht, zeigt sich David Bader, Informatik-Professor am Georgia Institute of Technology, beeindruckt: „Von Bioinformatik über Proteomik, Cyber-Security, Sortierung, diverse Zeitplanungsaufgaben bis hin zum Verwalten von Netz-Traffic – es gibt unzählige Beispiele echter Algorithmen in der wirklichen Welt, die einen effizienteren Code erfordern.“
Be the first to comment