Stormen aan de andere kant van de wereld kunnen hier het weer beïnvloeden. Helaas rekenen computers nu vaak niet snel genoeg om alle weergegevens mee te nemen. Met parallel programmeren voeren computers verschillende berekeningen tegelijkertijd uit en dat levert tijdwinst op. Gevolg: een betrouwbaarder weerbericht, maar ook meer boeven achter de tralies.
Het is altijd hetzelfde: hebben we net een zwembroek ingepakt voor de voorspelde zonnige vakantie, regent het de halve week. Zouden we niet maar wat graag een weerbericht hebben dat wel altijd klopt? Dat weersvoorspellingen niet altijd kloppen, komt onder meer door de snelheid van de verwerking van weerdata. Een kleine storm in Amerika heeft bijvoorbeeld een groot effect op het weer in Nederland. Hoe sneller die data verwerkt kan worden, hoe betrouwbaarder de weersvoorspelling.
Henri Bal, hoogleraar bij de sectie Computersystemen aan de Vrije Universiteit Amsterdam en projectleider bij Commit, pleit daarom voor parallel programmeren.
“Bij weersvoorspellingen moet data uit het netwerk van computers snel en nauwkeuriger verwerkt worden om de weersvoorspellingen voor morgen niet pas na 48 uur te hebben”, aldus Bal.
Computers voeren berekeningen nu vaak in chronologische volgorde uit. Pas als de ene berekening klaar is, starten ze met de volgende. Dit sequentieel programmeren komt nog uit de tijd dat computerchips – waarop de computer berekeningen uitvoert – slechts één kern (ook wel core genoemd) hadden.
Extra kernen
Computerchipfabrikanten als AMD en Intel hebben hun chips echter aanzienlijk verbeterd. Rekenchips van computers worden steeds geavanceerder en kunnen anno 2016 tientallen acties tegelijkertijd uitvoeren. Zogeheten GPU-chips (Graphics Processing Unit) voeren zelfs vele duizenden acties tegelijk uit.
“Het programmeren van zulke many-cores staat nog in de kinderschoenen. Branches die afhankelijk zijn van data, kunnen daardoor niet optimaal presteren. Er wordt steeds meer data verzameld, maar met een groot deel van die verzamelde data wordt niets gedaan”, aldus Bal.
Programmeurs moeten bij parallel programmeren steeds in het achterhoofd houden dat een applicatie in een aantal kleine stukjes moet worden verdeeld. Dan kan de software optimaal gebruikmaken van de extra kernen.
Boeven vangen
De weerman is niet de enige persoon die beroepshalve baat heeft bij parallel programmeren, meent Bal. De politie zou er meer criminelen mee kunnen vangen. Als criminelen worden opgepakt, analyseert de forensische dienst tegenwoordig standaard hun computers om te achterhalen of er belastend materiaal op staat.
Bal: “Bij forensisch onderzoek gaat het om terabytes, kolossale hoeveelheden aan data. Er staan bijvoorbeeld vaak foto’s op de computer, contactgegevens. Je wilt die data het liefst binnen 24 uur geanalyseerd hebben, wanneer het spoor nog vers is. De data-analyse gaat nu echter soms tergend langzaam.”
AlphaGO
Bal noemt nog zo maar een voorbeeld dat onze veiligheid ten goede komt. Vliegtuigfabrikant Boeing verzamelt tijdens vluchten terabytes aan data over het functioneren van de motoren. “Als daar afwijkingen in zijn, wil je snel ingrijpen.”
En als kunstmatige intelligentie echt wil doorbreken, is het ook noodzakelijk dat computers sneller worden, zegt Bal. “Het gaat bij kunstmatige intelligentie vaak om duizenden opties. Je kunt je voorstellen hoe belangrijk het dan is om parallel te programmeren.” Dat er steeds meer kan, blijkt bijvoorbeeld uit de overwinning afgelopen maart bij het populaire Chinese bordspel Go van het slimme computerprogramma AlphaGO van Google DeepMind op een echte Go-speler. “Het computerprogramma rekende iedere mogelijke zet in een paar milliseconden door.”