OpenCL est un environnement de programmation parallèle qui permet d’écrire du code portable exploitant la puissance des processeurs multi-coeurs et des processeurs graphiques. Découverte et maniement de base
La tendance est de plus en plus à l’omniprésence de la programmation parallèle, et c’est une tendance qui devrait durer longtemps. En effet la montée en puissance des processeurs, qu’ils soient classiques (CPU) ou graphiques (GPU) ne se trouve plus tellement dans l’augmentation des cadences d’horloges. Un jour viendra sans doute où les processeurs seront construits en diamant et seront capables de supporter des températures extrêmes, et donc des cadences d’horloges infernales. En attendant que ces composants quittent les laboratoires de recherche et s’installent dans les ordinateurs de bureau, les processeurs augmentent leur puissance en augmentant leur nombre de coeurs. Et comme d’un autre côté les applications sont de plus en plus gourmandes en puissance, l’exploitation des coeurs d’une puce et donc la programmation parallèle devient un passage obligé. On peut se poser alors la question : la programmation parallèle, oui, mais comment et pourquoi faire ? Si l’on recherche l’écriture facile,des frameworks comme CCR ou Axum (Programmez! 120 et 126 respectivement) qui s’appuient sur .Net pourront convenir. Si l’on recherche la performance la meilleure pour des calculs lourds [Fig.1], à base de code natif et permettant l’exploitation des CPU et des GPU, tout en écrivant un code portable à partir d’un standard, alors on se tournera vers OpenCL
Frédéric Mazué