Pourquoi les développeurs boudent le multi-coeur

Alors que le multi-coeur se généralise tant sur les stations de travail, les serveurs que sur les consoles de jeux, les développeurs et les éditeurs tardent à adapter leurs applications aux spécificités du parallélisme. Freinant d'emblée le gain de performances promis par les constructeurs de processeurs. Un écart qui symbolise le manque de formation des développeurs et l'immaturité du marché des outils de développement.

Multi-coeur cherche application à sa taille. Le mariage entre hardware et logiciel n'a pas encore eu lieu sur l'autel du parallélisme. Dans un contexte propice à la multiplication des coeurs embarqués dans une unique puce, les éditeurs de logiciels tardent à exploiter dans leurs applications toute la puissance promises par le multi-theading. Créant ainsi un écart entre d'un côté le matériel et de l'autre les logiciels, qui ne dialoguent alors plus que partiellement. Ou plus exactement de façon imparfaite.

La première salve est venue des chiffres. Evans Data, cabinet d'analyse, rapporte, dans une étude sur les habitudes des développeurs mondiaux, que sur les six derniers mois de 2008, seulement 3 % des développeurs auraient introduit dans leur code des instructions capables de gérer le parallélisme des multi-coeurs. Une trop faible progression, conclut alors le cabinet, alors que, côté micro-processeurs, les coeurs s'empilent. Par contre, Evans Data constate que quelque 70% des répondants envisagent d'exploiter la technologie « dans un futur proche ». Bref, ils attendent patiemment. Oui, mais quoi ?


Pour Stéphane Bihan, responsable du développement de CAPS Entreprise, éditeur qui développe HMPP (Hybrid Multicore Parallel Programming), un ensemble d'outils de développement pour la programmation multi-coeur , cet attentisme résulte d'une compilation de facteurs. Si les bénéfices du multi-coeur ont déjà été largement digérés par le HPC (High-Performance Computing) – et ainsi par le monde scientifique - , il apparaît  toutefois que « les développeurs sont peu entrainés au développement parallèle ». Que ce soit chez les éditeurs classiques, ou dans le domaine du HPC - pourtant coeur de cible -, comme le souligne une étude du programme européen Prace (Partnership for Advanced Computing in Europe).
Ce rapport pointe du doigt le manque flagrant de compétences et la nécessité immédiate de matériel et de supports de formation adéquats aux technologies régissant le parallélisme. En clair, un manque d'expertise certain dans le domaine. Ainsi, seulement un développeur interrogé sur cinq aurait reçu une formation aux techniques de programmation multi-coeur. La majorité du panel estimant que leurs compétences en la matière sont d'un niveau basique, voire inexistantes.
Stéphane Bihan explique que le développement parallèle implique « de maîtriser de nouveaux principes , comme la scalibility, le load-balancing, le calcul, la communication entre applications et la décomposition des données ». Autant de concepts dont l'apprentissage ne s'improvise pas.

Sans surprise, il constate aussi un manque de maturité des environnements de développement ainsi que des langages qui, eux aussi, tardent à suivre. L'API OpenMP et la norme MPI (Message Passing Interface), deux références en matière de calcul parallèle, ne voient pas leur base de développeurs s'étoffer (C et Fortran principalement). Et pour cause, l'absence de rapprochement des deux composants est présentée comme un véritable frein à l'usage du parallélisme par le programme Prace. OpenMP est une interface de programmation pour le calcul parallèle sur architecture à mémoire partagée, tandis que MPI définit un standard de communication pour le multiprocesseur.

Dans l'attente d'un lièvre

Alors on attend. Les éditeurs aussi, qui patientent en espérant qu'un des leurs se lance et ouvre la voie. « Ils sont effrayés également par la somme de travaux de recherche autour du développement parallèle, démontrant alors que le marché n'est, certes, pas encore bien défini, ou pas mûr », poursuit Stéphane Bihan. C'est notamment le cas avec le projet OpenCL (Open Computing Language) ouvert par Apple, qui doit faire émerger un standard de programmation parallèle dans les GPU (puces graphiques), et donner la réplique à Cuda, exclusivement réservé aux technologies Nvidia.

Reste que la tendance se dirige vers le « Many-core », explique Stéphane Bihan, qui, en juxtaposant un processeur générique à un processeur spécialisé comme un GPU, constitue, outre une évolution inévitable, « la seule solution d'augmenter la performance par Watt ».
Adobe s'y est risqué, souligne Stéphane Bihan, et « a porté Photoshop de façon à ce que le calcul s'exécute sur le processeur graphique ». On se dirige ainsi vers une période de sensibilisation du marché à cette tendance, avant une adoption généralisée, d'ici un ou deux ans, prévoit-il. Et ainsi vers une longue période de formation des développeurs.

En savoir plus:
 Télécharger le rapport de Prace

Pour approfondir sur Editeurs