jeudi 20 avril 2000

Conception de langages fonctionnels pour la programmation massivement parallèle : de BSlambda à BSMLlib

Frédéric Loulergue (LIFO)

 
Certains problèmes nécessitent des performances que seules les
machines massivement parallèles peuvent offrir.  Leur programmation
demeure néanmoins difficile.  Les travaux étudiant le mélange
de la programmation fonctionnelle et du parallélisme se
répartissent en deux catégories : les extensions explicitement
parallèles des langages fonctionnels -- mais les langages obtenus
sont soit indéterministes soit brisent l'aspect fonctionnel pur
-- et les implantations parallèles avec sémantique fonctionnelle
-- mais les langages obtenus n'expriment pas directement les
algorithmes parallèles et ne permettent pas la prévision des
temps d'exécution.  L'approche des langages à patrons, dans
lesquels seulement un ensemble fixé d'opérations sont
exécutées en parallèle, est intermédiaire.  Leur
sémantique fonctionnelle est explicite mais leur sémantique
opérationnelle parallèle est implicite.  L'ensemble de patrons
doit être le plus complet possible mais cet ensemble s'avère
dépendant du domaine d'application.                 

Nous approfondissons cette position intermédiaire avec pour
objectif de parvenir à des langages universels dans lesquels le
code source permet de déterminer le coût.  Cette dernière
exigence nécessite que soient explicites dans les programmes les
lieux du réseau de processeurs de la machine.
Une approche opérationnelle nous a amené
à définir des lambda-calculs BSP (le modèle BSP ajoute une
notion de processus explicites au parallélisme de données)
confluents et universels pour les algorithmes BSP. Nous avons
également analysé les conditions précises d'implantation
parallèle de tels calculs (bibliothèque BSMLlib),
expérimenté le style de programmation associé et
constaté qu'ils sont suffisamment expressifs et que
la prévision des temps d'exécution parallèle y est possible.

L'ajout de l'opération de composition parallèle  mène
à des calculs non-confluent. Il est cependant possible
de définir une composition parallèle pour une
stratégie donnée. Nous l'ajoutons à la stratégie
faible d'appel par valeur du BSlambda_p calcul
et à la bibliothèque BSMLlib.

Page maintenue par Emmanuel Chailloux, dernière modification le 08/12/99 à 18h08

<<< PPS <<< UFR P6