Seminar

From LRDE

À propos du séminaire

La modélisation orientée objet permet la classification des problèmes de calcul scientifique, et par conséquent, par la factorisation qu'elle rend possible, elle fournit un excellent support pour la fédération d'efforts de développement. Malheureusement les performances en pâtissent souvent. De nouveaux langages, de nouvelles techniques de programmation réconcilient performance et généricité, permettant la naissance de bibliothèques de nouvelle génération (Olena, Vaucanson, VIGRA, BGL etc.).

L'objet de ce séminaire est la diffusion du savoir et des compétences sur la modélisation de bibliothèques métiers génériques et performantes.

Mots clés: Calcul Scientifique, Distribution, Génie Logiciel, Généricité, Grille, Langages, Multi-cœur, Paradigmes de Programmation, Parallélisme, Recherche reproductible.

Prochaines séances

Archives

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/





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 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





... further results