Master d’informatique 2006 2007 de l’université Paris VI
ppa
TD OpenMP

Pour cette séance, nous allons utiliser le compilateur gcc qui permet de paralléliser les codes contenant des directives OpenMP. Pour la génération du code executable, ajouter l’option -fopenmp aussi bien à la compilation qu’à l’édition de lien. Ne disposant que de machines monoprocessseur, l’ensemble des threads sera exécuté sur un seul processeur ! Les exercices suivants ont pour objectif de vous familiariser avec l’interface OpenMP. Pour ceux qui disposent de processeurs multi-core, l’interêt sera évident

1. Utilisez un des programmes du cours pour tester votre environnement

N’oubliez pas de d’affecter la variable OMP_NUM_THREADS !!!

2. Multiplication de deux matrices

Récuperez le code source du programme de multiplication de matrices. Deux jeux de tests sont insérés dans les sources

a) Paralléliser ce code avec OpenMP et ajouter des affichages qui mettent en évidence l’exécution multi-threadée.

b) exécutez le programme en mode statique, choisissez différentes valeurs pour la taille des blocs

c) Même chose avec le mode dynamique

d) Lorsque votre programme parallèle fonctionnera, retirez l’include et compiler sans l’option -fopenmp. Que se passe-t-il ?

3. Calcul de fractales.

Récuperez le code source du programme qui calcule les valeurs de l’espace de Mandelbrot et faites en une version paralléle. Essayez les différentes méthodes de répartition.

Documents joints

code sur les fractales (C source - 5.9 ko)
explication sur les fractales (PostScript - 138.7 ko)
include pour les fractales (C header - 1.9 ko)
cours OpenMP (PostScript - 293.8 ko)