Méthodes et approches


Nous travaillons  particulièrement sur la conception d’environnements décentralisés pour le calcul intensif distribué pair à pair. Nous rappelons que dans une application pair, chaque machine qui participe à l'application peut être tour à tour client ou serveur de cette application. Ces travaux sont effectués dans le cadre du projet CIP, Calcul Intensif Pair à pair coordonné par Didier El Baz. ce projet a été déposé en 2007 en réponse à l’appel à projets Calcul Intensif et Simulation, CIS de l’ ANR. Le concept de pair à pair a connu récemment de grands développements dans le domaine du partage de fichiers ou de la vidéo avec des applications comme Gnutella. L’application de ce concept au calcul intensif permet d’envisager de rassembler des milliers sinon des millions de nœuds de calcul au sein d’une même plateforme réseau via l’intranet ou Internet pour des applications concurrentes de calcul distribué intensif. En ce sens, le calcul distribué pair à pair représente une approche économique, écologique et attractive pour le calcul massivement parallèle. Pourtant, à notre connaissance, il n’existe pas encore de solution sur le marché mettant en œuvre véritablement toutes les possibilités offertes par le concept de pair à pair pour du calcul intensif. On trouve plutôt des solutions de calcul sur grille ou de calcul global qui ne sont donc pas décentralisées, pour lesquelles il n’y a pas de communication directe entre les pairs, où tous les nœuds ne voient pas le réseau de la même façon et où certains nœuds conservent un rôle spécifique de serveur. Nous travaillons sur un environnement conçu autour d’un protocole de communication auto adaptatif dédié au calcul intensif. Cet environnement doit satisfaire des objectifs de qualité de service et d’efficacité et permettre une reconfiguration dynamique et distribuée des pairs, reconfiguration qui soit synonyme de robustesse. Notons que les systèmes à très grande échelle où le nombre de pairs peut atteindre plusieurs millions de machines, ont pour caractéristiques essentielles dynamicité et volatilité des pairs ; en conséquence, la prise en compte des aspects de robustesse est primordiale (cf. Publications).

Nos études en algorithmique distribuée sur architecture dédiée s’effectuent dans un premier temps au sein du projet Smart Surface qui a été financé en 2006, dans le cadre de l’Appel à projets du programme PSIROB 2006 de l’ANR. On s’intéresse ici principalement au traitement performant de l’information et à la gestion des communications sur une architecture distribuée dédiée à une application de micro robotique. On travaille plus précisément sur des algorithmes distribués de reconnaissance des formes et de commande ainsi qu’à la gestion des communications. La plateforme distribuée dédiée à des applications de micro robotique a pour tâche  de trier, déplacer ou  placer précisément des objets à l’échelle mésoscopique avec des impératifs de robustesse et de performance. Le projet Smart Surface propose un concept n’ayant aucun équivalent à ce jour de micromanipulateur distribué et intégré fondé sur une matrice de plusieurs centaines de micromodules intelligents. Les aspects reconnaissance distribuée des pièces et commande distribuée des actionneurs sont étudiés conjointement en détail. Divers algorithmes distribués d'acquisition de l'état de la smart surface ont été proposés ; leur convergence a été analysée et des critères d'arrêt ont été donnés. Des algorithmes concurrent de reconnaissance des formes ont été étudiés. Un simulateur de smart surface sous Java a été développé. Ce simulateur a permis de tester et de valider nos travaux (cf. Publications).

Nous travaillons aussi sur des algorithmes distribués ou parallèles asynchrones pour le calcul intensif sur architecture de type généraliste, grilles ou réseaux pair à pair. Une partie importante de nos travaux de recherche porte sur l’algorithmique distribuée ou parallèle à des fins calculatoires et dans des contextes de parallélisme ou de distribution massifs. On s’intéresse à la résolution de nombreux problèmes en optimisation non linéaire, en commande optimale et en simulation numérique. Nous poursuivons les études que nous avons menées sur les algorithmes distribués ou parallèles asynchrones (qui s’affranchissent de toute synchronisation en laissant chaque processeur aller à son propre rythme) et sur une extension récente dont nous avons été à l’initiative : les algorithmes asynchrones flexibles qui en prenant en compte la valeur courante du vecteur itéré et non plus seulement le résultat de chaque itération permettent l’utilisation de types de communication plus variés et entraînent une résolution plus efficace notamment dans le cas de convergence sous ordre partiel. Les aspects liés à l’étude des preuves de convergence, à la détection de la convergence, à la terminaison, ainsi qu’à la mise en œuvre  et à l’étude des performances sont étudiés (cf. Publications récentes et Principales publications précédent quadriennal).

Nous étudions enfin la programmation sur GPU, ou Graphic Processing Unit, afin d'accélérer la résolution de problèmes difficiles en optimisation combinatoire. Nous avons mis en œuvre de manière parallèle des méthodes de programmation dynamique et de branch and bound pour des problèmes de type sac à dos ainsi que des méthodes de Simplexe pour des problèmes de programmation linéaire. De très grandes accélération ont été obtenues notamment dans le cas de la programmation dynamique dense et du Branch and Bound (cf. Publications). Ces travaux font l'objet du NVIDIA Academic Partnership du Dr. Didier El Baz.