ThinkMeta ConcurrentTasks ist ein Forschungsprojekt zur wirtschaftlichen Parallelisierung von Software: Es soll sich lohnen, einen Algorithmus auf viele CPU-Kerne zu verteilen, auch wenn seine einzelnen Schritte klein sind.

Das Problem

Eine große Klasse von Algorithmen – Audio- und Videokodierung, Datenkompression, das Nachladen von Spielwelten in Simulationen und Spielen, Graph-Traversierung – ist im Prinzip nebenläufig, in der Praxis aber schwer parallelisierbar. Zerlegt man einen solchen Algorithmus in kleine Aufgaben, die sich häufig abstimmen müssen, kann die Übergabe der Kontrolle von einer Aufgabe zur nächsten so viel kosten wie die eigentliche Arbeit dazwischen. Auf klassischen Betriebssystem-Threads lohnt sich das selten – die Arbeit bleibt auf einem Kern, während der Rest der Maschine untätig ist.

Der Ansatz

ThinkMeta ConcurrentTasks ist eine kooperative Laufzeitumgebung, die diese Aufgaben selbst einplant, ohne bei jedem Wechsel das Betriebssystem zu bemühen, sodass der Wechsel nahezu kostenlos wird. Feingranulare Parallelität wird damit praktikabel – ohne den Algorithmus auf ein anderes Programmiermodell umzuschreiben. Asynchrone Ein- und Ausgabe fügt sich in dasselbe Aufgabenmodell ein.

Warum das zählt

  • Kosten und Energie. Dasselbe Ergebnis auf günstigerer, sparsamerer Mehrkern-Hardware statt auf einem schnellen Kern.
  • Latenz. Was bisher nacheinander lief, kann sich überlappen und verkürzt Antwortzeiten.
  • Wiederverwendung. Die Zerlegung in klar definierte Aufgaben ergibt Komponenten, die sich leichter testen und neu kombinieren lassen.

Status

ThinkMeta ConcurrentTasks befindet sich in aktiver Entwicklung.

Wir suchen First Adopters

Wir suchen Pilotpartner mit rechen- oder latenzkritischen Arbeitslasten, die ThinkMeta ConcurrentTasks an einem echten Problem erproben möchten – zum Beispiel:

  • Game-Engines: Asset-Streaming, Physik- und Kollisionsaufbau
  • medizinische Bildgebung und Signalverarbeitung
  • wissenschaftliche und technische Simulation
  • Echtzeit-Audio und -Video

Wenn das nach Ihrer Arbeitslast klingt, nehmen Sie Kontakt auf.

An unhandled error has occurred. Reload