Special

Semantic search

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/