ThinkMeta ConcurrentTasks ist eine C++-Laufzeitumgebung, die feingranulare Parallelität lohnenswert macht: Sie führt viele kleine Aufgaben auf wenigen Threads mit nahezu kostenlosem Wechsel aus, sodass ein Algorithmus jeden Kern nutzen kann, ohne auf ein neues Programmiermodell umgeschrieben zu werden. Die Wissenschaft dahinter beschreibt die Forschung.

Vier Encoder als Nachweis

Was feingranulare Parallelität bringt, zeigen vier Encoder auf Basis von ThinkMeta ConcurrentTasks. Jeder ist eine C++-Portierung eines bekannten Referenz-Encoders, erzeugt Byte für Byte dieselbe Ausgabe und verteilt die Arbeit an einer einzigen Datei auf alle Kerne. Das ist schwierig, weil diese Encoder von Grund auf sequenziell arbeiten: Jeder Frame und jeder Block hängt vom Zustand ab, den der vorherige hinterlassen hat.

ctLame

14,1×

MP3 · bit-identisch zu LAME 4.0

45 Stunden CD-Audio in 83 s statt 19½ Minuten – fast 2.000-fache Echtzeit.

ctJpeg

6,9×

JPEG · bit-identisch zu jpegli

Ein 39-Megapixel-Foto in 0,11 s – mit den kleineren Dateien von jpegli und bei großen Bildern 3,4- bis 4,7-mal so schnell wie libjpeg-turbo.

ctDeflate

4,9×

gzip · bit-identisch zu libdeflate 1.26

Eine 1-GB-Datei mit 303 MB/s auf Stufe 9, gestreamt mit asynchroner Ein-/Ausgabe – eine 5,2-GB-Datei braucht weniger als 150 MB Speicher.

ctOpus

4,4×

Opus · bit-identisch zu opusenc

Auf maximaler Komplexität doppelt so schnell wie opusenc auf minimaler. Live: 1.024 Streams in Echtzeit, je eine Task, ohne verpasste Deadline.

Dieselben Bits. Ein Bruchteil der Zeit.

Wir suchen First Adopters

Wir starten ein First-Adopter-Programm für Teams, die ThinkMeta ConcurrentTasks an einer echten, rechen- oder latenzkritischen Arbeitslast einsetzen möchten – Game-Engines, medizinische Bildgebung und Signalverarbeitung, Simulation, Echtzeit-Medien – und die erste Version mitgestalten wollen. Nehmen Sie Kontakt auf.

Status

ThinkMeta ConcurrentTasks befindet sich in aktiver Entwicklung; im Fokus steht derzeit die Windows-Version.

Zeitplan

  • Windows-Version – Ende 2027
  • Embedded-Systeme – Ende 2028
  • Xbox und PlayStation – Ende 2029

Zieltermine.

An unhandled error has occurred. Reload