Semantic search
Mercredi 30 avril 2008, 14h-17h, Amphi 4
Mouldable Programming
- Documents
- mp.pdf
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 28 mai 2008, 14h-17h, Amphi 4
Le langage BSML
- Documents
- gava.pdf
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/
Dimanche 14 septembre 2008, 14h-17h, Amphi 4
Systèmes, algorithmes et applications: Efficacité et utilité des systèmes parallèles.
- Documents
- hains.pdf
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
- Documents
- falcou.pdf, falcou-1.pdf, falcou-2.pdf, falcou-3.pdf, falcou-4.pdf, falcou-5.pdf, falcou-6.pdf
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 5 novembre 2008, 14h-17h, Amphi 2
Représentation efficace des données complexes dans un intergiciel schizophrène
- Documents
- quinot.ppt
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
- Documents
- tardieu.pdf
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
Mercredi 26 novembre 2008, 14h-17h, Amphi 2
Mesure de Performance et Généricité à EDF R&D
- Documents
- plagne.pdf
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
- Documents
- kirschenmann.pdf
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 11 février 2009, 14h-17h, P10
Programmer en JoCaml
- Documents
- maranget.pdf
- Keywords
- concurrency, language, caml, functional
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
- Documents
- mandel.pdf
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 25 février 2009, 14h-17h, Amphi 1
Mise en oeuvre et application des extensions de langages
- Keywords
- language, concurrency
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
- Documents
- moreau-print.pdf, moreau-animated.pdf
- Keywords
- language, compilation
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 25 mars 2009, 14h-15h30, Amphi 2
Que se cache-t-il derrière ce type ?
- Documents
- regis-gianas.pdf
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 22 avril 2009, 14h-17h, Amphi 2
Visite guidée de SmartEiffel: le génie logiciel en pratique.
- Documents
- colnet.pdf
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.
- Documents
- sonntag.pdf
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 27 mai 2009, 14h-17h, P10
VMKit, LLVM et Clang: les prochaines générations de compilateurs
- Documents
- geoffray.pdf
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é
- Documents
- thomas.pdf
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 30 septembre 2009, 14h-15h30, Amphi 4
GpuCV: Accélération par processeur graphique pour le traitement d'image et la vision artificielle
- Documents
- allusse_horain.pdf
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 21 octobre 2009, 14h-16h, Amphi 4
CImg et G'MIC : Boites à outils libres pour le traitement d'images à différents niveaux
- Documents
- tschumperle.pdf
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 2 décembre 2009, 14h-16h30, Amphi 4
Le processeur CELL : architecture et programmation
- Documents
- lamotte.pdf
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
- Documents
- fortin.pdf
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 3 mars 2010, 14h-15h, Amphi 4
Yayi : Bibliothèque générique de traitement morphologique d'images
- Documents
- enficiaud.pdf
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 31 mars 2010, 14h-16h, Amphi 4
Généricité en traitement d'images: niveau algorithmique et logiciel
- Documents
- fasquel.pdf
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
- Documents
- meyer.pdf
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 28 avril 2010, 14h-16h, Amphi Masters
Diagrammes de Décision à la Demande (DDoD)
- Documents
- linard.pdf
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
- Documents
- levillain.pdf
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 2 juin 2010, 14h-16h, Amphi 4
Généricité et topologie discrète en C++
- Documents
- lamy.pdf
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
- Documents
- cointepas.pdf
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 13 octobre 2010, 14h-16h, Amphi 4
Recherche d'images et indexation multimédia basées contenu
- Documents
- picard.pdf
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 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 8 décembre 2010, 14h-16h30, Amphi 4
PHP.Reboot: un language de script utilisant la JSR 292
- Documents
- forax.pdf
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.