Software-Framework verdoppelt die Rechner-Geschwindigkeit und halbiert den Energieverbrauch
Die Idee scheint völlig logisch. Schon jetzt ist es so, dass die meisten modernen Computer, von Smartphones und PCs bis zu Servern in Rechenzentren, Grafikprozessoren (GPU) und Hardwarebeschleuniger für KI und maschinelles Lernen enthalten. Das trifft etwa auf die Tensor Cores auf Nvidia-GPU, die Tensor Processing Units (TPU) auf Google-Cloud-Servern, die Neural Engines auf Apple iPhones oder die Edge TPU auf Google-Pixel-Telefonen zu.
Einfache Idee: Alle Prozessoreinheiten arbeiten gleichzeitig
Bislang verarbeitet jede dieser Komponenten Informationen separat. Dabei werden die Informationen dann von einer Verarbeitungseinheit zur nächsten geleitet. Diese Stapelverarbeitung ist natürlich der Engpass im Datenfluss, weil die nicht aktiven Komponenten während der Verarbeitung durch eine andere Prozessoreinheit weitestgehend im Leerlauf bleiben.
In einer neuen Studie zeigen Forscher:innen an der US-amerikanischen University of California Riverside (UCR) eine Methode, bei der die verschiedenen Komponenten gleichzeitig arbeiten. So könne die Verarbeitungsgeschwindigkeit erheblich erhöht und zudem der Energieverbrauch gesenkt werden.
„Man muss keine neuen Prozessoren hinzufügen, weil sie bereits vorhanden sind“, so Studienmitautor Hung-Wei Tseng, außerordentlicher Professor für Elektro- und Computertechnik an der UCR. Ihr neues System bezeichnen die Forscher:innen als simultanes und heterogenes Multithreading (SHMT).
Standardkomponenten mit neuem Software-Antrieb
SHMT nutzt mehrere Komponenten, indem es die zu erledigenden Rechenfunktionen unter ihnen aufteilt und so eine Parallelverarbeitung einführt. Um ihr Konzept zu testen, bauten die Forscher:innen ein System mit der Art von Chips und Verarbeitungsleistung, wie sie in jedem neueren Smartphone zu finden sind. Später nahmen sie einige Änderungen vor, um die Tauglichkeit des Ansatzes in Rechenzentren zu testen.
Dabei verwendeten sie Standardkomponenten, die sie über die integrierte PCIe-Schnittstelle miteinander verbanden. Getestet wurde unter Ubuntu Linux 18.04. Für die Tests wurden Benchmark-Apps verwendet, was die Aussage über die Alltagstauglichkeit etwas einschränkt.
Jedenfalls zeigt sich bei dieser Art Tests, dass das Software-Framework einen bis zu 1,95-fachen Geschwindigkeitszuwachs und eine Senkung des Energieverbrauchs um 51 Prozent im Vergleich zur unmodifizierten Vorgehensweise brachte. Das könnte deutliche Auswirkungen auf den Markt haben, glauben die UCR-Forscher:innen.
Schnellere, billigere und stromsparende Produkte könnten die Folge sein
Zum einen könnten bestehende Produkte eine immense Leistungssteigerung erzielen, zum anderen könnte das Konzept aber auch genutzt werden, um gleiche Leistungen wie bisher mit wesentlich günstigeren Komponenten zu erzielen. In Rechenzentren könnte auch der Aspekt des reduzierten Energieverbrauchs eine große Rolle spielen, weil so die Kohlenstoffemissionen und der Wasserverbrauch gesenkt werden könnten.
Das Produkt ist noch nicht marktreif und benötigt weitere Forschung. Ihre Erkenntnisse haben die Forscher:innen auf der Micro 2023 Anfang November 2023 im kanadischen Toronto vorgestellt.
Wow Forscher haben entdeckt das Parallelisierung auf moderner Hardware mit Parallelen CPU Cires sinnvoll ist… was für ein schlechter und nichts sagender Artikel.
Das Thema ist ja ganz toll und wichtig, aber: Hört bitte auf mit diesem Gendern. Ich komme langsam einen Knoten im Kopf, wenn man so unorthodoxe Texte verfasst. Und ausgesprochen werden nur Frauen damit gemeint, da man ja viele Genderfans diese „Denksekunde“ weglassen.
Liebe Grüße
Ich bin verwirrt – was will der Artikel mir sagen? Dass man im Idealfall mit Parallelverarbeitung „schneller“ ist als mit linearen Prozessen? Das wissen wir doch aber seit den 1960er Jahren.
Bekannt ist doch aber auch, dass Parallel-Verarbeitung zusätzliche „Arbeit“ bedeutet (overhead) und eben nicht immer schneller ist. Es kommt auf den Aufgabenfall an. Und dann, wenn ein Vorgang von einem Ergebnis eines vorigen Vorgangs abhängt, kann man oft GAR NICHT parallel arbeiten.
GEMEINT ist hier vermutlich, dass bei NORMALERWEISE PARALLEL laufenden Funktionen heutige Systeme selten mehrere „Cores“ einsetzen. Das ist allerdings dann auch nicht ganz korrekt, manche Betriebssysteme können das – unterschiedlich gut. Aber auch hier gibt es ganz andere Bottlenecks: Ram-Zugriffe, Peripherie-Kontrolle, Prioritäten.
Kurz, dem Artikel scheint mir jedes, aber auch JEDES Hintergrundwissen zu fehlen.
Das ist doch als wissenschaftliches Paper veröffentlicht? Wäre schön, wenn es als Open Source entwickelt wird und irgendwann in den Linux Kernel einfließt.
Jede neue Hyperthreading-Tevhnologie verspricht eine Verdopplung der Geschwindigkeit.
Aber diese Wissenschaftler haben nun mal oft einfach nur das im Auge. Am Ende der Chain steht dann eine marginale Verbesserung und eine unbekannte Anzahl neuer Sicherheitslücken. (Meltdown etc.)
Dann wird da wieder rumgepatcht und man hat die marginale Geschwindigkeitsverbesserung so gut wie verloren.
Programmierer selbst sind für die Performance und Sicherheit von Programmen verantwortlich. Und im Sinne der Sicherheit kann nun mal nicht alles vorausberechnet, -ausgeführt oder gemultithreaded werden.
Ich kann wetten, dass moderne Betriebssysteme wie Fuchsia (und ein Stück auch ältere wie die iOS-Familie) mit geringem Basisressourcenverbrauch es besser selbst entscheiden, dass nicht ein riesiger Kernel einen Prozess volleinnimt, sondern dass Prozesse sicher unterteilt werden und man ARM ausnutzen kann.
Vielleicht haben wir in Zukunft eine 16-32 Thread ARM CPU, der effizient mit 2GHz läuft, und dazu unterteilte extraressourcen wie 4-6GHz APU, sowie GPU/TPU, je nachdem wie etwas benötigt wird.
Dann können diese Performanceintensiven Single Thread Prozesse schnell laufen, und alles andere effizient.
ARM kann ich mir gut auf modernen Servern vorstellen. Ohne komische SMT-Zwischenlösungen.
Das ist ja Wahnsinn. Bin seit > 35 Jahre in Computerindustrie, speziell hochperformante Softwarelösungen, tätig. Da muss ich was verpasst habe… Was ist Pipeline, Parallelisierung, Multithreading, Multichannel, Hardware-Software-Codesign? Die Ausbildung künftiger Informatiker und Entwickler brauchte eine dringende Reform! Ganz zu schweigen die von den deutschen Journalisten :)
Vielleicht hättet ihr den Artikel doch besser von KI schreiben lassen……..KI weiß nämlich, dass man das Rad nicht neu erfinden muss sondern nur einen neuen Namen. Wenn der dann noch woke ist…… alles im grünen Bereich.
Ich programmiere oft aus Faulheit oder Zeitmangel nicht Multithreading.
Meist erst im Nachgang stelle ich dann doch noch Programmteile um, wenn es sinnvoll ist…
Ich bin mir allerdings jetzt auch nicht ganz sicher, was genau gemeint ist?
Was für Benchmarks wurden verwendet?
Wurde nur Ubuntu angepasst oder die Benchmark Apps?
SMT hat ja in Vergangenheit immer wieder Problem verursacht und wird von Intel eingestampft:
https://www.golem.de/news/arrow-lake-s-intel-soll-hyperthreading-aufgeben-2401-181403.html
Oft liest man von tollen Errungenschaften und nach Jahren denkt man sich was ist den aus xy geworden? Nichts…