Module 10: LANGAGES DE PROGRAMMATION CONCURRENTE, PARALLÈLE ET
DISTRIBUÉE.
Intervenants : Denis CAROMEL (UNSA, Denis.Caromel@sophia.inria.fr),
Françoise BAUDE (UNSA, Françoise.Baude@unice.fr),
Michel Rueher (UNSA, rueher@essi.fr)
L'objectif de ce cours est de présenter les langages parallèles
asynchrones (par opposition aux langages dits ßynchrones" tel
Esterel par exemple), d'en dégager quelques concepts généraux (modèle
asynchrone, communication synchrone ou asynchrone, points d'entrée ou
procédure, etc.), et de mettre en pratique leurs utilisations sur
des exemples concrets. On s'intéressera tout aussi bien à un parallèlisme
de situation (concurrence et distribution), qu'à un parallèlisme de
résolution. Une partie importante du cours est consacrée aux langages
à objets.
- Introduction :
Présentation du modèle asynchrone (par rapport à l'hypothèse
synchrone).
Langages de haut niveau d'abstraction permettant à l'utilisateur de
s'abstraire du placement, des communications, etc.
Objectifs: facilité et puissance d'expression, réutilisation, etc.
-
Rappels et approfondissement sur les langages classiques
(Ada, CSP, etc.), et approches par bibliothèques (MPI, OpenMP, etc.)
-
Langages à objets parallèles :
- Principes, utilisation de l'héritage et du polymorphime.
- Réutilisation et transformation de code séquentiel.
- Abstractions pour la programmation du contrôle des processus
(expressions de chemins, compteurs de synchronisation, conditions
d'activation, ensembles d'activation, ...)
- Exemples de langages (langages d'Acteurs, extensions de
C++, et surtout Java).
- Migration d'objets actifs
- Découverte dynamique de services (Jini)
- Meta-computing (calculs sur réseaux non-locaux)
-
Présentations succintes d'autres approches de type asynchrone:
- Programmation parallèle logique et par contraintes.
- Programmation parallèle de type fonctionnel.
Philippe Nain
Last modified: Sun Oct 29 13:21:11 MET 2000