Um die Effizienz von Rechenzentren zu verbessern, werden häufig mehrere Speichergeräte über ein Netzwerk zusammengefasst, sodass viele Anwendungen sie gemeinsam nutzen können. Aber selbst beim Pooling bleibt die Gerätekapazität aufgrund der Leistungsunterschiede zwischen den Geräten weiterhin in erheblichem Maße ungenutzt.

MIT-Forscher haben nun ein System entwickelt, das die Leistung von Speichergeräten steigert, indem es drei Hauptquellen der Variabilität gleichzeitig behandelt. Ihr Ansatz führt zu erheblichen Geschwindigkeitsverbesserungen im Vergleich zu herkömmlichen Methoden, die jeweils nur eine Variabilitätsquelle angehen.

Das System verwendet eine zweistufige Architektur mit einem zentralen Controller, der umfassende Entscheidungen darüber trifft, welche Aufgaben jedes Speichergerät ausführt, und lokalen Controllern für jede Maschine, die Daten schnell umleiten, wenn das Gerät Probleme hat.

Die Methode, die sich in Echtzeit an wechselnde Arbeitslasten anpassen lässt, erfordert keine spezielle {Hardware}. Als die Forscher dieses System bei realistischen Aufgaben wie KI-Modelltraining und Bildkomprimierung testeten, verdoppelte es die Leistung herkömmlicher Ansätze nahezu. Durch die intelligente Verteilung der Arbeitslasten mehrerer Speichergeräte kann das System die Gesamteffizienz des Rechenzentrums steigern.

„Es besteht die Tendenz, mehr Ressourcen für die Lösung eines Issues einzusetzen, aber das ist in vielerlei Hinsicht nicht nachhaltig. Wir wollen in der Lage sein, die Langlebigkeit dieser sehr teuren und kohlenstoffintensiven Ressourcen zu maximieren“, sagt Gohar Chaudhry, ein Doktorand der Elektrotechnik und Informatik (EECS) und Hauptautor von a Papier über diese Technik. „Mit unserer adaptiven Softwarelösung können Sie immer noch viel Leistung aus Ihren vorhandenen Geräten herausholen, bevor Sie sie wegwerfen und neue kaufen müssen.“

Chaudhry wird bei dem Artikel von Ankit Bhardwaj unterstützt, einem Assistenzprofessor an der Tufts College; Zhenyuan Ruan PhD ’24; und der leitende Autor Adam Belay, außerordentlicher Professor der EECS und Mitglied des MIT-Labors für Informatik und künstliche Intelligenz. Die Forschung wird auf dem USENIX Symposium on Networked Methods Design and Implementation vorgestellt.

Nutzung ungenutzter Leistung

Stable-State-Laufwerke (SSDs) sind leistungsstarke digitale Speichergeräte, die es Anwendungen ermöglichen, Daten zu lesen und zu schreiben. Beispielsweise kann eine SSD große Datensätze speichern und Daten schnell an einen Prozessor senden, um ein Modell für maschinelles Lernen zu trainieren.

Das Zusammenfassen mehrerer SSDs, damit viele Anwendungen sie gemeinsam nutzen können, verbessert die Effizienz, da nicht jede Anwendung zu einem bestimmten Zeitpunkt die gesamte Kapazität einer SSD nutzen muss. Allerdings erbringen nicht alle SSDs die gleiche Leistung und das langsamste Gerät kann die Gesamtleistung des Swimming pools einschränken.

Diese Ineffizienzen entstehen durch die Variabilität der SSD-{Hardware} und der von ihnen ausgeführten Aufgaben.

Um diese ungenutzte SSD-Leistung zu nutzen, haben die Forscher Sandook entwickelt, ein softwarebasiertes System, das drei Hauptformen leistungsbeeinträchtigender Variabilität gleichzeitig bekämpft. „Sandook“ ist ein Urdu-Wort, das „Field“ bedeutet und „Aufbewahrung“ bedeutet.

Eine Artwork von Variabilität wird durch Unterschiede im Alter, Grad der Abnutzung und Kapazität von SSDs verursacht, die möglicherweise zu unterschiedlichen Zeiten von mehreren Anbietern gekauft wurden.

Die zweite Artwork von Variabilität ist auf die Nichtübereinstimmung zwischen Lese- und Schreibvorgängen zurückzuführen, die auf derselben SSD stattfinden. Um neue Daten auf das Gerät zu schreiben, muss die SSD einige vorhandene Daten löschen. Dieser Vorgang kann das gleichzeitige Lesen oder Abrufen von Daten verlangsamen.

Die dritte Quelle der Variabilität ist die Rubbish Assortment, ein Prozess zum Sammeln und Entfernen veralteter Daten, um Speicherplatz freizugeben. Dieser Prozess, der den SSD-Betrieb verlangsamt, wird in zufälligen Intervallen ausgelöst, die ein Rechenzentrumsbetreiber nicht kontrollieren kann.

