SplashTool
Was ist SplashTool?
SplashTool ist eine Software zur Ermittlung von Abflusspfaden und Wassertiefen in Geländesenken. Im Gegensatz zur klassischen Fließweganalyse erfolgt die Wassermengenverteilung volumengetreu und die Analyse erfordert keine Definition eines Füllgrades. Zu Beginn wird die komplette Niederschlagsmenge auf das DGM gegeben. In jedem Iterationsschritt fließt Wasser von Zelle zu Zelle, bis sich ein annähernd stationärer Zustand einstellt. Die treibende Kraft hierbei ist der absolute Wasserstand einer Zelle im Vergleich zu den benachbarten Zellen. Die Wasserstände in den Zellen, sowie die Abflusssumme durch jede Zelle werden als Geotiffs ausgegeben. Die detaillierte Verfahrensbeschreibung finden Sie hier.
Was ist SplashTool nicht?
SplashTool ist kein hydrodynamisches Simulationsmodell. Vor Beginn der Iteration wird die gesamte Wassermenge auf das Geländemodell gegeben, es existiert somit kein zeitlicher Niederschlagsverlauf. Der Abfluss zwischen Rasterzellen ist lediglich von der Wasserstandsdifferenz abhängig, ohne Berücksichtigung von Rauheitswerten, Impulsgleichungen etc.. SplashTool weist im Sinne einer Grobanalyse die bei Starkregen wesentlichen Abflussakkumulationspfade und Überflutungsflächen in Geländesenken aus. Es stellt jedoch keinen zeitlichen Verlauf mit maximalen Wasserständen entlang der Akkumulationspfade dar und liefert keine Aussagen zu Fließgeschwindigkeiten auf der Oberfläche.
CPU und GPU Varianten
SplashTool besitzt zwei Rechenkerne: Der CPU-basierte Kern nutzt den Prozessor des Computers für die Berechnung, der GPU-basierte Kern verwendet für die Iteration die Grafikkarte.
Die Berechnungsgeschwindigkeit mit der CPU ist in der Regel nicht durch die Anzahl der zur Verfügung stehenden Prozessorkerne limitiert, sondern durch die Lese- und Schreibgeschwindigkeit des Arbeitsspeichers. Zur Zeit kann mit der CPU für ein Gebiet mit 10 Millionen Rasterzellen „über Nacht“ ein annähernd stationärer Zustand erreicht werden. Für sehr große Gebiete (> 200 Millionen Rasterzellen) dauert eine vollständige Analyse mehrere Tage, eine Nutzung von der CPU-Kerns ist jedoch auch ohne Erreichen eines steady states bereits nützlich: Eine Sichtung der Zwischenergebnisse kann den Arbeitsablauf bei der Erstellung eines hydrodynamischen 2D-Detailmodells deutlich beschleunigen, da im DGM anzupassende Bereiche oder hydrologische Teilgebiete mit Hilfe der Ergebnisse von SplashTool deutlich schneller identifiziert werden können.
Der GPU-Kern führt die Iteration auf der Grafikkarte aus und ist hierbei um ein Vielfaches schneller als der CPU-Kern! Über CUDA nutzt der GPU-Kern die Fähigkeiten aktueller NVIDIA Hardware und berechnet auch sehr große Gebiete in wenigen Stunden. An Stelle des CPU-basierenden Multithreading erfolgt die Parallelisierung über „CUDA Streams“. Für einen zusätzlichen Geschwindigkeitszuwachs wurde ein Teil des Iterationsverlaufes in optimiertem C++ Code neu geschrieben.
Geschwindigkeitszuwachs
Der Geschwindigkeitszuwachs des GPU-Kerns gegenüber dem CPU-Kern entspricht je nach System einem Faktor von ca. 10 bis 50. Dementsprechend empfehle ich nach Möglichkeit immer die Nutzung der GPU zur Berechnung!
Maximale Gebietsgröße
Der Speicherbedarf hängt von der Gebietsform ab. Als Richtwert kann davon ausgegangen werden, dass für 1 km² Gebietsgröße bei 1 x 1 m Rasterzellenauflösung 25 bis 30 MB Arbeitsspeicher auf der Grafikkarte benötigt werden. Auf einer Grafikkarte mit 8 GB Speicher würde sich somit eine Gebietsgröße von ca. 300 km² berechnen lassen, auf einer Grafikkarte mit 24 GB RAM knapp 1.000 km². Bitte beachten Sie, dass ein Teil des GPU-RAM auch noch für andere Anwendungen zur Verfügung stehen muss, sofern Sie die Karte nicht ausschließlich für Analysen mit SplashTool nutzen.
Entstehungsgeschichte und Weiterentwicklung
Die Entstehungsgeschichte von SplashTool – und wie es weiter geht – können Sie im Blog nachlesen!