Optimalisatiesoftware ‘Kernel Tuner’ klaar voor serieus gebruik
Universitair docent Ben van Werkhoven van het LIACS leidt de ontwikkeling van software om grafische processoren te optimaliseren. Inmiddels komt versie 1.0 van ‘Kernel Tuner’ de hoek om kijken. Deze mijlpaal laat zien dat de software klaar is voor serieus gebruik.
‘Grafische processoren waren oorspronkelijk bedoeld voor het spelen van videogames, maar ze bleken zo goed in het uitvoeren van wetenschappelijke berekeningen dat ze nu voor allerlei rekenintensieve taken worden ingezet,’ legt Van Werkhoven uit. Handmatig grafische processoren programmeren is echter een complexe en tijdrovende taak. ‘Kernel Tuner zorgt ervoor dat je efficiënter kunt experimenteren met verschillende versies van je code voor grafische processors.’
Vergankelijke hardware
‘Je ziet dat software over het algemeen veel langer meegaat dan hardware. We hebben iedere drie, vier jaar een nieuwe computer, maar een computerprogramma is soms wel tientallen jaren in gebruik,’ vertelt Van Werkhoven. ‘Elke keer moet je weer opnieuw je software optimaliseren voor nieuwe hardware, soms al tijdens een project van twee jaar.’ Kernel Tuner gebruikt optimalisatie-algoritmen om zo veel verschillende versies software op de hardware van de grafische processor uit te proberen. Van Werkhoven: ‘Dat proces van steeds opnieuw optimaliseren, dat wilde ik dus eigenlijk automatiseren. Je ziet dat nog steeds heel veel mensen dat met de hand doen.’
Sneller doorlopen van de keuzeboom
Het programmeren van een grafische processor is een kunst op zich en als je ze ook nog snel wilt krijgen moet de software efficiënt gebruikmaken van de onderliggende hardware. ‘Er zijn ontzettend veel keuzes die je kunt maken en eigenlijk is het zo dat je overal precies de juiste keuze moet maken als je echt het optimum wilt bereiken,’ legt Van Werkhoven uit. Met Kernel Tuner is het mogelijk dit proces te automatiseren en alle mogelijke paden tegelijk te bewandelen, om zo de optimale set aan keuzes te identificeren. ‘Je kan het zien als een keuzeboom waar je doorheen loopt. Je kunt allerlei keuzes maken, maar met de hand kan je maar één pad tegelijk belopen. Met Kernel Tuner kan je alle takken van de boom tegelijk doorlopen.’
Breed toepasbaar
Door Kernel Tuner kunnen wetenschappers snellere wetenschappelijke software ontwikkelen om zo efficiënter complexe berekeningen uit te voeren. Met een team van ‘core developers’ verspreid over organisaties door heel Nederland waaronder het eScience Center, Universiteit Leiden, Centrum Wiskunde & Informatica, Astron, radioastronomieinstituut in Drenthe wordt Kernel Tuner ontwikkeld. Naast de interesse in de software vanuit onderzoeksoogpunt, wordt Kernel Tuner ook praktisch toegepast voor radioastronomie en meteorologie.
Verduurzaming
‘We kunnen niet alleen optimaliseren voor tijd, maar ook voor energieverbruik,’ benoemt Van Werkhoven. Kernel Tuner meet niet alleen de efficiëntie van verschillende configuraties, maar ook hoeveel stroom ze verbruiken. ‘Zeker in de samenwerking met Astron is energieverbruik een belangrijk component bij bijvoorbeeld het ontwikkelen van radiotelescopen. De antennes staan vaak expres heel ver weg van de bewoonde wereld om zo weinig mogelijk radio-interferentie te hebben. Dat betekent ook dat je ergens in een weiland zit waar misschien niet zo heel veel stroom is. Juist bij dat soort toepassingen is het belangrijk dat zoiets kan met weinig stroom.’
Uitschieters vinden
De beste set aan parameters kan qua snelheid een enorm verschil maken vergeleken met andere configuraties. De kans dat deze uitschieter was gevonden door het handmatig aanpassen van software is klein. Zelfs als deze optimale configuratie handmatig was gevonden, is het tijdrovend werk wat de ontwikkelingen op hardware gebied niet kan bijbenen. Zodra er een nieuwe grafische processor op de markt komt kan het proces weer van voor af aan beginnen. Van Werkhoven: ‘Dat is echt waar de kracht in zit van Kernel Tuner: dat je dit kunt automatiseren.’