„Ich kann nicht davon ausgehen, dass sich alle SSDs während meines gesamten Bereitstellungszyklus gleich verhalten. Selbst wenn ich ihnen allen die gleiche Arbeitslast gebe, werden einige von ihnen Nachzügler sein, was den Nettodurchsatz, den ich erreichen kann, beeinträchtigt“, erklärt Chaudhry.

International planen, lokal reagieren

Um alle drei Variabilitätsquellen zu bewältigen, verwendet Sandook eine zweistufige Struktur. Ein globaler Zeitplan optimiert die Aufgabenverteilung für den gesamten Pool, während schnellere Planer auf jeder SSD auf dringende Ereignisse reagieren und Vorgänge von überlasteten Geräten weg verlagern.

Das System überwindet Verzögerungen durch Lese-/Schreibstörungen, indem es rotiert, welche SSDs eine Anwendung zum Lesen und Schreiben verwenden kann. Dies verringert die Wahrscheinlichkeit, dass Lese- und Schreibvorgänge gleichzeitig auf demselben Pc erfolgen.

Sandook stellt außerdem die typische Leistung jeder SSD vor. Anhand dieser Informationen erkennt es, wann die Rubbish Assortment den Betrieb wahrscheinlich verlangsamt. Sobald es erkannt wird, reduziert Sandook die Arbeitslast auf dieser SSD, indem es einige Aufgaben umleitet, bis die Speicherbereinigung abgeschlossen ist.

„Wenn diese SSD die Speicherbereinigung durchführt und die gleiche Arbeitslast nicht mehr bewältigen kann, möchte ich ihr eine geringere Arbeitslast geben und die Dinge langsam wieder hochfahren. Wir wollen den optimalen Punkt finden, an dem sie noch etwas Arbeit leistet, und diese Leistung nutzen“, sagt Chaudhry.

Die SSD-Profile ermöglichen es dem globalen Controller von Sandook außerdem, Arbeitslasten gewichtet zuzuweisen, wobei die Eigenschaften und die Kapazität jedes Geräts berücksichtigt werden.

Da der globale Controller das Gesamtbild sieht und die lokalen Controller spontan reagieren, kann Sandook gleichzeitig Formen der Variabilität verwalten, die über verschiedene Zeitskalen auftreten. Beispielsweise kommt es plötzlich zu Verzögerungen bei der Speicherbereinigung, während sich die durch Abnutzung verursachte Latenz über viele Monate hinweg aufbaut.

Die Forscher testeten Sandook auf einem Pool von 10 SSDs und bewerteten das System anhand von vier Aufgaben: Ausführen einer Datenbank, Trainieren eines Modells für maschinelles Lernen, Komprimieren von Bildern und Speichern von Benutzerdaten. Sandook steigerte den Durchsatz jeder Anwendung im Vergleich zu statischen Methoden um 12 bis 94 Prozent und verbesserte die Gesamtauslastung der SSD-Kapazität um 23 Prozent.

Das System ermöglichte es SSDs, 95 Prozent ihrer theoretischen Maximalleistung zu erreichen, ohne dass spezielle {Hardware} oder anwendungsspezifische Updates erforderlich waren.

„Unsere dynamische Lösung kann mehr Leistung für alle SSDs freischalten und sie wirklich an ihre Grenzen bringen. Bei dieser Größenordnung zählt wirklich jedes bisschen Kapazität, das man einsparen kann“, sagt Chaudhry.

In Zukunft wollen die Forscher neue Protokolle integrieren, die auf den neuesten SSDs verfügbar sind und den Betreibern mehr Kontrolle über die Datenplatzierung geben. Sie möchten außerdem die Vorhersagbarkeit von KI-Workloads nutzen, um die Effizienz von SSD-Vorgängen zu steigern.

„Flash-Speicher ist eine leistungsstarke Technologie, die modernen Rechenzentrumsanwendungen zugrunde liegt, aber die gemeinsame Nutzung dieser Ressource über Workloads mit sehr unterschiedlichen Leistungsanforderungen bleibt eine herausragende Herausforderung. Diese Arbeit bringt den Weg mit einer eleganten und praktischen, einsatzbereiten Lösung deutlich voran und bringt Flash-Speicher seinem vollen Potenzial in Produktions-Clouds näher“, sagt Josh Fried, Softwareentwickler bei Google und künftiger Assistenzprofessor an der College of Pennsylvania, der an dieser Arbeit nicht beteiligt conflict.

Diese Forschung wurde teilweise von der Nationwide Science Basis, der US Protection Superior Analysis Initiatives Company und der Semiconductor Analysis Company finanziert.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert