Special

Semantic search

Mercredi 20 juin 2012, 14h00-16h00, Amphi 3


GPU Computing : début d'une ère ou fin d'une époque ?

Eric Mahé, responsable du projet OpenGPU

L'arrivée des GPU (Graphics Processing Unit) a profondément changé la manière de concevoir la notion de coprocesseur. A moins de 500€, il est désormais possible d'avoir à sa disposition une puissance de calcul qui n'était réservée jusqu'à un passé récent qu'aux grands centres de calcul. La société Nvidia, en mettant au point l'environnement CUDA, a fourni à la communauté des développeurs des moyens simples et efficaces pour rendre cette puissance de calcul accessible au plus grand nombre. Depuis, sous l'impulsion de la société Apple, le standard OpenCL est venu ouvrir la voie d'une véritable parallélisation des applications sur l'ensemble des ressources processeur offertes aux développeurs.

Cet exposé décrira les différentes technologies permettant la programmation parallèle des GPU en mettant l'accent sur les contraintes actuelles et les progrès à venir des futures architectures comme le processeur Kepler. Des démonstrations ainsi que des exemples de code viendront compléter cet exposé.

Eric Mahé a été responsable des nouvelles technologies au sein de l'équipe marketing de Sun France pendant 20 ans après avoir occupé différents postes de chef de projet dans le domaine du nucléaire et de la défense. Son rôle fut d'évangéliser les choix technologiques et stratégiques de Sun auprès des communautés concernées par le langage Java, les développements du Logiciel Libre et les applications citoyennes de la fédération d'identité basées sur le projet Liberty Alliance. Diplômé de plusieurs troisièmes cycles en marketing, biologie et informatique, Eric Mahé est administrateur de l'association Silicon Sentier, expert auprès du pôle de compétitivité CAP Digital et professeur de communication à l'université René Descartes – Paris V.

Eric Mahé assure depuis 2009 la direction du projet OpenGPU dont l'objectif est la mise au point de nouvelles chaînes de compilation à destination des architectures hybrides GPU/CPU et a fondé la société MassiveRand spécialisée dans les nombres aléatoires dans le domaine de la sécurité.

Mercredi 9 mai 2012, 14h00-17h30, Amphi 3


Un modèle générique de traitement et de représentation des images

Antoine Manzanera

Concilier généricité et performance des systèmes de vision a toujours été au cœur des préoccupations scientifiques du laboratoire d'Électronique et Informatique d'ENSTA-ParisTech. Nous y avons abordé ce problème sous différents points de vue: électronique, algorithmique, et logiciel. Depuis nos travaux sur les rétines programmables et leur algorithmique exotique, nous avons progressivement intégré la multiplicité des modèles et structures de données, ainsi que l'emprise des architectures sur étagères, pour appréhender l'hétérogénéité des systèmes multi-plateformes.

Dans cette présentation à deux voix, on abordera le problème sous deux angles complémentaires, l'un touchant au modèle et aux algorithmes, l'autre au logiciel et aux plateformes de calcul.

Ce premier exposé présente un modèle générique de traitement et de représentation des images fondé sur les espaces de caractéristiques "local jets" (LJ, ou dérivées partielles multi-échelles), comme exemple de cadre algorithmique unifié. Grâce à un espace où la métrique naturelle est directement liée à la similarité visuelle, ce cadre permet d'aborder un grand nombre d'opérateurs de traitement d'images de bas niveau, qui correspondent généralement à la rétro-projection dans l'espace image de points de l'espace des caractéristiques transformé. Il permet aussi d'aborder des représentations visuelles de plus haut niveau (modèles d'objet par exemple) à partir de statistiques globales extraites de l'espace des caractéristiques. On justifiera cette représentation et on l'illustrera par diverses applications : Moyennes non locales (NL-Means) par Convolution dans l'espace LJ pour le débruitage de vidéos, Calcul du flux optique par recherche du plus proche voisin dans l'espace LJ, Modélisation de fond statique par échantillonnage de l'espace LJ, Détection d'objets par transformée de Hough dense...

Antoine Manzanera est diplômé de l'Université Claude Bernard à Lyon (Licence de Maths 1991 et Master d'Informatique Fondamentale 1993), et Docteur de Télécom-ParisTech en Signal et Images ("Vision artificielle rétinienne", 2000). Depuis 2001 il est Enseignant-Chercheur à l'ENSTA-ParisTech. Dans ses recherches, il s'intéresse au Traitement d'Images et à la Vision de bas niveau, du modèle mathématique à l'implantation parallèle sur un système embarqué. Il enseigne principalement en 2ème et 3ème année du cycle Ingénieur ENSTA, et dans le Master d'Informatique de l'UMPC (Paris 6), dans les spécialités Imagerie et IAD.

http://www.ensta-paristech.fr/~manzaner

Analyse des mouvements apparents dans un flux vidéo

Matthieu Garrigues

Dans ce second exposé, Matthieu Garrigues parlera de ses travaux sur l'analyse des mouvements apparents dans un flux vidéo. La primitive de base, présentée dans un séminaire précédent, permet le suivi temps réel (supérieur à 30 images par seconde) de plusieurs milliers de particules. Ces travaux nous ont permis de développer un cadre générique facilitant l'analyse de scènes dynamiques prises de caméras fixes ou mobiles. Nous montrerons comment cette brique logicielle a été utilisée dans deux exemples d'applications : l'extraction des plans principaux et l'estimation de la profondeur dans un système mono-caméra. Le suivi de particules a été implémenté sur processeurs graphiques avec le framework CUDA, et sur CPU-multicœurs avec OpenMP. Nous expliquerons comment C++ a été utilisé pour factoriser un maximum de code entre ces deux implémentations.

Matthieu Garrigues est diplômé de la promotion CSI 2009 de l'EPITA. Depuis, il s'intéresse au développement et à l'implantation d'applications de vision sur des architectures parallèles. Il est actuellement ingénieur de recherche à l'unité d'électronique et d'informatique de l'ENSTA, où il travaille sur l'analyse temps réel de scènes acquises par des systèmes mobiles mono-caméra.

http://www.ensta-paristech.fr/~garrigues

Mercredi 21 mars 2012, 14h30-16h30, Amphi 3


Le point de vue d'un théoricien sur l'intérêt de la généricité pour le traitement d'images

Laurent Najman

Une question fondamentale pour mes recherches est de savoir ce qu'est une image. Cela peut sembler à première vue une question trop simple : une image, c'est un ensemble de points. Mais ces points sont reliés entre eux, c'est ce qu'on appelle une structure, et ils ont des données de types multiples qui leur sont attachées. La bibliothèque Milena, développée au LRDE, est une bibliothèque générique dédiée au traitement d'images. Dans Milena, trois axes indépendants sont développés : l'axe des structures, l'axe des données, et celui des algorithmes, c'est-à-dire de ce qu'on peut faire avec une image.

Dans cet exposé, je vais développer plusieurs exemples dans lesquels je choisirai un algorithme et un type de données, en faisant varier la structure. Changer la structure, c'est penser les images d'une manière différente, et c'est quelque chose d'extrêmement porteur en recherche.

- Un premier exemple est celui d'un algorithme classique de

 segmentation : la ligne de partage des eaux. Originellement pensé sur
 les pixels, sa traduction dans le cadre des arêtes donne le problème
 classique d'arbre couvrant de poids minimum. Si la ligne de partage
 des eaux est très connue en traitement d'images, les arbres de
 poids minimum sont très utilisés en classification. Un pont naturel
 est alors établi entre deux communautés différentes, et les idées
 provenant de ces deux communautés peuvent être combinées.

- Un deuxième exemple est celui de la représentation arborescente des

 images.  Pour illustrer, tant les lignes de niveaux que les
 composantes connexes des ensembles de niveaux (les coupes) des
 images sont naturellement structurées en arbre : deux lignes ou deux
 composantes sont soit disjointes soit emboîtées.  On peut filtrer
 une image en éliminant de l'arbre tous les nœuds qui ne vérifient
 pas un critère. Mais on peut aussi considérer l'arbre lui-même comme
 une image, et appliquer sur cet arbre un algorithme de traitement
 d'images. C'est une idée récursive très riche.

D'autres exemples pourront être développés en fonction du temps : liens entre ligne de partage des eaux topologique et segmentation hiérarchique, topologie discrète dans divers cadres...

La bibliothèque Milena permet d’appliquer la plupart des algorithmes existants à une nouvelle structure, ce qui est un gain de temps incontestable. Cela permet de se concentrer sur ce qui fait le cœur de mon métier: chercher un algorithme plus efficace, adapté à un type de structure, ou encore chercher quelles sont les propriétés mathématiques d’un algorithme sur une structure donnée.

Laurent Najman a reçu l’habilitation à diriger les recherches de l'université de la Marne-La-Vallée en 2006, un doctorat en mathématiques appliquées de l’université de Paris-Dauphine en 1994, et un diplôme d’ingénieur de l'École des Mines de Paris en 1991.

Il a travaillé chez Thomson-CSF sur la segmentation d'images infrarouges en utilisant la morphologie mathématique, chez Animation Science sur des systèmes de particules pour l'infographie et de la visualisation scientifique, puis chez OCÉ sur des problèmes d’analyse et de traitement d'images pour l'impression.

Depuis 2002, il est enseignant-chercheur à l’ESIEE, actuellement professeur, membre du Laboratoire d’Informatique Gaspard-Monge (Université Paris-Est). Ses recherches portent sur la morphologie mathématique discrète et l’optimisation discrète.

Mercredi 14 mars 2012, 14h-16h, Amphi 3


Reusable Generic Look Ahead Multithreaded Cache - a case study for a high resolution player

Guillaume Chatelet

L'industrie des effets spéciaux produit une grande quantité d'images qu'il faut traiter et afficher. Dans le cadre de ses développements internes, Mikros Image a développé et mis en Open Source un player d'images temps réel : duke. Dans cet exposé je décrirai quels sont les enjeux techniques d'un tel logiciel (allocation mémoire, accès disque, multiplicité des formats, affichage, traitement...) puis j'expliquerai plus en détails les étapes de la conception d'un composant essentiel permettant de lire et décoder le plus rapidement possible les images à afficher. Ce composant ayant pour but d'être intégré dans d'autres outils, il doit être réutilisable.

