Multicore kent vele vormen: homogeen, heterogeen, AMP, SMP, cachecoherent of niet, en ga zo maar door. Het raakt aan zowel oude informaticaprincipes als nieuwe innovaties. Klaas van Gend wijst de weg in multicoreland en legt uit waar de pijn zit voor de programmeur.
Met hedendaagse processoren is multicore bijna een vaststaand gegeven geworden. Er zijn nu zelfs al kleine microcontrollers met een dubbele Cortex-M3 te krijgen. Velen zien multicore als middel om nog prestaties uit een processor te persen nu de klokfrequentie nauwelijks meer toeneemt. Helaas schaalt bestaande software niet lekker mee.
Software is meestal geschreven voor single-threaded uitvoer. Zulke toepassingen draaien op een systeem met twee cores lukt nog wel: de oude applicatie werkt op de eerste kern en alle andere taken verhuizen naar de tweede. Die wordt weliswaar niet optimaal gebruikt, maar voor de applicatie is er nog wel winst. Maar om meer snelheid te behalen, of voor meer dan twee cores, zal de software moeten worden aangepast zodat er delen parallel gaan draaien. Helaas geldt dat programmeurs kennis zullen moeten hebben van de onderliggende hardware voor correcte parallellisatie.
