Programmeren voor 20.000 processoren

Kun je een beetje programmeren? Dan weet je dat het vrij gemakkelijk is om je computer veel te laten rekenen, zo dat hij uren zoet is. Sterker nog, vroeger (toen 'supercomputer' nog geen woord was en jij nog met Windows 3.1 speelde) duurde vrijwel elke normale berekening veel en veel langer en als je toen evenveel mail zou krijgen als nu zou je computer het absoluut niet aankunnen.
Gelukkig is tegenwoordig elke nieuwe computer uitgerust met twee, vier of acht processoren die het rekenwerk van elkaar kunnen overnemen. Maar als jij iets programmeert, gebruik je dan ook al die processoren? En wat nou als je er niet vier maar veertig zou hebben?
Het is te doen, als je wat van programmeren begrijpt, om een klein parallel algoritme te schrijven dat meerdere cores tegelijk kan gebruiken. Als je er heel erg goed in bent kan je je programma zelf laten beheren hoeveel processoren aan het rekenen zijn en informatie uitwisselen, dan werkt het alleen maar op het systeem waar jij het voor hebt geprogrammeerd...

Kan dat niet makkelijker?

Ja dat kan! Een team van de High Performance Computing Division van de Universiteit Leiden ontwikkelt een tool genaamd Ctadel die zorgt dat niet langer jijzelf de code schrijft die de verschillende processoren van een multi-core systeem aanstuurt, maar dat die code, op basis van jouw algoritme, automatisch genereert. Het enige dat je nog hoeft aan te geven zijn de specificaties van het cluster dat het werk gaat doen. Dat scheelt natuurlijk een hele hoop programmeerwerk, maar het verlaagt vooral de drempel om überhaupt parallel aan dingen te rekenen.
En dat is erg handig, want er zijn bijvoorbeeld een heleboel meteorologen die werken aan systemen die qua algoritme zeer geschikt zijn voor parallellisatie, maar dat doen in een programmeertaal die zich niet echt leent voor parallel programmeren... Tenminste, als je dat zelf zou willen implementeren.

Meer weten?

Op 24 november komt Lex Wolters vertellen over Ctadel en hoe en waarop die codegeneratie toe te passen is, dus zet die datum in je agenda!
In de tussentijd kun je meer lezen over parallel rekenen of zelf een parallel programma'tje schrijven met deze tutorial (pdf)!