Guillaume Chatelet est diplômé de l'ENSICaen et titulaire d'un DEA en intelligence artificielle et algorithmique. Il travaille en qualité d'ingénieur recherche et développement à Mikros Image depuis sept ans. En 2007, il contribue à la bibliothèque Loki, initiée par Andrei Alexandrescu, puis à la plate-forme Eclipse.

http://www.mikrosimage.eu/, https://github.com/mikrosimage/duke, https://github.com/mikrosimage/concurrent utils

Mercredi 15 février 2012, 14h-17h, Salle Master


Des performances dans les nuages avec la virtualisation des langages

Yann Régis-Gianas

«The effective exploitation of his powers of abstraction must be regarded as one of the most vital activities of a competent programmer.» disait Dijsktra.

En effet, pour aborder la complexité d'un problème, l'explicitation des concepts utiles à sa formalisation et à sa résolution est bien souvent une étape clé. Lorsque que l'on étend ce processus à une classe de problèmes qui partagent les mêmes concepts, il est naturel de se doter d'un langage le plus approprié possible pour manipuler ces abstractions spécifiques à un domaine (en anglais, «Domain Specific Language»).

Comment implémenter ces DSLs? Une première approche classique reflète les constructions du DSL sous la forme d'un jeu de fonctions de bibliothèque. L'avantage de cette approche est d'utiliser directement son langage généraliste préféré, et sa chaîne de compilation optimisée, de façon à générer du code machine à moindre frais. Par contre, dans ce cadre, l'écriture de passe d'optimisations spécifiques au DSL - à moins d'utiliser des techniques pointues de méta-programmation - est a priori impossible.

Une seconde approche, opposée, consiste à écrire un compilateur pour le DSL à partir de zéro. Toute liberté est alors donnée à l'implémenteur d'intégrer à son compilateur des passes d'optimisation spécifiques… mais au prix d'une réimplémentation de passes de compilation déjà présentes, et certainement plus abouties, dans le compilateur de son langage généraliste favori.

Dans cet exposé, je présenterai les travaux de Martin Odersky et son équipe sur la virtualisation de DSLs à l'intérieur du langage de programmation Scala. La virtualisation de langage utilise intensivement le polymorphisme et la composition mixin de Scala ainsi que des techniques de génération de code à l'exécution pour embarquer des langages spécifiques dans Scala dont la compilation peut réutiliser des modules du compilateur mais aussi étendre ces derniers par des optimisations spécifiques au domaine.

Yann Régis-Gianas est un ancien élève de l'EPITA, promo CSI 2003. À sa sortie de l'école, il a poursuivi un troisième cycle en passant un DEA à l'Université Paris Diderot et une thèse à l'INRIA Rocquencourt. Il est aujourd'hui maître de conférence à Paris Diderot et travaille sur le design des langages de programmation et de preuve.

http://www.pps.jussieu.fr/~yrg/

Certification d'annotations de coût dans les compilateurs

Nicolas Ayache

Nous traitons du problème de la conception d'un compilateur où des informations sur le coût à l'exécution du code objet sont retournées en tant qu'annotations de coût sur le code source, et ce de façon certifiée correcte. Pour cela, nous avons besoin d'une idée souple et précise : (i) du sens donné aux annotations de coût, (ii) de la méthode pour les prouver correctes et précises, et (iii) de la manière d'en composer les preuves. Nous proposons ce que nous appelons une approche par étiquetage pour répondre à ces trois questions. Dans un premier temps, nous montrons son application sur un compilateur jouet. L'étude formelle qui en découle suggère que l'approche par étiquetage a de bonnes propriétés de compositionnalité et de passage à l'échelle. Afin de s'en convaincre davantage, nous rapportons notre retour d'expérience sur l'implémentation d'un compilateur prototype écrit en ocaml pour un large sous-ensemble du langage C.

Nicolas Ayache, ancien doctorant Université Paris-Sud / CEA-LIST, est actuellement Post-doc au laboratoire PPS (Preuves, Programmes et Systèmes) à l'université Paris Diderot.

Mercredi 16 novembre 2011, 14h-16h, Amphi A4


Interactive 2D and 3D Segmentation with ilastik

Ullrich Köthe

The ilastik system developed by our group uses machine learning and simple interaction techniques to empower users without special image processing expertise to segment and analyze their 2- and 3-dimensional image data on their own. It offers a number of easy-to-use workflows for various common analysis tasks. The talk will present two of these workflows (“interactive classification” and “region carving”), going from an online demonstration of the high-level user experience down to the algorithmic and software design details. Special emphasis will be put on aspects of genericity and parallelization which facilitate convenient adaptation of basic building blocks to different contexts without loss of performance. Examples from challenging biological applications will illustrate our system's capabilities.

Ullrich Köthe is a senior researcher in the Multidimensional Image Processing Group at the Interdisciplinary Centre for Scientific Computing of the University of Heidelberg, Germany, where he heads advanced research on image and data analysis for industry and the life sciences. Formerly, he was with the Cognitive Systems Group at the University of Hamburg (1999-2007) and with the Fraunhofer-Institute for Computer Graphics in Rostock (1992-1999).

Ullrich Köthe's main field of research is the development of user-friendly image analysis methods. He is interested in all techniques that facilitate genericity and re-usability, from machine learning and probabilistic modeling to generic programming and empirical performance evaluation. Dr. Köthe is the originator and maintainer of the open-source image analysis library VIGRA and co-developer of the interactive ilastik toolkit, which have been designed to put these ideas into practice.

http://www.ilastik.org

Mercredi 26 octobre 2011, 14h-15h30, Amphi masters


Pourquoi Javascript est-il aussi rapide/lent ?

Nicolas Pierron

Comment Javascript, un langage dynamique, interprété et non typé, parvient à être aussi rapide ? Quelles sont les avancées qu'il reste à faire pour obtenir des performances identiques au langage C ?

Pour illustrer cette présentation, on s’intéressera à l’évolution du navigateur Mozilla Firefox et aux différentes approches pour résoudre ce problème.

Diplômé de la promotion CSI 2008 de l'EPITA, Nicolas Pierron travaille actuellement à Mozilla Paris sur le nouveau moteur Javascript IonMonkey.

http://www.mozilla-europe.org/fr/

Mercredi 6 juillet 2011, 14h-15h, Amphi masters


Un algorithme rapide pour le Compressive Sensing sur architectures parallèles

Alexandre Borghi

Dans ce séminaire je présenterai un algorithme de résolution approchée pour le problème du Compressive Sensing basé sur la programmation convexe. Cet algorithme a la particularité d'avoir été pensé dès sa conception pour tirer partie des architectures matérielles modernes, ce qui permet une implémentation efficace et rapide sur celles-ci. Bien qu'une résolution approchée soit en pratique suffisante pour obtenir rapidement une solution de très bonne qualité, une variante exacte très rapide sera aussi présentée. Cette dernière n'est toutefois utilisable que sous certaines conditions. Trois types d'architectures parallèles sont ici envisagées : des processeurs multi-cœurs avec unités de calcul vectoriel, des processeurs graphiques (GPU) et le processeur Cell.

Alexandre Borghi est diplômé de la promotion CSI 2007 de l'EPITA et effectue actuellement sa thèse au LRI de l'Université Paris-SUD XI. Il s'intéresse principalement à l'adaptation de l'algorithmique aux architectures parallèles.

http://www.lri.fr

Mercredi 15 juin 2011, 14h-17h, Amphi masters


Modèle basé-contexte pour l'annotation automatique du multimédia

Nicolas Ballas

Ces dernières années ont vu exploser le nombre de vidéos disponibles sur internet. Pour permettre leur exploitation, il est nécessaire de mettre en place des systèmes analysant automatiquement ces données multimédia. De tels systèmes permettent notamment d'indexer automatiquement des vidéos en fonction de leurs contenus. Durant cette présentation, je m'intéresserai aux récentes avancées effectuées dans ce domaine. Je présenterai des descripteurs vidéos, développés dans le cadre de ma thèse, qui capturent le mouvement et l'apparence d'une vidéo pour les résumer dans une courte signature. Ces signatures peuvent être utilisées a posteriori pour détecter différents évènements ou concepts dans les vidéos.

Nicolas Ballas effectue sa thèse entre le laboratoire LVIC du CEA/List et le laboratoire CAOR de l'école des Mines de Paris. Il s'intéresse principalement au problème de perception automatique à travers l'étude d'algorithmes combinant vision par ordinateur et apprentissage automatique.

http://www.kalisteo.fr/en/index.htm, http://caor.mines-paristech.fr/

Traitement d'images sur processeur graphique avec CUDA et C++

Matthieu Garrigues

Conçus à l'origine pour le rendu 2D et 3D, les processeurs graphiques (GPU) peuvent aujourd'hui être considérés comme des processeurs génériques massivement parallèles. Mais ce parallélisme impose des contraintes sur les algorithmes implantés et les types de données utilisés. D'autre part, le bus de communication entre le processeur central (CPU) et le GPU peut être un goulot d'étranglement.

Ce séminaire débutera par un aperçu des avantages et inconvénients de la programmation GPU, puis je présenterai l'implantation d'un algorithme temps réel de suivi de points dans une vidéo. Je terminerai par l’introduction de deux petites boîtes à outils : Cuimg et Dige. Cuimg utilise C++ pour simplifier l'écriture d'algorithmes de traitement d'images avec CUDA, tandis que Dige, basée sur le framework Qt, permet le prototypage rapide d'interfaces graphiques.

Matthieu Garrigues est diplômé de la promotion CSI 2009 de l'EPITA. Depuis, il s'intéresse au développement et l'implantation d'applications de vision par ordinateur sur des architectures parallèles. Il est actuellement ingénieur de recherche à l'unité d'électronique et d'informatique de l'ENSTA.

http://uei.ensta-paristech.fr

Mercredi 18 mai 2011, 14h-16h, Amphi masters


Utilisation des distances tangentes pour la compensation de mouvement : Application au codec Theora

Jonathan Fabrizio

Pour encoder de manière efficace une séquence vidéo, la redondance temporelle est souvent utilisée. Pour cela, le mouvement entre l'image considérée et une image de référence est estimé. Cela permet de générer une prédiction à partir de l'image de référence et seule la différence entre la prédiction et l'image réelle est enregistrée. Pour estimer ce mouvement, les codecs se contentent souvent de suivre l'évolution spatiale de blocs dans l'image. Ils associent, pour chaque bloc de l'image considérée, un bloc similaire dans un voisinage proche dans l'image de référence. Nous présentons ici une méthode originale pour réaliser cette prédiction par compensation de mouvement. Notre méthode utilise les distances tangentes. Cela permet non seulement d'estimer l'évolution de la position des blocs de l'image mais en partie aussi l'évolution du bloc lui-même. Nos prédictions sont donc de meilleure qualité. Utilisée dans l'encodage de séquences, on peut espérer un gain de compression non négligeable. Pour valider l'efficacité de la méthode, nous intégrons cette méthode dans le codec Theora et mesurons son efficacité en comparant les résultats obtenus avec notre méthode et ceux obtenus par une stratégie classique (le block-matching).

Jonathan Fabrizio est enseignant-chercheur au LRDE depuis l'été 2009. Il travaille actuellement sur la localisation et l'extraction automatique de texte dans les images.

Mercredi 16 mars 2011, 14h-16h, Amphi masters


Généricité en traitement des images : développement d’algorithmes complexes et localisés au sein d’une image.

Benoît Vandame

La plupart des bibliothèques génériques en traitement d’images mettent l’accent sur la généricité, la mise en pipeline d’opérations basiques, mais peu mettent l’accent sur la sélection d’un sous-ensemble de pixels concerné par un algorithme. En pratique de nombreux algorithmes ne s’appliquent que sur un sous-ensemble simple (rectangle) ou complexe (forme contiguë quelconque) de pixels qui ne sont qu’une petite fraction d’une image. La création d’un masque précisant les pixels concernés ne semble pas une solution optimale (contrainte mémoire et calculatoire). Dans le cadre de développement d’algorithmes en traitement d’images et vidéos, le laboratoire Canon Research Centre France (localisé à Rennes) développe une bibliothèque générique de traitement d’images qui ajoute la notion de forme à toute manipulation basique ou complexe d’une image. Une « arithmétique » des formes permet une sélection précise de pixels et une exécution efficace d’algorithme complexe. Les motivations, la mise en œuvre de cette bibliothèque, les outils template utilisés seront présentés et illustrés d’exemples concrets.

Benoît Vandame a obtenu sa thèse (2004) en traitement d’images appliqué à de grands relevés astronomiques au sein de l’European Southern Observatory (ESO-Munich). Depuis 2007, il travaille au laboratoire Canon Research Centre France (CRF-Rennes). Ses travaux portent sur le computational imaging (super-resolution, light-field imaging). Fort de son expérience en traitement automatique de larges données, il participe activement à la création d’une bibliothèque générique de traitement d’images pour les développements réalisés au sein du laboratoire CRF.

Mercredi 9 février 2011, 14h-16h, Amphi masters


Principes et Pratiques de la Programmation Concurrente en π-calcul

Frédéric Peschanski

Nous étudions la problématique du mélange de paradigmes de programmation variés plongés dans un environnement concurrent. Dans cette perspective, nous poursuivons un cheminement similaire à celui qui conduit du lambda-calcul aux langages fonctionnels, mais en prenant comme point de départ le π-calcul. Nous proposons la machine abstraite des π-threads dont la principale originalité est l’absence de pile d’exécution. Cette caractéristique permet de nous reposer dans nos implémentations sur des algorithmes simples et naturellement concurrents, notamment pour ce qui concerne l’ordonnancement et le ramasse-miettes. Pour ce dernier, nous proposons un algorithme permettant de récupérer très simplement les cycles de processus en interblocage et autres structures bloquantes.

Frédéric Peschanski est Maître de Conférences à l'Université Pierre et Marie Curie. Il effectue ses recherches au sein du laboratoire d'informatique de Paris 6, dans l'équipe APR (algo-prog). Il étudie essentiellement les langages de programmation avec comme leitmotiv la théorie mise en pratique (et vice-versa).

Mercredi 8 décembre 2010, 14h-16h30, Amphi 4


PHP.Reboot: un language de script utilisant la JSR 292

Rémi Forax

Depuis 2000, on assiste à un regain d'intérêt pour les langages typés dynamiquement regroupés sous la bannière "langage de script". Pour les langages de script les plus populaires, comme PHP, Python ou Ruby, il existe, en plus des implantations écrites en C, des implantations plus récentes utilisant des environnements comme la machine virtuelle Java (JVM) ou la plateforme .Net. Ces implantations sont souvent plus efficaces que les implantations historiques, pourtant, ces environnements d'exécution utilisent des langages intermédiaires typés statiquement qui sont peu propices à l'implantation de langage typé dynamiquement. Partant de ce constat, le Java Community Process a créé la JSR 292 intitulée "Supporting Dynamically Typed Languages on the JavaTM Platform" dont le but est de proposer une API facilitant l'implantation et les performances des langages de script sur une machine virtuelle Java.

Mon exposé se compose de deux parties.

Dans un premier temps, en tant que membre du groupe d'experts, j'essaierai de restituer de façon didactique les concepts introduits par la JSR 292 en expliquant les tenants et les aboutissants.

La seconde partie, plus personnelle, montrera comment développer l'environnement d'exécution d'un langage de script en utilisant les outils fournis par la JSR 292. Je m'appuierai pour cela sur un prototype de langage que j'ai développé et nommé PHP.reboot.

Rémi Forax est, depuis 2003, maître de conférence à l'université Paris Est Marne-la-Vallée au sein du Laboratoire Informatique Gaspard Monge (LIGM). Ses travaux de recherche sont centrés sur la conception de compilateurs et d'environnements d'exécution basée sur des machines virtuelles.

Mercredi 10 novembre 2010, 14h-16h30, Amphi 4


Programmation par propriétés : application au traitement d'images

Vincent Tariel

L'idée d'une fonction est que la quantité d'entrée détermine complètement la quantité de sortie. En informatique, la quantité est une structure de données qui peut être simple, booléenne, entière, ou complexe, image, graphe, arbre. Dans ce domaine, un champ de recherche est de construire un ensemble de fonctions élémentaires, puis par composition d'en créer des plus compliquées. Pour cette dernière, une solution pratique est le langage Caméléon conçu par V. Tariel et O. Cugnon de Sevricourt, qui est un langage de flux de données génériques dont la sortie est prévue en janvier 2011. Générique signifie que tous les types de données peuvent être intégrés dans le langage. Pour cette première, ce séminaire couvrira quelques définitions de fonctions primaires reliées à l'image, incorporées à la bibliothèque standard de Caméléon. A la manière de l'implémentation de la bibliothèque standard du C++, il y aura l'utilisation d'un côté de l'algorithme générique for\_each en typage statique et de l'autre des opérateurs et des itérateurs organisés en programmation orientée objet. L'itérateur localise l'action suivant différents paradigmes : ensemble fini et dénombrable, voisinage, convolution, zone d'influence. L'opérateur agit suivant différents paradigmes : arithmétique, croissance de régions.

Ayant d'un côté un profile "informatique", ingénieur ESIEE avec un master en traitement d'images, et de l'autre côté un profile "science des matériaux", thèse en physique à l'école polytechnique avec un autre master en science des matériaux, le domaine de recherche de Vincent Tariel est axé sur l'image aussi bien expérimentalement, préparation de l'échantillon, microscopie, que numériquement, segmentation, caractérisation géométrique et physique, modélisation.

Il est rattaché au Department of Applied Mathematics, Australian National University

Mercredi 13 octobre 2010, 14h-16h, Amphi 4


Recherche d'images et indexation multimédia basées contenu

David Picard

Dans la recherche multimédia basée contenu, on distingue trois champs d'applications différents : la recherche de cible dans laquelle on désire retrouver un document particulier ; la recherche interactive, dans laquelle l'utilisateur définit l'objet de la requête au fil de son interaction avec le système ; et la catégorisation, où il s'agit d'étiqueter les données en un certain nombre de classes prédéfinies.

Cette présentation fera le tour d'horizon de mes travaux de recherche dans deux de ces domaines. Une première partie concernera la recherche de cible, où je présenterai le cas particulier de la recherche de quasi-copies dans de très grands volumes de données, et en particulier une application à la recherche de scènes urbaines identiques dans le cadre du projet iTowns.

Dans la deuxième partie, je développerai mes travaux récents sur la classification d'images. L'accent y sera mis sur la fusion de descripteurs multimédias et les techniques d'apprentissage statistique permettant d'apprendre conjointement l'opération de fusion avec la fonction de classification.

David Picard est actuellement maître de conférences à l'ENSEA (Cergy-Pontoise) au sein du laboratoire ETIS. Ses travaux de recherche sont centrés sur la reconnaissance de forme, l'apprentissage statistique ainsi que l'indexation de documents multimédia et la recherche d'information dans un contexte distribué. Il a obtenu sa thèse en 2008 sur la recherche d'image basée contenu à l'aide d'un système multi-agents, dans le cadre de données distribuées sur un réseau. Il a effectué ensuite un stage post-doctoral au LIP6 de l'université Pierre et Marie Curie, financé par le projet iTowns en partenariat avec l'IGN, pour la conception d'un moteur de recherche multimédia dans un contexte à la StreetView des rues de Paris.

Mercredi 2 juin 2010, 14h-16h, Amphi 4


Généricité et topologie discrète en C++

Julien Lamy

