Your cart is currently empty!
Hoe parallelliseer je een loop?
Embedded software bestaat in de regel slechts uit een enkele taak, die in een multicore systeem over de verschillende rekenkernen uitgesmeerd moet worden. Bryon Moyer van Vector Fabrics legt uit hoe de loops een aanknopingspunt vormen om deze software op verschillende manieren te parallelliseren.
Embedded systemen krijgen meer en meer te maken met architecturen die uit meerdere rekencomponenten bestaan – multicore processoren, maar ook complexe heterogene systemen zoals mobieltjes-Socs. Softwareontwikkelaars moeten de vaardigheid bezitten om de programmatuur in stukken te ’breken‘ zodat de delen parallel aan elkaar kunnen opereren. Vaak gaat het dan ook nog eens om code die ze zelf niet geschreven hebben, zoals opensource programmatuur die ze moeten aanpassen of oude code die moet worden overgezet naar het nieuwe platform.
Bij desktopapplicaties zijn de kansen voor parallelle taken overduidelijk aanwezig door de rijke gebruikersinterface en vele andere functies van de software – denk aan spellingscontrole, indexeren, rekenen en dergelijke. Embedded systemen vormen echter een grotere uitdaging. Daar voeren de meeste programma‘s slechts één enkele taak uit, vaak op een lineaire (sequentiële) manier.