Examen DEA-ENSERB option parallélisme Environnements de programmation pour le parallélisme Serge Chaumette 12 mars 2001 Durée 1 heure Tous documents autorisés I. Exercices ============= 1. Outils pour la mise au point -------------------------------- Expliquer le principe de représentation de traces d'exécutions d'applications parallèles utilisé dans le diagramme de Kiviat, par exemple pour montrer la charge des processeurs d'une machine. 2. Gamma --------- Etant donné un ensemble de nombres, on souhaite trouver le plus petit. A la fin des réactions chimiques, la molécule portant le plus petit nombre devra être rouge. La couleur des autres n'est pas importante. Proposer un programme Gamma qui réalise cette opération. 3. Java -------- Quels sont selon vous les avantages du langage Java par rapport au langage C, et à CORBA dans le cadre de la programmation parallèle et/ou distribuée ? (on présentera la réponse sous la forme de trois colonnes, une par langage ou système) 4. CCS ------- 1. Montrez que la bisimulation forte est plus fine que la bisimulation faible. 2. Montrez que pour tout contexte C[], pour tout A et B / A ~~ B, on n'a pas C[A] ~~ C[B]. (~~ représente la bisimulation faible) II Problème CCS ================ Soient P1 send (P2, 3); recv (P2, v); print (v); et P2 send (P1, 4); recv (P1, w); print(w); 1. Modéliser en CCS la mise en // de P1 et P2. 2. Qu'affiche cette mise en //. 3. Introduisez un buffer -- comme vu en cours -- au bon endroit de sorte que l'anomalie constatée en 2 soit supprimée. 4. Montrez alors en utilisant CCS que P1 en // avec P2 affiche 3 puis 4 ou 4 puis 3.