Home

speicherintensiver

Speicherintensiver ist ein aus der deutschen Sprache stammender Begriff aus der Informatik, der Aufgaben, Programme oder Algorithmen beschreibt, die mehr Hauptspeicher (RAM) oder Speicherbandbreite benötigen, als es bei anderen Anwendungen der Fall ist. Im Gegensatz zu rechenintensiven Anwendungen, die vor allem CPU-Zeit benötigen, zeichnen sich speicherintensive Anwendungen durch eine große Speicherauslastung, häufige Speicherzugriffe mit geringer lokaler Nutzung und hohe Bandbreitenanforderungen aus. Die Leistungsfähigkeit hängt dabei stark von der Größe des Arbeitsspeichers, der Speicherbandbreite und der Effizienz der Speicherverwaltung ab. Ein zentrales Problem ist die Working-Set-Größe, also die Menge an Daten, die gleichzeitig aktiv gehalten wird; überschreitet diese Größe den verfügbaren Cache oder den Hauptspeicher, treten häufig Cache-Misses und Paging auf, was die Leistung stark drosseln kann.

Typische Anwendungsgebiete speicherintensiver Programme umfassen große Matrizen- oder Tensoroperationen, In-Memory-Datenbanken, maschinelles Lernen mit großen Modellen oder

Zur Bewertung werden Metriken wie Peak-Speicherbedarf, durchschnittliche Speichernutzung, Speicherbandbreite und Cache-Misses herangezogen. Profiling-Tools helfen dabei, Engpässe

Batches,
Grafik-
und
Bildverarbeitung,
sowie
Graph-
oder
Simulationsverfahren
mit
umfangreichen
Datenstrukturen.
In
vielen
Fällen
ist
die
Optimierung
weniger
auf
Rechenleistung
als
auf
Speicheroptimierung
ausgerichtet:
Datenstrukturen
mit
geringer
Speicherbelegung,
bessere
Speicherlocalität,
tiling
bzw.
Blocking
von
Berechnungen,
Streaming
statt
vollständiger
Datenhaltung,
sowie
Komprimierung
oder
Out-of-Core-Verarbeitung,
wenn
der
Datensatz
zu
groß
für
den
RAM
ist.
zu
identifizieren.
Insgesamt
beschreibt
der
Begriff
speicherintensiver
Zustand
oder
Ansatz,
der
vor
allem
durch
hohen
Speicherbedarf
charakterisiert
ist
und
entsprechende
Optimierungsmaßnahmen
erfordert.