Un cluster de calcul hybride pour les applications de vision temps r´ eel Jo¨ el FALCOU 1 , Jocelyn S ´ EROT 1 , Thierry CHATEAU 1 , Fr´ ed´ eric J URIE 2 1 LASMEA, UMR6602 UBP/CNRS, Campus des C´ ezeaux, 63177 Aubi` ere, France. 2 GRAVIR, INRIA/CNRS, 55 avenue de l’Europe, Montbonnot 38330, France Joel.Falcou@lasmea.univ-bpclermont.fr Jocelyn.Serot,@lasmea.univ-bpclermont.fr Thierry.Chateau@lasmea.univ-bpclermont.fr, Frederic.Jurie@inrialpes.fr esum´ e– On d´ ecrit l’implantation d’une chaˆ ıne de traitement et de reconstruction de points 3D en temps r´ eel sur un cluster de PowerPC G5 biprocesseurs associant trois niveaux de parall´ elisme (SIMD grain fin, SMP et MIMD ` a passage de messages) et un dispositif d´ edi´ e de diffusion de flots vid´ eo. Nous montrons que ce type d’architecture, permettant d’exploiter plusieurs formes de parall´ elisme, r´ epond aux exigences des applications de vision temps r´ eel en alliant puissance de calcul, facilit´ e de programmation et extensibilit´ e. Des r´ esultats pr´ eliminaires sont fournis et discut´ es. Abstract – We describe the implementation of an application performing real-time reconstruction of 3D points from stereo video streams on a cluster of G5 processors. The goal is to show that the combined use of a dedicated broadcasting mechanism for input streams and a three-level parallel programming model involving SIMD,SMP and MIMD/MP parallelism makes this type of platform a suitable solution for the implementation of real-time vision applications involving complex algorithms and requiring large amounts of computing power. Preliminary results are shown and discussed. 1 Introduction La vision artificielle est une discipline exigeant de fortes puissances de calcul, particuli` erement lorsqu’il s’agit de trai- ter des flots d’images en op´ erant ` a la vol´ ee des capteurs. Pour ces applications, les traitements doivent se faire en temps r´ eel pour permettre aux syst` emes d’interagir avec leur environne- ment (applications de robotique mobile, interfaces homme ma- chine, etc.). Conscient ` a la fois de l’importance de ce type d’applications et des contraintes qui y sont li´ ees, les chercheurs du domaine ont utilis´ e diverses strat´ egies pour accroˆ ıtre la r´ eactivit´ e de tels syst` emes : d´ egradation des algorithmes, utilisation de mat´ eriels sp´ ecifiques pour les traitements de bas niveau (FPGA, proces- seurs des cartes graphiques, etc.) ou d’architectures distribu´ ees. Ces strat´ egies se sont parfois montr´ ees efficaces en raison des propri´ et´ es sp´ ecifiques des images et des structures des algo- rithmes associ´ es. Cependant, la progression constante et rapide de la puissance de calcul des ordinateurs personnels rend l’uti- lisation de solutions sp´ ecifiques de moins en moins attractive : les d´ elais suppl´ ementaires li´ es au temps de d´ eveloppement de ces solutions et de leurs logiciels, leur co ˆ ut important, plaident en effet d´ esormais en faveur de l’utilisation d’architectures fon- ees sur l’usage syst´ ematique de composants standards. Dans le domaine du calcul scientifique hautes performances (simulation, mod´ elisation, ˙ ..) cette classe de solution a vu son audience exploser ces dix derni` eres ann´ ees avec la g´ en´ eralisa- tion des clusters (grappes, fermes) de calcul bˆ aties ` a partir d’or- dinateurs individuels. Mais ce type de solution n’a pratique- ment jamais ´ et´ e mis en œuvre dans le contexte d’applications de vision complexes devant op´ erer ` a la vol´ ee de capteurs. Le travail d´ ecrit ici vise donc ` evaluer cette opportunit´ e en pro- posant une architecture de type cluster d´ edi´ ee aux applications de vision temps-r´ eel. Nous d´ ecrivons l’architecture mat´ erielle d’une telle plate-forme – en justifiant les choix technologiques effectu´ es ` a partir des exigences du domaine d’application et de l’´ etat de l’art – puis l’infrastructure logicielle associ´ ee, en insis- tant sur les aspects programmabilit´ e. La validit´ e de l’approche est d´ emontr´ ee en d´ ecrivant l’implantation d’une application de reconstruction de points d’int´ erˆ et 3D ` a partir d’un flot d’images st´ er´ eo et les performances obtenues avec une premi` ere impl´ e- mentation. 2 Architecture du cluster 2.1 Architecture mat´ erielle L’architecture mat´ erielle du cluster est pr´ esent´ ee sur la figure 1 et comprend 14 noeuds de calcul. Chacun de ces noeuds est compos´ e d’un PowerPC G5 biprocesseur 1 cadenc´ e` a 2 GHz et ´ equip´ e de 1Go de m´ emoire. Les noeuds sont interconnect´ es par un r´ eseau Ethernet Gigabit et rec ¸oivent un flux vid´ eo st´ er´ eosco- pique en provenance d’une paire de cam´ eras num´ eriques via un bus FireWire IEEE1394a 2 . Cette structure permet une diffu- sion simultan´ ee et synchronis´ ee des images sur tous les noeuds, ´ eliminant ainsi le goulet d’´ etranglement classique consistant ` a redistribuer ` a l’ensemble des noeuds les images de travail via le r´ eseau Ethernet. Dans notre configuration, la bande passante Ethernet reste disponible pour le transfert de message entre les noeuds. Le choix du processeur G5 est motiv´ e par les points suivants : La pr´ esence de l’extension multim´ edia Altivec [7]. Cette extension peut fournir des acc´ el´ erations de l’ordre de 2 ` a 12 pour de nombreuses classes d’algorithmes bas et moyen niveau. [5]. Sans cette extension, la taille du 1. Apple XServe Cluster Node 2. Fonctionnant en mode isochrone ` a 400Mo/s