Parallel programming

Parallel programming

In de zoektocht naar nieuwe manieren om onze computers sneller en efficiënter te laten werken is parallel programming één van de belangrijkste ontwikkelingen. Deze programmeertaal speelt in op de specifieke kenmerken van multi-core processors, om hier zo het maximale effect uit te halen. Eenvoudig gezegd wordt bij parallel programming een taak opgesplitst in verschillende kleine taken. Deze worden vervolgens afhankelijk van elkaar verwerkt en uiteindelijk weer samengevoegd tot één enkel eindresultaat. Dit kan bijvoorbeeld binnen één computer met een multi-core processors, maar ook met verschillende onderling verbonden computers. Met parallel programming doe je eigenlijk wat de supercomputers van de jaren tachtig ook al deden, maar dan op een veel compactere schaal.

De voor- en nadelen van parallel programming
Het grootste voordeel van parallel programming is de mogelijkheid om een grote complexe taak op te delen. Deze mate van flexibiliteit geeft de ontwikkelaar van software meer mogelijkheden in zijn ontwerp. Aan de andere kant zorgt dit er wel voor dat programma’s complexer van opzet worden en dus ook wat betreft het ontwerp. Wordt hier niet de juiste aandacht aan besteed, dan kun kleine fouten ervoor zorgen dat deelprogramma’s stil vallen en zo het hele proces vertragen of zelfs vast laten lopen.

Wie in de ontwikkelfase echter oog heeft voor detail, zal uiteindelijk profiteren van de voordelen van parallel programming. Het is bijvoorbeeld makkelijker om verschillende processen naast elkaar te laten draaien, wat uiteindelijk de efficiëntie ten goede komt. Doordat de volgorde van de deelprogramma’s niet uitmaakt is er daarnaast ook minder programmeerwerk nodig. Daardoor is het vervolgens ook weer veel gemakkelijker om componenten toe te voegen of later nog aan te passen.

Verschillende soorten parallel programming
Hoewel er verschillende variaties zijn, vallen er binnen de wereld van parallel programming drie veel voorkomende architecturen te onderscheiden:

1. Grote programma’s met interne deelprogramma’s: dit is de meest voorkomende toepassing van parallel programming. Denk hierbij aan programma’s als Microsoft Word en Excel, waarbij verschillende deelprogramma’s samen een responsieve interface vormen.

2. Systemen van onafhankelijke deelprogramma’s: de meest optimale structuur om gebruik te maken van meerdere processoren. Deelprogramma’s kunnen gelijk zijn aan elkaar en afzonderlijke data bewerken, maar dit is niet noodzakelijk. Dit komt bijvoorbeeld voor bij programma’s die gebaseerd zijn op peer-to-peernetwerken.

3. Client-serverarchitectuur: hierbij geven programma’s opdracht aan andere programma’s om bepaalde taken uit te voeren, zoals bijvoorbeeld browsers doen bij het opvragen van internetpagina’s.