Technieuws

OpenCL en OpenMP nemen elkaars features over

Pieter Edelman
Leestijd: 1 minuut

OpenCL 2.0 is door de Khronos-groep officieel tot standaard verheven, terwijl op de Supercomputing Conference in Denver versie 4.0 van de OpenMP-standaard uit de doeken is gedaan. Voor de ontwikkelaar wordt het er daarmee niet eenvoudiger op. De twee standaarden, die beide op brede industrieondersteuning kunnen rekenen, komen steeds meer in elkaars vaarwater; de OpenCL-specificatie voor heterogene multicoresystemen krijgt officieel ondersteuning voor gedeeld virtueel geheugen tussen CPU en versnellers, terwijl de OpenMP-specificatie voor multicore systemen met gedeeld geheugen ondersteuning krijgt voor heterogene hardwareversnellers.

OpenCL is een programmeeraanpak die uitgaat van het expliciet implementeren van parallellisme. Programmeurs nemen in hun CPU-code kleine kernels op die naar een rekenversneller gedelegeerd worden. OpenMP is een methode die met compiler-hints (pragma‘s) aangeeft welke code de processor veilig kan proberen te parallelliseren. Aan deze specificatie zijn nu hints toegevoegd om aan te geven dat de code op een hardwareversneller zoals GPU, FPGA of DSP gedraaid kan worden. Dit is een aantrekkelijke aanpak voor bestaande code, terwijl de met de hand geoptimaliseerde algoritmes bij OpenCL in theorie iets betere prestaties bieden.

Van oudsher is OpenMP vooral populair voor high-performance computing (HPC), met chipmakers als Intel en NVidia als grote voorstanders. OpenCL wordt vooral gevonden in desktop- en mobiele systemen, met AMD als sleutelspeler. Ze hebben allebei spin-off in het embedded domein, waarbij verschillende chipmakers een of beide standaarden ondersteunen.

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 and enjoy all the benefits.

Login

Related content