Overstromingsrisico’s
Wettelijk is Rijkswaterstaat verplicht om tenminste eens in de twaalf jaar vast te stellen of de waterkeringen in Nederland voldoen aan de wettelijke eisen. Over die eisen wordt voortdurend nagedacht en daarom zijn er elke ronde weer nieuwe, betere criteria. Werd er vroeger gekeken naar de kans dat water boven de waterkering uit zou komen, tegenwoordig wordt er een veel verfijndere benadering gebruikt om het risico van overstroming vast te stellen. Daarbij wordt gekeken naar allerlei manieren waarop een waterkering het kan begeven en naar de schade die optreedt als dat het geval is.
Omdat er nu andere eisen worden gehanteerd, is er ook nieuwe programmatuur nodig om de overstromingskansen door te rekenen. Daarvoor is in opdracht van Rijkswaterstaat de Hydra-Ring programmatuur ontwikkeld. Met name Deltares heeft daaraan een grote bijdrage geleverd, naast andere bedrijven zoals HKV. Hoewel de software nu inderdaad de allernieuwste en allerbeste inzichten bevat, was een praktisch probleem dat de berekeningen te lang zouden duren om alle dijkkringen op tijd door te rekenen. Daarom heeft Rijkswaterstaat VORtech gevraagd om de meest rekenintensieve stukken te versnellen.
Performance assessment
HPC expert Koos Huijssen van VORtech heeft daarbij veel van de coördinatie op zich genomen. Koos: “Het is heel vanwege de aard van de berekeningen heel complexe programmatuur. We kenden die aanvankelijk helemaal niet, dus we zijn eerst maar eens begonnen om te inventariseren waar de grootste problemen zaten. We hebben daar bij VORtech in de loop van de jaren de nodige tools voor ontwikkeld die voor dit soort programmatuur veel effectiever zijn dan normale profilers.”
Die inventarisatie leverde meteen al het nodig op. Sommige problemen waren eenvoudig te verhelpen. Zo was een van de problemen dat er soms gekozen was voor inefficiënte datastructuren. Koos Huijssen: “Dat is ook niet raar: het is al moeilijk genoeg om de algoritmen goed te krijgen en dan is het voor veel ontwikkelaars een stap te ver om meteen ook de consequenties voor de performance te overzien. Dat is dan ook precies een stuk meerwaarde dat wij kunnen leveren.”
Met enkele eenvoudige ingrepen kon een flinke versnelling bereikt worden van de programmatuur, voor sommige stukken zelfs met een factor 10. Maar Hydra-Ring bestaat uit heel veel aparte stukken die ieder voor zich een flinke rekentijd vragen. Het was dus onvoldoende om slechts één of enkele van die stukken te versnellen. Daarom zijn achtereenvolgens steeds nieuwe onderdelen van de programmatuur onder de loep genomen.
Algoritmische aanpassingen
Daarbij ging het ook om andere soorten aanpassingen. In sommige gevallen was het nodig om tussenresultaten van berekeningen te bewaren om te voorkomen dat die iedere keer opnieuw berekend zouden worden. Maar volgens Koos werd in andere gevallen de algoritmiek op een hoger niveau aangepast. “Soms kun je heel veel rekenwerk uitsparen door een andere rekenmethode te gebruiken. Dat doet niets af aan wat je uiteindelijk berekent; alleen de weg ernaartoe is anders.”