L’équipe de recherche CDA développe des travaux scientifiques autour des différents axes de recherche liés au calcul distribué en considérant aussi bien les thèmes traditionnels de cette discipline, comme la conception d’algorithmes distribués pour la détermination de l’état global d’un système à des fins de terminaison par exemple, que ceux plus récents liés à la résolution de problèmes complexes ou de grande dimension en optimisation combinatoire, en commande optimale ou en simulation numérique via des techniques comme le calcul pair à pair dans des contextes massivement distribués. Les travaux de recherche de l'équipe portent sur des aspects algorithmiques ainsi que sur la conception d’environnements pour le calcul distribué.
En algorithmique distribuée nous poursuivons les recherches que nous avons entreprises sur les algorithmes itératifs asynchrones qui sont particulièrement adaptés au contexte des réseaux (cf.
Publications). Nous effectuons des études sur le calcul distribué pour le traitement à haute performance que ce soit sur architecture dédiée pour une application donnée ou sur architecture généraliste pour des applications de calcul intensif. Nous étudions la convergence, la détection de la convergence, la mise en œuvre et la terminaison des algorithmes itératifs asynchrones pour diverses applications en optimisation non linéaire ou en simulation numérique sur diverses architectures parallèles ou distribuées (cf.
Publications récentes).
Une des premières applications phares de notre équipe est constituée par le projet Smart Surface qui a été financé en 2006, dans le cadre de l’Appel à projets du Programme Systèmes Interactifs et Robotique, PSIROB, de l’ANR. Nous intervenons dans ce projet sur les aspects liés aux algorithmes distribués pour l'acquisition de l'état d'une smart surface et la reconnaissance des formes ainsi que sur la gestion des communications. Ce projet a débuté en avril 2007 et s'est terminée en 2010 (cf.
Contrats).
Nous travaillons aussi à la résolution parallèle ou distribuée de problèmes NP-complets en optimisation combinatoire. Nous avons obtenu des résultats importants pour ces applications dans le contexte du GPU computing (
Didier El Baz a été récipiendaire d'un NVIDIA Academic Partnership au mois d'Octobre 2010). L’introduction du calcul généraliste sur carte accélératrice de type processeur graphique est relativement récente. Avant 2007-2008, les processeurs graphiques (qui sont dénommés en anglais Graphics Processing Units, ou GPUs) qui équipaient les cartes graphiques des machines étaient dédiées à des tâches graphiques. Avec l’introduction de nouveaux outils de programmation comme CUDA ou OpenCL, les GPUs qui possèdent un nombre important de coeurs de calcul ont commencé à être utilisés comme des accélérateurs de calcul en collaboration avec le CPU pour des applications de calcul intensif en science et ingénierie. Il y a eu notamment de très nombreuses applications du calcul parallèle sur GPU en traitement du signal et en algèbre linéaire. A titre d’exemple, les processeurs C2050 donnés au LAAS-CNRS par NVIDIA dans le cadre du NVIDIA Academic Partnership de Didier El Baz qui équipent le serveur Cuda de l’équipe CDA du LAAS-CNRS possèdent chacun 448 coeurs de calcul et ont une puissance crête de 515 milliards d’opérations virgule flottante en double précision. Aussi, la majorité des constructeurs ont adopté ces architectures parallèles à des fins d’accélération pour certaines de leurs réalisations. De part le monde, certains constructeurs plus ou moins importants ont même conçu des machines massivement parallèles à base de GPUs qui ont rapidement intégré le Top 10 des supercalculateurs.
L’utilisation de GPUs à des fins d’accélération de calculs généralistes présente de nombreux intérêts :
- les GPUs sont des accélérateurs de calcul puissants du fait de leur nombre important de coeurs,
- les GPUs sont largement répandus ; ils constituent donc des accélérateurs relativement bon marché,
- les GPUs consomment moins d’énergie que d’autres solutions disponibles sur le marché.
L’attractivité du calcul sur GPU ou du calcul hybride sur système CPU-GPU est donc très récente. Elle est par ailleurs très importante et touche maintenant tous les domaines d’application en science et ingénierie. Parmi les domaines les plus importants on citera l’astrophysique, la séismique, le pétrole, le nucléaire.
Pour ce qui est des environnements pour le calcul distribué, nous étudions particulièrement des environnements décentralisés qui facilitent la mise en œuvre de calculs distribués pair à pair (c'est-à-dire pour lequel chaque nœud de calcul participant à une application peut être tour à tour client et serveur de cette application) et qui permettent la communication directe entre les pairs. Nous nous intéressons particulièrement aux applications issues de la simulation numérique ou de l'optimisation qui présentent un parallélisme de tâche et requièrent une résolution au moyen de méthodes itératives distribuées. Ces études sont effectuées dans le cadre du projet ANR CIS 07 Calcul Intensif Pair à pair, CIP, que nous coordonnons (cf.
Projet ANR CIP).