Gewone programmatuur botst met multicorehardware

6 augustus 2010

 Die trucs zijn inderdaad gevonden, bijvoorbeeld het gebruik van meer rekenkernen. Tegenwoordig heeft een standaard pc al een dual- of quadcoreprocessor. “Dat lijkt een goede oplossing, alleen blijkt dat gewone programma’s niet passen op die nieuwe hardware. De software draait wel, alleen wordt één van de rekenkernen voor 100 procent belast, terwijl de andere niets staan te doen”, zegt Bart Kienhuis, algemeen directeur van de firma Compaan Design uit Amsterdam.

Om ten volle gebruik te maken van een multicore-hardwarearchitectuur, zal de programmatuur aangepast moeten worden. Waar mogelijk moet de programmacode geparallelliseerd worden. Kienhuis: “Vergelijk het met een steen die vervoerd moet worden in een emmer. Dat werkt, maar iemand sjouwt zich ongelukkig. Zet er meer emmers naast en de klus kan door meer mensen worden gedaan. Dat vereist wel, dat de ene grote steen (het programma) wordt opgedeeld in kleine stuken, zodat alle emmers evenveel gevuld kunnen worden.”

Dat is de basisgedachte achter de techniek van Compaan Design. Met behulp van zelf ontwikkelde software wordt een analyse gemaakt van een toepassing, waarbij delen die geschikt zijn voor parallelle uitvoering worden geparallelliseerd. Tijdens dat proces worden die delen uiteengerafeld en omgezet in een zogeheten Kahn Process Network (KPN). “Dit communicatie- en rekenschema is in 1974 bedacht door de inmiddels overleden Franse wiskundige en informaticus Gilles Kahn. In een KPN wordt een applicatie verdeeld in een aantal partities, die via een FIFO (first-in first-out) register met elkaar gegevens uitwisselen. We hebben dan de mogelijkheid om die aparte delen (partities) uit te smeren over de rekenkernen. Dat kunnen de cores van een microprocessor zijn, maar bijvoorbeeld ook de grotere hoeveelheden rekenelementen van een field programmable gate array (FPGA). Ook de combinatie van een chip met bijbehorende grafische processor (GPU) is een mogelijkheid”, zegt Kienhuis.

Door de partitionering in processen volgens de methodiek van Compaan Design wordt een sequentieel programma omgezet in een hoeveelheid threads die simultaan in plaats van na elkaar verwerkt kunnen worden. De techniek richt zich op de zogeheten hotspots in een applicatie. “Dat kunnen programmadelen zijn die zeer veel rekenkracht vereisen, of delen van programma’s die met zo min mogelijk energie een gedefinieerde hoeveelheid werk moeten verzetten. Dat laatste treffen we meer en meer aan bij mobiele applicaties. In een smartphone moet vaak behoorlijk veel rekenwerk worden gedaan, en de kunst is om de accu daarmee zo min mogelijk te belasten”, zegt John van Brummen, commercieel directeur van Compaan Design.

De techniek wordt sinds kort als product op de markt gebracht onder de naam Compaan Hotspot Parallelizer. Inmiddels zijn met goed gevolg proefprojecten uitgevoerd in samenwerking met diverse industriële partners in Europese R&D projecten. De techniek zorgt ervoor dat programma’s die hoge communicatie en rekenkracht vragen aanmerkelijk sneller lopen. Hiervoor hoeft niets handmatig aan de programmacode te worden veranderd. “Het gevolg is, dat bestaande programma’s met weinig moeite omgezet kunnen worden in een vorm die op snelle parallelle hardware kan worden uitgevoerd”, zegt Kienhuis.

De automatische techniek maakt bovendien geen fouten, wat bij een handmatige conversie (als die qua tijd al realiseerbaar zou zijn) wel kan gebeuren. Kienhuis: “Onze omzetting is 100 procent correct, wat ook bewijsbaar is. Het omzettingsproces kan eventueel in een paar stappen worden uitgevoerd, wanneer blijkt dat één van de resulterende partities toch nog te zwaar is. Een verdere opsplitsing van dat die partitie biedt dan soelaas. Dit proces kan naar believen herhaald worden, maar niet al te vaak want dan worden de delen te klein en gaat de data-overdracht tussen de delen meer tijd kosten dan het rekenwerk. Dan schiet je je doel voorbij. De ervaring leert wel, dat gebruikers snel leren aanvoelen wat de beste verdeling is en wanneer ze moeten stoppen.”

Samen met Philips Healthcare is de methodiek van Compaan Design industrieel gevalideerd. Volgens Philips Healthcare biedt de techniek meer gemak, betrouwbaarheid en verificatie bij het ontwerpproces voor FPGA’s. De ontwerptijd voor een parallel digitaal röntgenfilter op FPGA is teruggebracht van enkele maanden naar twee dagen.

“De parallellisatiemodule van Compaan Design is te gebruiken voor programma’s die in ISO-C zijn geschreven. In principe zou de techniek ook aan te passen zijn voor applicaties in andere talen. “De vraag naar versnelling in de C-hoek is echter het grootst dus daar hebben we ons op geconcentreerd”, zegt Van Brummen.

 
Lees het hele artikel
Je kunt dit artikel lezen nadat je bent ingelogd. Ben je nieuw bij AG Connect, registreer je dan gratis!

Registreren

  • Direct toegang tot AGConnect.nl
  • Dagelijks een AGConnect nieuwsbrief
  • 30 dagen onbeperkte toegang tot AGConnect.nl

Ben je abonnee, maar heb je nog geen account? Neem contact met ons op!