Le traitement d'images est par nature un procédé discret, au cours duquel un signal continu est décomposé en un ensemble de pixels, ou de voxels pour des images tri-dimensionnelles. Au niveau géométrique, cette nature discrète pose peu de problèmes, car la plupart des opérations géométriques sont indépendantes de la grille sous-jacente ; au niveau topologique, le problème est tout autre. Deux des notions fondamentales de la topologie, le voisinage et la connexité, sont radicalement différentes entre un espace continu et un espace discret : il est entre autres impossible de subdiviser un voisinage discret de façon infinie comme c'est le cas dans un espace euclidien.

Bien que certaines bibliothèques de traitement d'images contiennent des algorithmes topologiques, notamment de squelettisation, le type de voisinage utilisé par ces algorithmes est généralement fixé par le code, ce qui empêche une adaptation facile à un autre type de connexité ou à un espace de dimension différente.

Ce séminaire présente une méthode générique pour intégrer les notions discrètes de voisinage et de connexité à une bibliothèque de traitement d'images programmée en C++. Je montrerai également comment obtenir de façon simple un algorithme de squelettisation homotopique en utilisant ces notions.

Julien Lamy est titulaire d'un doctorat de l'Université de Strasbourg. De 2001 à 2006, il a travaillé au sein de l'équipe de R&D de l'IRCAD (Institut de recherche contre les cancers de l'appareil digestif, Strasbourg) au développement d'algorithmes de traitement d'images médicales. Depuis 2008, il est ingénieur de recherche au Laboratoire d'imagerie et de neurosciences cognitives de l'Université de Strasbourg.

http://www-ulpmed.u-strasbg.fr/ipb/

Interface générique pour la parallélisation d'applications de recherche en imagerie biomédicale

Yann Cointepas

Le projet BrainVISA (http://brainvisa.info) est en train de développer, avec le soutien du projet européen HiPiP (http://hipip.eu), une architecture générique pour la parallélisation des applications. Cette architecture fournira un accès à divers moyens de calculs (fermes de stations de travail, clusters, centres de calculs, etc.) en s'appuyant sur des solutions existantes pour la gestion des ressources (Sun Grid Engine, Condor, LSF, etc.) Cette architecture est développée pour répondre aux besoins croissants de moyens de calcul dans le monde de la recherche en neuroimagerie. Au cours de ce séminaire, j'aborderai rapidement le contexte de la recherche en neuroimagerie en me focalisant sur les besoins en parallélisation d'applications. Ensuite, je détaillerai la solution que nous avons choisie pour répondre à ces besoins.

Yann Cointepas a obtenu un doctorat de Traitement du signal et des images à l'Ecole Nationale des Télécommunications de Paris en 1999. Depuis 2003, il a un poste d'ingénieur-chercheur à la Direction des Sciences du Vivant du CEA. Il travaille au sein du laboratoire LNAO situé à NeuroSpin. Il fait également partie des personnels de l'IFR 49. Il est un des architectes historiques du projet BrainVISA. Ses activités de recherche concernent principalement l'analyse structurelle du cerveau humain avec de l'imagerie par résonance magnétique (IRM) et plus particulièrement l'étude de la connectivité cérébrale à partir d'IRM de diffusion.

http://www.lnao.fr/

Mercredi 28 avril 2010, 14h-16h, Amphi Masters


Diagrammes de Décision à la Demande (DDoD)

Alban Linard

Les Diagrammes de Décision (DDs) forment une vaste famille de structures de données, qui permettent de représenter et manipuler très efficacement de grandes quantités d'informations. Cependant, parmi les nombreux types de DDs, l'utilisateur est souvent désemparé pour choisir le bon. Souvent, aucun type ne répondant exactement à ce qu'il cherche, l'utilisateur doit faire adapter ses données au type de DDs choisi.

Le problème est que chaque type de DDs possède sa propre définition. Il n'existe aucun socle commun qui permette de définir n'importe quel type de DD. Ce problème se reflète au niveau des opérations manipulant les DDs. Celles-ci sont aussi spécifiques à chaque type.

Cet exposé présente les Polymorphic Decision Diagrams, un cadre assez général permettant de spécifier de nombreux types de DDs existants. L'utilisateur peut ainsi décrire simplement les DDs correspondant le mieux aux données qu'il souhaite représenter. Ce cadre permet de plus d'ajouter dans la spécification les informations qui permettront de retrouver les performances des types définis jusqu'à présent. Un exemple concret impliquant des loutres permettra de montrer les possibilités offertes par ce cadre.

Alban Linard est post-doctorant à l'université de Genève, dans l'équipe "Software Modeling and Verification". Sa thèse s'est déroulée conjointement au LIP6, dans l'équipe Modélisation et Vérification et au LRDE. Il s'intéresse aux Diagrammes de Décision et à leur application dans le model checking.

http://smv.unige.ch

Architecture logicielle pour des outils génériques en traitement d'images

Roland Levillain

La plupart des frameworks de traitement d'images ne sont pas assez génériques pour garantir une réutilisabilité effective des structures de données et des algorithmes, tout en préservant performances et facilité d'utilisation, et en restant proche de la théorie. Dans cette présentation, nous proposons un cadre logiciel pour le traitement d'images centré sur le paradigme de programmation générique, cherchant à répondre tant aux besoins pratiques que théoriques des scientifiques et des développeurs : la mise au point de méthodes rapides et réutilisables, un niveau de généricité progressif, la possibilité de traiter des ensembles de données volumineux, une gestion de la mémoire automatique et efficace, la vérification statique des types, l'orthogonalité des structures de données et des algorithmes, etc. Cette approche permet aux utilisateurs de concevoir et d'implémenter de nouvelles méthodes délivrées des contraintes habituellement imposées pas les outils logiciels, de pratiquer des expériences inter-domaines, de généraliser certains résultats et de transformer facilement des prototypes en de vraies applications.

Roland Levillain est diplômé de l'EPITA (2003) et titulaire d'un Mastère Spécialisé en Signal, Image et Reconnaissance des Formes (SIRF) de l'ENST (2004). Depuis 2005, il travaille à l'EPITA et au Laboratoire de Recherche et Développement de l'EPITA (LRDE) en tant qu'enseignant-chercheur. Ses travaux portent sur le génie logiciel en traitement d'images. Il participe au développement du projet Olena, une plate-forme générique et performante pour le traitement d'images, et poursuit une thèse sur le sujet depuis 2007.

http://www.lrde.epita.fr/cgi-bin/twiki/view/Main/RolandLevillain

Mercredi 31 mars 2010, 14h-16h, Amphi 4


Généricité en traitement d'images: niveau algorithmique et logiciel

Jean-Baptiste Fasquel

Ce séminaire porte sur certains de mes travaux en matière de généricité et réutilisation en traitement d'images. Ces travaux sont présentés à une échelle algorithmique, bas-niveau, et à une échelle logicielle, plutôt haut-niveau. À l'échelle de l'algorithme, nous présentons une technique permettant d'étendre la généricité des algorithmes de traitement d'images par rapport à la région d'intérêt traitée, en complément de la généricité par rapport aux données (1D, 2D, 3D, scalaires, couleurs, multi-spectrales, séquences, etc.) Cette méthode repose sur une adaptation du patron de conception « Iterator » et sur le polymorphisme de compilation en C++. Au niveau logiciel, l'objectif de la généricité et de réutilisation est de faciliter le couplage des algorithmes « purs » avec des fonctionnalités supplémentaires telles que la visualisation, l'interface homme-machine, les entrées-sorties... Dans ce cas, je présente les principes d'une architecture flexible et évolutive implémentée en C++, combinant la notion de (programmation par) rôle et la notion de (programmation par) composants réutilisables. Ces travaux sont illustrés par des applications dans le domaine médical.

Titulaire d'un diplôme d'ingénieur et d'un doctorat de l'université de Strasbourg, Jean-Baptiste Fasquel a été, de 2002 à Septembre 2009, chargé de recherche au sein de l'équipe informatique de l'IRCAD (Institut de Recherche contre les Cancers de l'Appareil Digestif, Strasbourg). Depuis Septembre 2009, il est enseignant-chercheur à l'université d'Angers, rattaché au Laboratoire d'Ingénierie des Systèmes Automatisés (LISA). Sa thématique de recherche concerne le traitement des images, et couvre aussi bien l'aspect méthode que l'aspect implémentation. Son domaine d'application principal est l'aide au diagnostic médical.

http://www.istia.univ-angers.fr/LISA/PERSO/persoen.php4?nom=FASQUEL

Généricité et héritage en Eiffel

Bertrand Meyer

L'une des caractéristiques de la programmation objet est l'intégration (introduite par Eiffel dans un article de la première conférence OOPSLA en 1986) entre les mécanismes d'héritage, permettant de structurer clairement la description des systèmes, et de généricité, permettant le paramétrage de ces descriptions. La combinaison de ces deux techniques d'architecture est la clé de l'extensibilité et de la réutilisabilité permises par la technologie objets. L'exposé montrera l'interaction entre la généricité et l'héritage en Eiffel et l'application de ces concepts aux tâches d'analyse, de conception et d'implémentation en génie logiciel. De nombreux exemples illustreront l'application de ces idées, et compareront avec les solutions adoptées dans des langages tels que Java et C\#.

Bertrand Meyer est professeur de génie logiciel à l'École Polytechnique Fédérale de Zurich (ETH) et Chief Architect d'Eiffel Software (Santa Barbara). Il est l'auteur de nombreux livres de génie logiciel et de programmation par objets, en particulier "Object-Oriented Software Construction") (version française chez Eyrolles, "Conception et Programmation par Objets"), Jolt Award 1998 ; "Eiffel: Le Langage", "Introduction à la Théorie des Langages de Programmation" (traductions françaises chez InterEditions) ; et, récemment, "Touch of Class: Introduction to Programming Well Using Objects and Contracts", un livre d'initiation à la programmation (Springer). Il a reçu le System Award de l'ACM pour son travail sur Eiffel et est membre de l'Académie des Technologies.

http://se.ethz.ch/~meyer/

Mercredi 3 mars 2010, 14h-15h, Amphi 4


Yayi : Bibliothèque générique de traitement morphologique d'images

Raffi Enficiaud

Dans cet exposé, nous présenterons Yayi, une bibliothèque générique de traitement morphologique d'image. Cette base logicielle, écrite en C++ et interfacée avec Python, fournit un nombre croissant de fonctions en traitement d'image et en morphologie mathématique (distance, segmentation, etc.). Nous discuterons de la mise en oeuvre générale, des concepts génériques utilisés dans la bibliothèque, et de leurs utilisations dans l'élaboration de nouveaux algorithmes. Enfin, nous présenterons quelques pistes actuellement en développement dans Yayi pour adresser certains des problèmes levés par la programmation générique.

Raffi Enficiaud a soutenu sa thèse au Centre de Morphologie Mathématique en 2007. Pendant sa thèse, il a participé au design et au développement de Morph-M (anciennement Morphée) qui est une base logicielle orientée recherche pour le traitement d'images et la morphologie mathématique. Il s'est particulièrement intéressé à l'extension multidimensionnelle et multispectrale des algorithmes morphologiques, et a proposé de nouvelles méthodes de segmentation et d'utilisation de la couleur. Après sa thèse, il travaillé à DxO sur le thème de la quantification de défaut optique et capteur. Il travaille depuis 2008 à l'INRIA Paris-Rocquencourt, équipe-projet IMEDIA en qualité d'ingénieur expert, où il s'intéresse à l'indexation d'image ainsi qu'à la visualisation de bases de donnée multimédia. Il développe Yayi sur son temps libre.

http://raffi.enficiaud.free.fr/

Mercredi 2 décembre 2009, 14h-16h30, Amphi 4


Le processeur CELL : architecture et programmation

Jean-Luc Lamotte

Le processeur CELL BE développé par le consortium IBM, Sony et Toshiba a eu un impact important dans le monde du calcul scientifique mais aussi dans le monde du jeu. Il est le processeur de base de la première machine à avoir atteint 1 Pflops et aussi celui de la Play Station 3 de Sony. Pour arriver à ce niveau de performance, il intègre 9 coeurs hétérogènes interconnectés par un bus. Le coeur principal (PPE) appartient à la famille des PowerPC. Les 8 autres coeurs (SPE) sont spécialisés pour le calcul. Après une présentation détaillée de l'architecture du processeur, nous développerons son mode de la programmation : lancement de threads de calcul sur les SPE, échange de données, programmation SIMD.

Jean-Luc Lamotte est professeur à l'université P. et M. Curie (UPMC). Ses travaux de recherche au sein du laboratoire d'informatique de Paris 6 (LIP6) dans l'équipe PEQUAN (PErformance et QUalité des Algorithmes Numériques) du département CALSCI (calcul scientifique) portent sur le calcul haute performance en intégrant la vitesse de calcul, mais aussi la qualité numérique des résultats obtenus. Il enseigne notamment le parallélisme dans la spécialité SAR du master d'informatique de l'UPMC.

http://www-pequan.lip6.fr/~lamotte/

La méthode multipôle rapide sur le processeur Cell : calcul du champ proche

Pierre Fortin

La méthode multipôle rapide (Fast Multipole Method, FMM) permet de résoudre en temps linéaire le problème à N-corps, en astrophysique ou en dynamique moléculaire par exemple. Nous présentons ici l'implémentation sur le processeur Cell du calcul du champ proche de la FMM, ce qui constitue un premier pas vers une implémentation complète de la FMM sur ce processeur. Nous détaillerons les problèmes rencontrés, au niveau de l'architecture comme au niveau de l'algorithmique, ainsi que les diverses optimisations mises en place. Notre implémentation permet de calculer jusqu'à 8,5 milliards d'interactions par seconde (115,8 Gflop/s) sur un processeur Cell, et jusqu'à 17 milliards d'interactions par seconde sur un IBM QS20 (230,4 Gflop/s), pour des distributions uniformes ou non uniformes de particules.

Pierre Fortin est maître de conférences à l'Université Pierre et Marie Curie dans l'équipe PEQUAN (LIP6) depuis deux ans. Ses travaux de recherche portent sur le calcul scientifique parallèle haute performance et sur les simulations numériques pour le problème à N-corps. Depuis septembre 2009, il est responsable de l'option "Calcul Intensif sur Nouvelles Architectures Parallèles" à Polytech'Paris-UPMC.

http://www-pequan.lip6.fr/~fortin/

Mercredi 21 octobre 2009, 14h-16h, Amphi 4


CImg et G'MIC : Boites à outils libres pour le traitement d'images à différents niveaux

David Tschumperlé, GREYC Uni Caen.

Malgré la grande variété des types de données que l'on rencontre dans le domaine du traitement d'images (1D,2D,3D, scalaires, couleurs, multi-spectrales, séquences, etc...), nous sommes souvent amenés à appliquer des algorithmes très classiques, ou des variations de ces algorithmes, pour le pré-traitement, l'analyse ou la visualisation de ces données images. Par conséquent, les logiciels et les bibliothèques que nous utilisons dans notre recherche quotidienne, devraient également être génériques, afin de s'adapter le mieux possible aux données à traiter. Dans ce séminaire, je présenterai quelques outils développés dans cette optique (au laboratoire GREYC, équipe IMAGE), qui possèdent différents niveaux d'utilisations. Je commencerai tout d'abord par présenter CImg, une bibliothèque C++ "template" (donc générique par nature), qui a pour but de faciliter l'implémentation d'algorithmes de traitements d'images personnalisés. Puis, j'introduirais G'MIC, un langage de script reprenant la plupart des éléments de CImg, qui est dédié au traitement et à l'analyse d'images "de tous les jours". J'essaierai de montrer comment ces différents outils indépendants sont organisés et comment ils cherchent à aider le chercheur ou le programmeur en traitement d'images, autant d'un point de vue programmation pure que d'un point de vue plus haut niveau.

David Tschumperlé est chargé de recherche CNRS, travaillant dans l'équipe IMAGE du GREYC, depuis 2004. Il s'intéresse principalement aux méthodes variationnelles et EDP pour le traitement d'images local et/ou non-local.

http://www.greyc.ensicaen.fr/~dtschump/, http://cimg.sourceforge.net/, http://gmic.sourceforge.net/

Mercredi 30 septembre 2009, 14h-15h30, Amphi 4


GpuCV: Accélération par processeur graphique pour le traitement d'image et la vision artificielle

Yannick Allusse et Patrick Horain

Nous décrirons brièvement l'état de l'art de l'utilisation des processeurs graphiques grand public (GPU) pour accélérer le traitement d'image, et nous en discuterons les limites. Puis, nous décrirons GpuCV, une bibliothèque logicielle libre et multi-plateforme pour accélérer par GPU les opérateurs de traitement d'image et de vision artificielle. GpuCV a été conçue pour être compatible avec la bibliothèque OpenCV et permettre d'intégrer facilement des opérateurs accélérés sur GPU dans des applications développées sur CPU. L'environnement GpuCV gère de façon transparente les caractéristiques du matériel, la synchronisation des données, l'activation à bas niveau des procédures GLSL ou CUDA, l'étalonnage et l'aiguillage vers la mise en oeuvre la plus performante et finalement offre un ensemble d'opérateurs de traiement accélérés par GPU.

Yannick Allusse est diplômé de l'ISTIA (2005). De 2005 à 2008, il a été ingénieur de recherche à Télécom SudParis et a été le principal développeur de la bibliothèque GpuCV. Ses domaines d'intérêt englobent l'infographie, la réalité virtuelle et le calcul intensif. Il est à présent consultant indépendant en optimisation logicielle.

Patrick Horain est Docteur-Ingénieur de l'INPG (1984) et enseignant-chercheur à l'Institut Télécom (ex GET) depuis 1986, d'abord à l'ENST puis à l'INT et Télécom SudParis. Ses recherches portent en particulier sur la vision 3D par ordinateur, en particulier pour la perception des personnes pour des applications interactives en réalité virtuelle, et sa mise en oeuvre en temps réel.

http://picoforge.int-evry.fr/projects/gpucv, http://www.viadeo.com/fr/profile/yannick.allusse, http://www-public.it-sudparis.eu/~horain

Mercredi 27 mai 2009, 14h-17h, P10


VMKit, LLVM et Clang: les prochaines générations de compilateurs

Nicolas Geoffray, Lip6/INRIA/Regal

La Low-Level Virtual Machine (LLVM) est un ensemble de bibliothèques et d'outils qui facilitent le développement et l'optimisation de compilateurs, de générateurs de code et de machines virtuelles. Clang et VMKit utilisent LLVM pour leur générateur de code à différents niveaux: l'un pour la compilation statique de langages de la famille C (C/C++/ObjectiveC), et l'autre pour la compilation dynamique d'applications Java ou .Net.

Dans cet exposé, je présenterai ces trois projets, et rentrerai dans les détails de VMKit, que j'ai développée dans le cadre de ma thèse. Je finirai par montrer les exemples de recherche auxquels nous nous adressons avec l'aide de VMKit, au sein de l'équipe de recherche INRIA/Regal.

Nicolas Geoffray est doctorant à l'université Pierre et Marie Curie dans l'équipe mixte Lip6/INRIA Regal. Sa thèse porte sur les machines virtuelles applicatives et la manière dont elles sont utilisées dans les projets de recherche. La soutenance est prévue à la fin de l'année universitaire 2009.

http://pagesperso-systeme.lip6.fr/Nicolas.Geoffray/, http://vmkit.llvm.org, http://llvm.org, http://clang.llvm.org, http://vmkit.llvm.org, http://regal.lip6.fr

AutoVM: repousser les frontières de la généricité

Gaël Thomas, REGAL/Lip6/Inria

Avec l'avènement du Web et des applications réparties, les machines virtuelles applicatives sont devenues le support d'exécution de choix pour la plupart des applications. Développer et optimiser une machine virtuelle est un travail long et difficile qui requiert plusieurs années. Il s'avère que la plupart des machines virtuelles possèdent des composants communs: compilateur à la volée, ramasse-miettes, vérifieur de type, gestionnaire de threads, gestionnaire d'entrées/sorties, éditeur de liens paresseux, chargeur dynamique de code.

AutoVM est une machine virtuelle générique qui factorise ces composants communs et facilite le développement de nouvelles machines virtuelles, ou l'amélioration de machines virtuelles existantes.

Dans cet exposé, je présenterai l'architecture logicielle de notre prototype AutoVM et montrerai sa généricité et son extensibilité.

Gaël Thomas est maître de conférences à l'université Pierre et Marie Curie dans l'équipe mixte Regal/Lip6/Inria depuis trois ans. Ses travaux de recherche portent sur la gestion des ressources, l'isolation et la gestion de la concurrence dans les machines virtuelles.

http://pagesperso-systeme.lip6.fr/Gael.Thomas/

Mercredi 22 avril 2009, 14h-17h, Amphi 2


Visite guidée de SmartEiffel: le génie logiciel en pratique.

Dominique Colnet. SmartEiffel - LORIA.

SmartEiffel, également connu sous le nom de GNU Eiffel, est à la fois un langage et un ensemble d'outils de compilations, de documentation et de validation.

Le langage SmartEiffel vise à favoriser la mise en pratique des principales exigences liées au développement d'un gros logiciel par une grande équipe. En plus d'exigences en terme de qualité, de sécurité et de documentation, la définition de SmartEiffel est également soucieuse de l'efficacité du programme à l'exécution. Ainsi, le modèle des objets qui est à la base du langage intègre également les types les plus élémentaires sans surcoût potentiel à l'exécution. Pour sa part, le mécanisme de programmation par contrats qui est essentiel en matière de documentation est également un bon moyen de rechercher les meilleures performances à l'exécution.

Durant cet exposé, la visite guidée du langage présentera le modèle d'objets, la programmation par contrats, la double forme d'héritage multiple ainsi que le mécanisme des agents.

Dominique Colnet, principal auteur de SmartEiffel, est membre du LORIA et professeur d'informatique à l'IUT Nancy-Charlemagne.

http://SmartEiffel.loria.fr

Lisaac/IsaacOS: La puissance des langages objets à prototypes.

Benoit Sonntag. ICPS - LSIIT.

Lisaac est un petit langage basé sur la technologie objet à base de prototype. Plus flexible que l'objet à base de classe, elle permet un dynamisme et un degré d'expressivité encore inégalés. Lisaac est inspiré du langage Self pour les concepts d'objets à prototypes et du langage Eiffel, pour les aspects d'ingénierie logicielle et notamment pour la programmation par contrat. Enfin, l'objectif étant de réaliser de la programmation de bas niveau à l'aide d'un langage de haut niveau, un ensemble de concepts utiles à la programmation système a été ajouté.

Le langage Lisaac utilise un nombre particulièrement restreint d'idiomes orthogonaux rendant difficile l'élaboration d'un compilateur efficace. Son compilateur en fait aujourd'hui l'unique langage à prototype compilé. Les performances atteintes sont proche des compilateurs C, voire même au-delà...

Pour étayer, approfondir et illustrer nos propos, nous ferons un rapide tour d'horizon du développement du système d'exploitation IsaacOS entièrement écrit en Lisaac.

Durant cet exposé, nous aborderons les thèmes suivants: concept à prototype versus concept à classe; héritage multiple et dynamique et autres particuliarité du Lisaac; technique de compilation et résultat de performance; validation des concepts avec une brève présentation du système d'exploitation IsaacOS.

Benoit Sonntag, principal auteur du projet Lisaac/IsaacOS, est membre de l'équipe ICPS au LSIIT et Maître de conférence d'informatique à l'UDS Strasbourg (Anciennement ULP).

http://isaacproject.u-strasbg.fr/

Mercredi 25 mars 2009, 14h-15h30, Amphi 2


Que se cache-t-il derrière ce type ?

Yann Régis-Gianas, laboratoire PPS (Univ. Paris Diderot), équipe πr² (INRIA)

Si une fonction φ promet de manipuler une valeur de type α sans l'observer, on peut utiliser son code sans risque pour toutes les affectations possibles de α : que la valeur soit entière (α = int) ou qu'elle soit un arbre (α = tree), la fonction se comportera toujours de façon identique. Cette propriété s'appelle le polymorphisme paramétrique, l'essence de la généricité.

Promettre de ne pas observer de trop près son argument est un fardeau parfois insupportable pour une fonction, pour des raisons algorithmiques (comment prendre une décision sans savoir ce que vaut mon argument ?), ou encore pour des raisons de performances de bas-niveau (si je sais que α = int, je peux utiliser une primitive dédiée de mon processeur). Même si le type d'une valeur est caché derrière un type plus abstrait α, on peut fournir des mécanismes pour « le redécouvrir » grâce à des tests dynamiques ou à des raisonnements purement statiques. La propriété qui permet de diriger son calcul par la forme des types est appelée le polymorphisme intentionnel.

Dans cet exposé, nous présenterons plusieurs versions du polymorphisme intentionnel offertes par différents systèmes de types et de preuves sûrs (c'est-à-dire garantissant que les programmes ne peuvent pas planter et sont corrects vis-à-vis de leur spécification).

Yann Régis-Gianas est maître de conférence de l'Université Paris Diderot. Ancien élève de l'EPITA et du LRDE (promo CSI 2003), il a poursuivi son cursus par un DEA SPL (précurseur de l'actuel MPRI) et par un doctorat au sein de l'équipe Gallium de l'INRIA. Il étudie le design des langages de programmation à typage statique garantissant l'absence d'erreurs dans les programmes.

http://www.pps.jussieu.fr/~yrg

Mercredi 25 février 2009, 14h-17h, Amphi 1


Mise en oeuvre et application des extensions de langages

Patrick Viry, Ateji

Je présenterai sur la base d'une démo une application des extensions de langages, à savoir une extension Java pour l'optimisation. Cet exemple montre la mise en oeuvre concrète dans Eclipse, les gains de productivité et de qualité obtenus par rapport aux approches classiques Java+DSL, la différence entre cette approche et un générateur de code ou un préprocesseur. Il montre également une utilisation originale d'un compilateur: la génération automatique d'interface graphique.

Je parlerai aussi des futurs projets d'Ateji dans le domaine des extensions de langage.

Patrick Viry a obtenu un doctorat d'informatique à l'INRIA-Lorraine en 1992. Il a poursuivi une carrière de chercheur à l'Université de Kyoto, sur deux thèmes principaux: les modèles théoriques du parallélisme et les outils de développement de type éditeur syntaxique. Il a rejoint l'industrie en 1999, d'abord dans une société japonaise réalisant des contrats pour le MITI, puis en tant qu'architecte du langage OPL chez Ilog. Il a fondé Ateji en 2005 pour développer et commercialiser des technologies innovantes dans le domaine des langages et des outils de programmation.

www.ateji.com

Programmation par règles : application à la transformation d'arbres en Java

Pierre-Etienne Moreau - INRIA Nancy - Grand Est

Dans cet exposé je présenterai un outil, appelé Tom, qui permet de simplifier la programmation d'outils de manipulation et de transformation de structures arborescentes, telles que les AST (Abstract Syntax Trees) ou les documents XML par exemple. Tom est un langage de programmation qui ajoute à Java des constructions inspirées du calcul de réécriture et des langages à base de règles. On peut, de manière approximative, voir Tom comme une intégration d'un sous-ensemble de Caml dans Java.

Le langage repose sur trois notions fondamentales :

(i) les termes, qui sont un modèle universel permettant de décrire des structures arborescentes, et en particulier les notions de programmes et de preuves.

(ii) les règles, qui permettent de décrire de manière expressive des transformations.

(iii) les stratégies, qui permettent de contrôler l'application des règles.

La séparation transformation-contrôle est un point essentiel permettant de rendre les règles indépendantes de leur contexte d'utilisation, facilitant ainsi leur écriture, leur réutilisation et l'établissement de propriétés.

Le Langage Tom est parfaitement adapté à la réalisation d'outils de transformation et de prouveurs. Son intégration dans Java rend son utilisation facile, aussi bien dans le milieu académique que dans le milieu industriel.

Pierre-Étienne Moreau est Chargé de Recherche à l'INRIA Nancy-Grand Est, responsable de l'équipe Pareo. Il s'intéresse au développement d'outils et de langages permettant de développer plus rapidement des applications complexes et ceci de manière plus sûre. Dans ce cadre, il a développé au cours de sa thèse le compilateur du langage ELAN. Depuis 2001, il coordonne le développement de l'environnement Tom, qui permet d'intégrer et d'utiliser les notions de réécriture, de stratégie, de filtrage équationnel dans un environnement de programmation Java. Les principales applications à ce jour sont la réalisation de compilateurs, d'outils d'analyse et de transformation de programmes, ainsi que des prouveurs automatiques.

http://tom.loria.fr, http://www.loria.fr/~moreau

Mercredi 11 février 2009, 14h-17h, P10


Programmer en JoCaml

Luc Maranget, Inria

JoCaml est une extension d'Objective Caml pour la programmation concurrente et distribuée, inspirée par le join-calcul. Nous avons récemment publié une nouvelle version de JoCaml, dont la compatibilité avec OCaml est meilleure que celle de la version initiale de F. Le Fessant. La nouvelle version pourra facilement être mise à jour au rythme d'OCaml et est binaire-compatible avec OCaml.

L'exposé s'attachera plus au langage JoCaml qu'au système JoCaml. Il montrera comment, à partir d'un programme potentiellement parallélisable écrit en OCaml (le ray tracer du concours ICFP 2001), on peut facilement produire un programme distribué, dans le cas abordé, très efficace. Ce sera l'occasion d'aborder la programmation en JoCaml de la coordination de multiples agents coopérants, d'une manière simple et concise dans l'esprit de la programmation fonctionnelle.

JoCaml est disponible en http://jocaml.inria.fr/.

Luc Maranget est chargé de recherche à l'Inria Rocquencourt. Il est spécialiste de la conception et de l'implémentation des langages de programmation, fonctionnels puis concurrents. À cet égard, il est l'auteur du compilateur de filtrage d'Objective Caml et plus récemment de la nouvelle version de JoCaml.

http://pauillac.inria.fr/~maranget/

ReactiveML : une extension d'OCaml pour la programmation de systèmes réactifs synchrones

Louis Mandel, Université Paris-Sud 11 - LRI

ReactiveML est une extension d'OCaml basée sur le modèle réactif synchrone introduit par F. Boussinot au début des années 90. Il permet la programmation de systèmes tels que les jeux vidéo ou les simulateurs.

Dans cet exposé, je présenterai ReactiveML à travers l'utilisation et la programmation de rmltop, le pendant ReactiveML du toplevel d'OCaml. Ce toplevel permet au programmeur d'écrire interactivement des programmes ReactiveML qui sont typés, compilés et exécutés à la volée. Toute expression ReactiveML valide peut être chargée dans le toplevel et a la même sémantique et la même efficacité que sa version compilée.

Louis Mandel est docteur de l'Université Paris 6. Il a passé un an au laboratoire Verimag de Grenoble et un an à l'INRIA Rocquencourt. Il est actuellement Maître de Conférences à l'Université Paris-Sud 11. Il conçoit et développe ReactiveML.

http://www.lri.fr/~mandel

Mercredi 26 novembre 2008, 14h-17h, Amphi 2


Mesure de Performance et Généricité à EDF R&D

Laurent Plagne ; EDF R&D Clamart.

L'outil BTL++ (Benchmark Template Library in C++) développé à EDF R&D se fonde sur la programmation générique et permet de mesurer les performances de noyaux de calcul intensif. Il s'agit d'une bibliothèque générique dont la conception vise à faciliter l'extensibilité par l'utilisateur. Récemment, le lien entre les mesures de performance et la génération automatique de bibliothèques optimales à été étudié pour le domaine de l'algèbre linéaire dense. Quelques mesures de performance de noyaux de calcul à base d'"Expression Template" permettront d'illustrer l'usage de l'outil BTL++.

Laurent Plagne est ingénieur-chercheur à EDF R&D où il conduit une mission d'expertise pour la conception des codes industriels de calcul intensif. Ses domaines de recherche principaux sont les solveurs parallèles pour équations aux dérivées partielles et la programmation générique appliquée au HPC.

Il est co-auteur d'une bibliothèque générique pour la mesure de performance (BTL++) et est le développeur principal d'une bibliothèque dédiées aux problèmes d'algèbre linéaire creux et structurés (LEGOLAS++).

Bibliothèque générique multi-cible d'algèbre linéaire

Wilfried Kirschenmann, EDF R&D

La multiplication des architectures HPC (CPU multi-coeurs, GPU, Cell,..) implique autant de spécialisations des codes de calcul intensif. Dans un contexte industriel, les codes de calcul multi-cibles posent alors des problèmes de maintenance et d'évolutivité importants. La génération automatique des spécialisations est une réponse à ces problématiques. Pour le domaine de l'algèbre linéaire, nous étudions les possibilités offertes par la programmation générique. La mise au point d'une bibliothèque générique multi-cible et performante constitue le sujet de départ d'une thèse dédiée aux méthodes de développement HPC qui minimisent l'adhérence aux machines cibles.

Wilfried Kirschenmann est diplômé de l'école supérieure d'électricité. Il a travaillé sur la parallélisation d'un solveur de neutronique sur processeur graphique lors de son stage de fin d'étude à EDF R&D. Il va débuter une thèse sur les méthodes de développement HPC qui minimisent l'adhérence aux machines cibles.

Mercredi 5 novembre 2008, 14h-17h, Amphi 2


Représentation efficace des données complexes dans un intergiciel schizophrène

Thomas Quinot, AdaCore

Dans un intergiciel schizophrène, une représentation intermédiaire des interactions entre composants applicatifs est construite et manipulée. Cette représentation est neutre vis-à-vis du choix d'une personnalité application (interface entre les composants et l'intergiciel) et d'une personnalité protocolaire (interface entre intergiciels distants). Elle rend possible le découplage entre ces deux aspects.

Cette représentation doit préserver la structure des données associées aux interactions. Cependant, sa construction in extenso s'avère coûteuse dans le cas de données composites complexes. Cette conversion peut être économisée en remplaçant la réplication complète de la structure par la définition d'un emballage « fantôme » autour de celle-ci (et de chacun de ses composants) : il suffit que cet emballage fournisse les accesseurs permettant de parcourir la structure et de construire un message la représentant.

Après avoir présenté un exemple concret de représentation neutre des données structurées, nous montrons comment cette optimisation peut être mise en oeuvre pour réaliser de manière efficace la fonction de représentation dans un intergiciel schirophrène. Nous concluons cette discussion par une évaluation du gain de performance ainsi obtenu.

Thomas Quinot est docteur de l'Université Paris VI. Ses travaux de thèse ont porté sur la définition d'une architecture d'intergiciel flexible pour l'interopérabilité entre modèles de répartition. Il est aujourd'hui Senior software engineer chez AdaCore, éditeur d'outils pour le développement de systèmes embarqués, temps réel et critiques, où il est notamment responsable des produits pour applications réparties.

http://www.adacore.com

Construire une application robuste sans faire exploser les coûts

Samuel Tardieu, TELECOM ParisTech

Le langage Ada est connu pour sa sûreté intrinsèque : son typage fort, ses mécanismes de contrôle de valeurs et son système d'exceptions notamment permettent d'avoir une grande confiance en les programmes. Comme dit le vieux proverbe, « En Ada, quand ça compile, ça marche ».

Cependant, une des puissances d'Ada provient également de ses systèmes de vérification lors de l'exécution du programme. Par exemple, si une valeur se trouve en dehors de l'intervalle qui lui était autorisé, une exception, rattrapable par le langage, sera automatiquement levée. Ce système de vérification dynamique a bien évidemment un coût. Nous verrons comment le système de compilation GNAT mélange analyse statique et vérification lors de l'exécution pour fournir la totalité des garanties définies par le langage tout en minimisant les surcoûts et la perte de performance.

Samuel Tardieu est enseignant-chercheur à TELECOM ParisTech. Ses domaines d'activité incluent notamment la compilation et la génération de code. Il est également un des développeurs du système de compilation GCC, et intervient plus particulièrement au niveau de GNAT, le compilateur Ada de GCC.

http://www.rfc1149.net

Dimanche 14 septembre 2008, 14h-17h, Amphi 4


Systèmes, algorithmes et applications: Efficacité et utilité des systèmes parallèles.

Gaétan Hains, LACL, Université de Paris Est, Créteil

Dans cet exposé je présenterai le modèle bulk-synchronous parallelism (BSP) des algorithmes et architectures parallèles, ainsi qu'un tour d'horizon des domaines d'application du parallélisme. BSP propose une vue unifiée des principaux paramètres de la performance des algorithmes parallèles et de leur adéquation sur les architectures multi-processeur, multi-coeur et leurs réseaux de communication interne. Il permet une analyse portable et extensible des performances ce qui permet d'éviter les principaux pièges de l'informatique parallèle: mauvaise granularité, réseau mal adapté, déséquilibres.

Gaétan Hains est directeur du LACL à l'université de Paris 12. Son programme de recherche porte sur la programmation parallèle et la sécurité.

http://lacl.univ-paris12.fr/hains

Outils pour le parallèlisme : apports de la programmation générative

Joël Falcou, IEF, Université de Paris-Sud, Orsay

Les besoins croissants en puissance de calcul exprimés par de nombreux domaines scientifiques exercent une pression très forte sur les architectures émergentes, les rendant toujours plus performantes mais toujours plus complexes à maîtriser. Dans ce cadre, le développement d'outils tirant parti des spécificités de ces architectures (quadri- et bientôt octo-coeurs, processeurs Cell ou GPU par exemple) devient une gageure car allier expressivité et efficacité est une tâche ardue. Les travaux exposés ici montrent comment l'utilisation de la programmation générative, et en particulier de la méta-programmation template, permet de répondre au problème de performances et d'abstractions.

Nous montrerons comment ces techniques ont permis de développer Quaff, un outil de placement automatique d'applications data-flow sur des cibles variées comme les clusters, les multi-coeurs ou le processeur Cell.

Joel Falcou est maître de conférences en informatique au LRI, Université de Paris 11. Ses travaux de thèse ont porté sur la programmation parallèle pour la vision artificielle et plus particulièrement sur les applications de la programmation générative pour la création d'outils d'aide à la parallélisation. Il travaille actuellement sur la définition de langages orientés domaine pour le parallèlisme, outils qui s'intègrent dans divers projets de recherche (ANR et System@tic).

http://www.lri.fr/~falcou

Mercredi 28 mai 2008, 14h-17h, Amphi 4


Le langage BSML

Frédéric Gava, LACL, Université de Paris Est, Créteil

Nous présenterons BSML (Bulk Synchronous Parallel ML), un langage de programmation de haut-niveau pour machines parallèles, ainsi que des exemples classiques de parallélisme implémentés dans ce langage. Nous complèterons cette présentation par une étude comparative des coûts théoriques de ces algorithmes réalisée sur la grappe de PC du LACL.

Frédéric Gava est maître de conférences en informatique à l'université de Paris 12. Ses travaux de thèse ont porté sur la programmation parallèle (et des méta-ordinateurs) de haut-niveau qui lui ont valu le prix de thèse 2006 de la fondation EADS dans le domaine des STIC. Il travaille actuellement sur la preuve de programme parallèle et la conception d'un vérificateur parallèle de modèles pour réseaux de Petri de haut-niveau implanté avec les méthodes développées lors de son travail de thèse.

http://lacl.univ-paris12.fr/gava/

Programmation parallèle certifiée

Frédéric Loulergue, LIFO, Université d'Orléans

L'algorithmique constructive permet, partant d'une spécification écrite sous forme d'une combinaison non-efficace de fonctions, de dériver, sous certaines conditions, des algorithmes parallèles efficaces. Cette dérivation s'appuie sur des théorèmes d'équivalence de programmes et est formellement correcte. Elle aide le programmeur à concevoir des programmes parallèles. Toutefois les bibliothèques de squelettes proposées ne sont pas certifiées. Dans le cadre d'une collaboration avec l'université de Tokyo, nous proposons de cibler des squelettes algorithmiques développés en BSML et certifiés à l'aide de l'assistant de preuve Coq.

Frédéric Loulergue est professeur à l'Université d'Orléans depuis septembre 2005, directeur adjoint du Laboratoire d'Informatique Fondamentale d'Orléans (LIFO), membre de l'équipe Parallélisme, Réalité virtuelle et Vérification (PRV). Il travaille sur le parallélisme avec des langages et modèles de haut-niveau (conception de langages et bibliothèques, sémantique, vérification, algorithmes et applications).

http://f.loulergue.free.fr/

Mercredi 30 avril 2008, 14h-17h, Amphi 4


Mouldable Programming

Magne Haveraaen, Institutt for Informatikk, Universitetet i Bergen, Norway

Mouldable programming is about looking at programs as mouldable fragments of code, not as the static, brittle syntax software often turns out to be. Some simple examples follow. The notation for calling a method "push" which adds an element "E" to a stack "S" can be OO or static method style, it can modify "S" or return the new stack etc. Can we simplify usage to just one form, and mould it to the actual call? A function which breaks down for some input can signal this using return flags, special return values, or exceptions, to name some common ways. Can we abstract over this, and mould to the relevant error handling technique? Often we need to do run-time checking of arguments, e.g., array indexing bounds, forcing us to introduce lots of code to deal with the unwanted cases. Can we use mouldable ideas to simplify the code? In the presentation, we will elaborate on such examples, discussing how we can free us from awkward syntactic constraints.

Magne Haveraaen is a professor of computer science with an interest for programming technology: the theory and pragmatics of writing code. He investigates this in the context of the Sophus software library, a coordinate-free numerics library written in C++.

http://www.ii.uib.no/saga/

High-Level Abstractions and Optimization

Anya Helene Bagge, Institutt for Informatikk, Universitetet i Bergen, Norway

Writing code in an abstract, high-level style can cut development time and make code more maintainable and easier to reason about - but at the cost of lower run-time performance. For performance-critical applications, such as in numerical programming, this can render modern abstraction techniques infeasible. Fortunately, code that is easy for humans to reason about is also easier to reason about automatically. We're studying different abstraction mechanisms and generative programming techniques, as well as optimization techniques to produce efficient code for them. As an example, basic element-wise operations on arrays may be expressed in terms of high-level operations, which may be automatically combined in order to increase performance. I will present some of the things we've been working on so far, and some of the ideas we have for the future.

Anya Helene Bagge is a research fellow at the University of Bergen, Norway. Her research interests include programming language design, program transformation, parallel computer architectures and program optimization.

http://www.ii.uib.no/~anya/

Mercredi 26 mars 2008, 14h-17h, Amphi 4


Aspect-oriented Programming

Anya Helene Bagge, Institutt for Informatikk, Universitetet i Bergen, Norway

Separation of concerns is the idea of breaking down a program into encapsulated pieces that overlap in functionality as little as possible. Encapsulated entities, such as classes, methods or modules, are more manageable, easier to test and maintain, and may be reused more easily than a large, entangled program. A cross-cutting concern is something that cannot be encapsulated using normal abstraction mechanisms, thus defeating separation of concerns. A classical example of this is logging (e.g., logging calls and returns to a file while the program is running) - the logging code needs to be added to every applicable method in the program. The logging code for each method may be almost identical, creating an undesirable overlap in functionality. Aspects let a programmer implement a cross-cutting concern as a separate entity, through advice (how a concern should be implemented) and join points (where it should be implemented). I will give an introduction to aspect-orientation and aspect languages, and also talk a bit about domain-specific aspect languages.

Anya Helene Bagge is a research fellow at the University of Bergen, Norway. Her research interests include programming language design, program transformation, parallel computer architectures and program optimisation.

http://www.ii.uib.no/~anya/

Context-oriented Programming with ContextL

Pascal Costanza, Vrije Universiteit, Brussel, Belgium

Context-oriented Programming allows one to modularize a software system using partial class and method definitions organized into layers. Layers are composed into or out of the system depending on the context apparent during program execution. The basic concept of layers as partial program definitions has been suggested before, but with our approach we extend this idea by the notion of dynamically scoped layer activation, resulting in a viable approach for expressing context-dependent behavior. We will discuss the basic language constructs for Context-oriented Programming, the development of non-trivial examples, implementation issues, especially with regard to retaining efficient method dispatch, integration with the CLOS Metaobject Protocol, and if time permits, advanced topics like ContextL's reflective facilities for controlling layer activation and deactivation.

Pascal Costanza has a Ph.D. degree from the University of Bonn, Germany, and works as a research assistant at the Programming Technology Lab of the Vrije Universiteit Brussel, Belgium. His past involvements include specification and implementation of the languages Gilgul and Lava, and the design and application of the JMangler framework for load-time transformation of Java class files. He has also implemented ContextL, the first programming language extension for Context-oriented Programming based on CLOS, and aspect-oriented extensions for CLOS. He is furthermore the initiator and lead of Closer, an open source project that provides a compatibility layer for the CLOS MOP across multiple Common Lisp implementations.

http://common-lisp.net/project/closer/contextl.html

Mercredi 20 février 2008, 14h-15h30, Amphi 4


Performance et Généricité dans Qgar

Vitor Vasconcelos Araujo Silva, LORIA Nancy

Dans cet exposé nous verrons l'ensemble des outils de la plate-forme Qgar, avec une attention particulière pour la généricité et les performances du code de la bibliothèque QgarLib. Nous verrons également les autres composants du logiciel, quelques standards de développement Qgar, ainsi que les défis pour l'évolution de la plate-forme.

Victor Vasconcelos, brésilien d'origine, a obtenu son bachelor of science en informatique à l'Université Fédérale de Gerais et son Master of science en ingénieurie informatique et traitement d'image à l'Université Fédérale de Rio de Janeiro. Il est rattaché en tant qu'ingénieur à la Commission pour le Nucléaire du Brésil depuis 2002. Profitant d'un séjour sabbatique, il rejoint l'équipe Qgar (reconnaissance et analyse de document) de l'INRIA en 2007, en tant que développeur de la plate-forme logicielle.

http://qgar.loria.fr

Mercredi 30 janvier 2008, 14h-17h, Amphi 4


Robustesse, efficacité et généricité dans la bibliothèque CGAL

Sylvain Pion, chargé de recherche, INRIA Sophia Antipolis

Dans cet exposé je présenterai la bibliothèque d'algorithmes géometriques CGAL. Cette bibliothèque C++ fournit des algorithmes comme le calcul d'enveloppes convexes, de triangulations, en 2D, 3D... J'illustrerai surtout les problèmes de robustesse numériques que l'on y rencontre, puis je détaillerai les solutions que l'on utilise pour les résoudre de manière efficace. Elles sont basées sur plusieurs types d'arithmétique: arithmétique d'intervalles et multiprécision. Ces différentes techniques sont combinées dans l'implementation grâce à la généricité du code (template C++), ce qui produit à la fois un code efficace, compact, et proche des concepts mathématiques, donc plus facilement prouvable.

Sylvain a rejoint le projet CGAL - qui vise a faire une collection d'algorithmes géométriques fondamentaux en C++ - durant sa thèse, qu'il a présentée en 1999 a l'INRIA. Il travaillait alors sur des solutions génériques aux problèmes de robustesse numérique que l'on rencontre avec les algorithmes géométriques. Plus tard, il a travaillé sur l'efficacité de certains algorithmes géométriques comme la triangulation de Delaunay en 3D. Il s'intéresse dorénavant a la standardisation ISO du langage C++, ainsi qu'aux algorithmes géométriques parallèles. Il est employé comme chercheur a l'INRIA, et préside depuis deux ans le comité éditorial du projet CGAL.

http://www.cgal.org

Morph-M et généricité en traitement d'images

Romain Lerallut, ingénieur R&D chez A2iA Raffi Enficiaud, ingénieur de recherche chez DxO Labs

Dans cet exposé, nous présenterons la bibliothèque d'algorithmes de morphologie mathématique Morph-M. Cette bibliothèque C++ fournit un grand nombre de fonctions en traitement d'image (arithmétiques, colorimétrique...) et en morphologie mathématique (filtrage, segmentation, graphes etc.). Nous discuterons principalement des concepts proposés par la bibliothèque, et leurs utilisations dans la mise en oeuvre de nouveaux algorithmes. Nous illustrerons les potentialités par quelques algorithmes actuellement implémentés dans cette bibliothèque. Enfin nous discuterons des inconvénients de l'approche générique.

Romain Lerallut a participé au développement de Morphée (actuellement Morph-M) au cours de sa thèse sur l'analyse d'images et de vidéos à l'aide de graphes, soutenue en 2006 au Centre de Morphologie Mathématique (CMM) de l'Ecole des Mines de Paris. L'objectif principal de ce logiciel était de fournir aux chercheurs du CMM un outil robuste et flexible pour faciliter le développement et le test de nouveaux algorithmes. Il travaille actuellement chez A2iA (Analyse d'Images et Intelligence Artificielle) dans le domaine de la lecture automatique de documents imprimés et manuscrits.

Raffi Enficiaud a travaillé sur Morph-M (anciennement Morphée) qui est une base logicielle orientée recherche pour le traitement d'images, et plus particulièrement pour la morphologie mathématique. Cela a été l'occasion pour lui de développer de nouveaux algorithmes, et de revoir l'existant sous l'aspect multispectral et multidimensionnel. Il est employé à DxO depuis la fin de sa thèse, où il mène des recherches en traitement d'images. Il y développe notamment des mesures de défauts optique et capteur. Il est également en charge de l'intégration et de la coordination du travail de plusieurs types de démonstrateurs clients.

http://cmm.ensmp.fr/Morph-M/