Special

Semantic search

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

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