Ende der Beta-Phase

Heute endet die Beta-Phase von SplashTool 0.9. Nicht zuletzt aufgrund des Artikels in der wwt fanden sich einige Interessierte, die die Betaversion heruntergeladen und die Software getestet haben, darunter zwei Städte/Gemeinden, eine Hochschule, sowie einige Privatpersonen und natürlich mehrere Ingenieurbüros. Ich freue mich sehr über das Interesse und werde die Erfahrungen aus der Beta in… Ende der Beta-Phase weiterlesen

Veröffentlicht am
Kategorisiert in Entwicklung

Installer für SplashTool

Aktuell bin ich dabei, mich mit dem „Freeze“ des Codes, also dem Erstellen von Binärdateien aus den Python Skripten, und dem Erstellen eines Installers zur einfachen Installation zu beschäftigen. Die laufenden Projekte im Büro führen dazu, dass zumindest aktuell nicht sehr viel Zeit für die Entwicklung übrig bleibt. Der Freeze erfolgt mit pyinstaller, das Paketieren… Installer für SplashTool weiterlesen

Veröffentlicht am
Kategorisiert in Entwicklung

GUI Erweiterungen

In den letzten 4 Wochen wurde die GUI stetig um Funktionen erweitert. Die wesentlichen Features habe ich in diesem Blogpost zusammengestellt. Design Die GUI hat ein leicht überarbeitetes Design. Die drei Hauptsektionen „model input“, „model control“ und „log output“ sind jetzt besser voneinander getrennt, fortgeschrittene Optionen sind ausgegraut und können über ein Häkchen aktiviert werden.… GUI Erweiterungen weiterlesen

Veröffentlicht am
Kategorisiert in Entwicklung

Minimale GUI

Nach fast zwei Monaten Einarbeitung existiert eine minimale grafische Nutzeroberfläche (GUI) für SplashTool_CPU basierend auf PyQt5. Eingabedateien, Ausgabeordner und einige weitere Optionen werden in der GUI gesetzt und beim Start der Iteration an das SplashModel weitergegeben. Die GUI wurde so programmiert, dass Manager und Model unverändert bestehen bleiben und auch weiterhin eine skriptbasierte Nutzung möglich… Minimale GUI weiterlesen

Veröffentlicht am
Kategorisiert in Entwicklung

Entwicklungsframework

Anaconda Logo (Quelle)

Zu Beginn der Entwicklung habe ich mit der Standard Pythoninstallation von Manjaro Linux entwickelt, diese wird über den Paketmanager verwaltet und ist immer up to date. Die Tests unter Windows 10 erfolgten zunächst in der jeweils mit osgeo4w mitinstallierten Umgebung. An verschiedenen Stellen bin ich mit dieser Variante an Grenzen gestoßen. Bei der Entwicklung von… Entwicklungsframework weiterlesen

Veröffentlicht am
Kategorisiert in Entwicklung

SplashTool_GPU Optimierungen

CuPy Logo (Quelle)

Modellanpassungen Seit ca. einem Monat arbeite ich an SplashTool_GPU. Aufgrund des modularen Setups der Konfigurationsdatei, des Managers und des Models, kann ein Großteil des Codes unverändert bleiben, dennoch mussten im Model noch zahlreiche Änderungen vorgenommen werden. Insbesondere werden maskierte arrays von CuPy nicht unterstützt, sodass der Iterationsalgorithmus so umgeschrieben werden musste, sodass die Software auch… SplashTool_GPU Optimierungen weiterlesen

Veröffentlicht am
Kategorisiert in Entwicklung

SplashTool_GPU

Nvidia RTX 3090 (Quelle)

Die Geschwindigkeitsoptimierungen der CPU-basierten Variante mit reinem numpy sind mittlerweile weitgehend ausgereizt. Einzelne Optimierungen wären noch mit numba möglich, jedoch sind auch hier aufgrund der Beschränkungen der Hardware Grenzen gesetzt. Die Mathematikbibliotheken von numpy sind bereits stark optimiert, sodass der aktuelle Flaschenhals das Lesen und Schreiben der Daten aus dem Arbeitsspeicher ist. Moderne Grafikkarten verfügen… SplashTool_GPU weiterlesen

SplashTool restart

Die Ausgabe von Dateien enthält jetzt eine kleine Logdatei mit wesentlichen Informationen zur Wasserbilanz. Der Clou bei der Sache: Die Datei kann als „restart“-Datei genutzt werden. Bei dieser Option verwendet die Iteration den Zustand der letzten Logdatei im Ausgabeordner, um die Iteration zu konfigurieren und macht mit diesem Zustand weiter!

Veröffentlicht am
Kategorisiert in Entwicklung

Multithreading Part 2

Im bisherigen Entwurf zu Multithreading werden die zu berechnenden Kacheln jedes Mal neu erstellt und die Ergebnisse in den Hauptarray zurückgespielt. Dies erzeugt zusätzliche Lese- und Schreibvorgänge und verlangsamt somit die Iteration. Im nächsten Schritt werden daher die Kacheln permanent gemacht. Alle Rechengrößen werden in den Kacheln gepeichert und die Kacheln parallel berechnet. Nach Berechnung… Multithreading Part 2 weiterlesen

Veröffentlicht am
Kategorisiert in Entwicklung

Visualisierung des Iterationsverlaufs

Der Iterationsverlauf hat keine physikalisch korrekte zeitliche Komponente. Dennoch kann die Visualisierung des Iterationsverlaufes vom Anfang bis zu einem annähernd stationären Zustand hilfreich für das Systemverständnis der Iteration sein. Hierzu gibt es die Option „create frequent output“. Warnung: Es werden sehr viele TIF-Dateien geschrieben und man benötigt sehr viel Speicherplatz! Mit häufig geschriebenen Ausgabedateien lässt… Visualisierung des Iterationsverlaufs weiterlesen

Veröffentlicht am
Kategorisiert in Entwicklung