0% ont trouvé ce document utile (0 vote)
27 vues2 pages

Devoir Surveillé : Algorithmes Parallèles

Le document est un devoir surveillé pour un cours d'architecture multiprocesseurs et d'algorithmes parallèles, destiné aux étudiants en informatique. Il contient deux exercices : le premier porte sur l'optimisation du temps d'exécution d'un programme en utilisant des architectures parallèles, et le second concerne l'analyse de données d'un pèse-personne à l'aide de la programmation parallèle avec OpenMP. Les étudiants doivent justifier leurs choix de plateformes et écrire un programme C pour traiter les données de manière efficace.

Transféré par

mohamedammar.bellah
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
27 vues2 pages

Devoir Surveillé : Algorithmes Parallèles

Le document est un devoir surveillé pour un cours d'architecture multiprocesseurs et d'algorithmes parallèles, destiné aux étudiants en informatique. Il contient deux exercices : le premier porte sur l'optimisation du temps d'exécution d'un programme en utilisant des architectures parallèles, et le second concerne l'analyse de données d'un pèse-personne à l'aide de la programmation parallèle avec OpenMP. Les étudiants doivent justifier leurs choix de plateformes et écrire un programme C pour traiter les données de manière efficace.

Transféré par

mohamedammar.bellah
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Ministère de l’enseignement supérieur

et de la recherche scientifique
****
Institut Supérieur de l’Informatique
Classe : Devoir Surveillé Durée :
2ing ISEOC Architecture Multiprocesseurs et algorithmes 1h30
Date : parallèles Documents et
Mars 2023 ***************** calculatrices non
Chargé(s) du cours : Mariem FEKI autorisés

Barème :
EX I (3) EX II (17)

Nom : .....................................................................................................................
Prénom : ......................................................................................................................
N° CIN :.......................................................................................................................

Exercice I (3 pnts)

Soit un client qui fait appel à vous pour réduire le temps d’exécution de son programme. En
effet, on suppose que le temps d’exécution de son code sur une architecture séquentielle
(SISD) est égal à 2,46s et que le client ne veut pas qu’il dépasse 1s. Des mesures ont montré
que 83% de son code est parallélisable.
1. Son objectif est-il réalisable ? justifier votre réponse
2. Parmi ces plateformes embarquées, que lui conseilleriez-vous ? justifier votre réponse
- une cible embarquée avec un processeur à 2 coeurs
- une cible embarquée avec un processeur à 4 coeurs
- une cible embarquée avec un processeur à 6 cœurs
- une cible embarquée avec un processeur à 8 cœurs
3. Donner un intervalle pour le temps d’exécution sur l’architecture choisie et ce, en se
basant sur les lois d’Amdahl et de Gustafson.

Exercice II

On se propose d’analyser des données provenant d’un pèse-personne. Ces données sont
enregistrées dans une matrice D à deux colonnes et à 100 000 lignes, chaque ligne représente
les données d’un individu. La première colonne représente la taille en cm de la personne et la
seconde colonne représente son poids en kg.

1/2
Le programme principal permet de :
- allouer dynamiquement de la mémoire pour la matrice à traiter (matrice D) et pour le tableau
obtenu après traitement (tableau IMC de 100 000 cases) ; ne pas oublier de libérer les espaces
réservés à la fin du programme pour une meilleure gestion de la mémoire ;
- remplir la première colonne de la matrice D (la taille) de valeurs aléatoires entières
comprises entre 150 et 200 et la seconde colonne (le poids) de valeurs aléatoires entières
comprises entre 40 et 160;
- déclarer et initialiser deux variables (Staille et Spoids) qui vont contenir la somme des
tailles (respectivement des poids) des différents individus ;
- déclarer deux variables (MoyTaille et MoyPoids) qui vont contenir la taille moyenne et le
poids moyen de la population analysée,
- déclarer et initialiser une variable NOb qui va contenir le nombre d’obèses détectés dans la
population analysée;
- déclarer une variable Pourcentage qui va contenir le pourcentage des obèses dans la
population analysée;
- fixer le nombre de threads sachant que notre unité de traitement est quadri-coeurs et
implémenter la région parallèle avec les directives de compliation OpenMP ;
- mesurer le temps d’execution du programme et l’afficher.

La région parallème permet de :


- paralléliser une boucle for qui permet de calculer la somme des tailles Staille et des poids
Spoids. Utiliser la clause reduction pour ce calcul.
- paralléliser une seconde boucle for qui permet de calculer les indices de masse corporelle
des différents individus (à sauvegarder dans le tableau IMC). L’IMC est égal au poids en
kg/taille² (en m). Si l’IMC d’un individu est strictement supérieur à 30 alors incrémenter le
nombre d’obèses. Pour ce calcul, utiliser une variable privée (NOb_local) et une section
critique. La section critique permet de protéger l’accès à la valeur NOb qui est une variable
partagée; Le temps passé en section critique doit être le plus court possible ;
- paralléliser le calcul des valeurs moyennes MoyTaille et MoyPoids et leur affichage avec le
calcul et l’affichage du Pourcentage des obèses.

Donner le programme C qui permet d’implémenter ce calcul en rajoutant les directives


openMP.

Bon Travail

2/2

Vous aimerez peut-être aussi