# Scratch (Computer)

Der Scratch-Speicher (häufig Scratch-Disk, von engl. scratch, kratzen) ist ein nichtflüchtiger separater Speicherbereich, der einzig für temporäre Dateien verwendet wird. Während Computer früher regelmäßig über separate Hardware für Scratch-Speicher verfügten, ist der Begriff heutzutage nur noch in Nischenbereichen des Big Datas verbreitet, etwa High Performance Computing, Videobearbeitung oder Bildbearbeitung.

## Historisch

Scratch Space war zum Lösen von großen Aufgaben, etwa dem Sortieren einer langen Liste, die nicht in den Hauptspeicher eines Computers passte, auf schreibbaren Speichermedien anwendbar. Während bei der Benutzung von Lochkarten in der Regel das physische Speichermedium selbst mit seiner Position im Rechner als Auslagerungsspeicher dient (zum Beispiel im Lochkartensortierer), wurden bei Rechnern mit Tapes bereits einzelne Scratch Tapes ausgewiesen, die nur als Zwischenspeicher dienten, wie es später Festplatten taten. Der schnelle Verschleiß dieser Zwischenspeicher motivierte zur Namensgebung scratch.

## Scratch Space im Personal Computing

Scratch Space wird von Programmen in Anspruch genommen, die mehr Speicher benötigen, als der Computer an Arbeitsspeicher zur Verfügung hat. Anders als beim Benutzen einer Auslagerungsdatei durch das Betriebssystem wird durch absichtliches Nutzen einer solchen Datei aus einem Userspace-Programm heraus das Swapping verhindert, welches den gesamten Computer verlangsamt. Der Unterschied ist also vor allem, dass die Programmierer des Anwenderprogrammes den großen Speicherbedarf im Auge hatten und die Verwendung eines nichtflüchtigen Auslagerungsspeichers einprogrammierten.
In der Regel wird für Scratch Space eine separate Partition der Festplatte verwendet. Auf Mobilgeräten wird oft ein einzelner Ordner auf einem Massenspeichermedium, etwa einer SD-Karte, gewählt. Ein Beispiel eines Programms, das Scratch Space in Anspruch nimmt, ist Adobe Photoshop.
Da die Verwendung von Scratch-Speichern im Personal Computing nicht vom Betriebssystem verwaltet wird, gibt es keinen einheitlichen Umgang mit vollen Scratch-Speichern.

## Scratch Space im Hochleistungsrechnen

Das Vorhandensein einer sehr großen Scratch Disk ist ein primäres Merkmal eines Hochleistungsrechners. Dabei handelt es sich in der Regel um einen verteilten Hochgeschwindigkeits-Netzwerkspeicher, der auf Tausende von Festplatten verteilt wird. In der Regel zeichnet sich die Scratch Disk gegenüber anderen nicht-flüchtigen Speichern dadurch aus, dass der Inhalt nicht gebackupt wird oder von Systemadministratoren oder automatisch, zum Teil ohne Warnung, gelöscht wird.
Die Scratch-Disk ist bei Hochleistungsrechnern in der Regel die Hauptfestplatte und stellt den Großteil des verfügbaren Speichers dar. So verfügt der SuperMUC am Leibniz-Rechenzentrum etwa über 15 Petabyte Netzwerkspeicher ohne Backup, von denen ein Teil als Scratch-Speicher verwendet wird (Löschung ohne Ankündigung) und ein Teil als Work-Speicher (keine Löschung). Bei einer üblichen Festplattengröße von 1 Terabyte verteilt sich der Scratch-Speicher also auf ca. 15.000 Festplatten. Demgegenüber stehen lediglich 3,5 Petabyte Netzwerkspeicher, die lokal über eine Replikation verfügen, sodass bereits 7 Petabyte Speicher vorgehalten werden müssen. Als Dateisystem für Scratch kommt GPFS von IBM zur Anwendung. Ein weiteres Beispiel ist der Hochleistungsrechner Hazel Hen am Höchstleistungsrechenzentrum Stuttgart, welcher zum Management seiner 10 Petabyte Scratch-Speicher das Lustre-Dateisystem verwendet und ein Allokationssystem verwendet, welches der Allokation von CPU-Ressourcen ähnelt und mit einer Ablaufzeit versehen wird, um zu verhindern, dass sich das Scratch-Dateisystem bis zum Rand füllt. Um den Speicher zu benutzen, müssen Benutzer demnach ein Kontingent beantragen, bei dem sie eine gewisse Speichermenge für einen Zeitraum reservieren.