Achtergrond

Multithreaded wordt een eitje met Threading Building Blocks

Rutger Manders studeert technische informatica aan de Avans Hogeschool in ‘s-Hertogenbosch. Hij loopt stage bij Humiq.

Reading time: 3 minutes

Een van de manieren om C++-software voor symmetrische multicore processoren te schrijven, is Intels Threading Building Blocks-bibliotheek. Dit pakket bevat standaard routines en datastructuren die zeer efficiënt multithreaded kunnen worden uitgevoerd, ontdekte Rutger Manders tijdens een stageproject bij Humiq. Bestaande software is relatief eenvoudig aan te passen.

Bij symmetrische multicore processoren zoals die vandaag de dag gemeengoed zijn in pc‘s zijn threads de voor de hand liggende methode om software te parallelliseren. Over het algemeen zijn threads echter lastig te overzien. Via een stageproject bij Humiq heb ik gekeken wat er voorhanden is om threadingtechnieken te abstraheren. Na een vooronderzoek van beschikbare parallelle programmeertalen viel de keus op de Threading Building Blocks-aanpak van Intel.

Threading Building Blocks (TBB) is een C++-bibliotheek met allerhande parallelle constructies. Zo kent het pakket bijvoorbeeld de parallel_for, een constructie waarmee het mogelijk is om een for-loop automatisch parallel uit te laten voeren, al dan niet met synchronisatie. Ook bevat het verschillende datacontainers die volledig thread-safe zijn, zoals een parallelle vector en een parallelle hashmap. Hiermee is het mogelijk om data aan te spreken en weg te schrijven via meerdere threads.

This article is exclusively available to premium members of Bits&Chips. Already a premium member? Please log in. Not yet a premium member? Become one for just €20 for the first year and enjoy all the benefits.

Login

Related content