8INF856 Algorithmes parallèles. Le langage parallèle Cilk Trois nouveaux mots clés: 1.spawn 2.sync 3.Parallel Si on enlève ces mots clés, on obtient un.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

Le langage Z Pr ZEGOUR DJAMEL EDDINE
Systèmes, algorithmes et applications: Efficacité du parallélisme. Gaétan Hains LIFO, Université d'Orléans Janvier 2001.
Algorithmes et structures de données Cours 9 Patrick Reuter
Détection des collisions dans un moteur 3D temps réel
Algorithme de Viterbi pour la reconnaissance de la parole
Algorithmes parallèles auto-adaptatifs et applications
Jean-Philippe PERNIN Université Stendhal Département Informatique Pédagogique Bureau I113 Mél. : Algorithmique : Programmes.
1 La gestion des exceptions C++ Un programme peut rencontrer des conditions exceptionnelles qui risquent de compromettre la poursuite de son exécution.
4. Les structures de tests
Algorithmes parallèles
1)Boucle for 2)Boucle while
Qu’est-ce qu’un ordinateur ?
Nous allons vous présenter: - Photoshop - Algorithme et programmation
© 2007 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 La Concurrence Déclarative Peter Van Roy Département dIngénierie Informatique, UCL
The Leading u-Payment Solutions Architect 2004 m2m group - All rights reserved - Any material copy is allowed if "Source: m2m Group" is mentioned La Biométrie.
Efficient Code Generation for Automatic Parallelization and
Algorithmique et programmation Informatique Cours 9 12/11/2001.
Programmation fonctionnelle Le langage LISP
Tâches #pragma omp parallel // intialisé un sac de tâches pour léquipe { … #pragma omp task // initier une tâche, créer un sac pour ses sous tâches { …
Algorithme et programmation
Sens conventionnel de déplacement de la lumière
Spawn Team 1Spawn Team 2 Tour 2 Tour 1 Tours Korolyov By hf. For hf.
Algorithmique et Programmation
Introduction à l’algorithmique
Semaine #1 INF130 par Frédérick Henri.
Peter Van Roy Département d’Ingénierie Informatique, UCL
Amorçage des compilateurs Un compilateur est un programme écrit dans un langage Peut-il être écrit dans le langage cible ? dans le langage source ? comment.
1 La récursion. Nous avons vu qu'un programme est constitué d'un ensemble de fonctions. Il est possible pour une fonction donnée d'appeler une autre fonction.
Chapitre 9 Les sous-programmes.
Chapitre 3 Syntaxe et sémantique.
Définition de Programme
Programmation logique Le Langage PROLOG
Rappel Modèle analyse-synthèse de la compilation
Structures de données IFT Abder Alikacem Gestion des exceptions Module 2 Département dinformatique et de génie logiciel Édition Septembre 2009.
Projet I.S.N. Arbre fractal
Schema Beans. Langage temperature Schema temperature
Efficient Code Generation for Automatic Parallelization and Optimization Cédric Bastoul Proposé par : Albert Cohen Présenté par : L.Landwerlin, J.Rahme,
PROJET d’ INFORMATIQUE:
Les Contrôles Page 1. Page 2 If … Elseif... Endif If … Endif if (i=5 and j
Présentation rapide d’
Sécurité Les Virus Logiciels non sollicités et réalisant des opérations malveillantes ou destructrices Typologie –D’application :introduit par recopie.
8INF856 Programmation sur architectures parallèles
GESTION ET TRAITEMENT DES ERREURS
Algorithmes sur les sons
Algorithmes et Programmation
Programmation procédurale preuves D. Preuves Preuves sur les R-algorithmes. Règle de l'appel (Hoare). Exemple Preuves sur les B-algorithmes (Floyd) Automatisation.
Les nombres de 0 à 19. Écrivez le mot: Un peu de maths en français:
Les tests.
Régulation de charge Jean-Louis Roch Projet APACHE Laboratoire ID - IMAG École ParDi Oujda - Octobre 1999.
Code Obfuscator Robin Franzi & Amine Derbel T
UMR 7619 Sisyphe Avril 2012 Alexandre Pryet Le langage une introduction pragmatique Cacul itératif.
Rénovation STG – Économie Gestion - Académie de Lille – Mars 2005
Tutorat en bio-informatique Le 5 décembre Au programme… MAT1400 Algorithmes de tri dans un tableau (suite)
Les langages de programmation
Bonjour tous le monde Aujourd’hui je vais vous montrer comment on peut faire des présentations avec le logiciel Microsoft PowerPoint.
Langage de programmation
Projet de Maîtrise Simulation 3D d’atomes robotiques Detanger Pierre-Gilles He Xuefeng Mauny Stéphane Villers Julien.
Les stratégies de calcul 5 e et 6 e année. Addition.
Capocasale & Droz. Exécuter une fonction en parallèle Utilisation de plusieurs fonctions en parallèles pour obtenir un résultat Accès à des ressources.
Cours de Langage C Récursivité. Objectifs de la séance 11 Connaître la récursivité. Mesurer un temps d’exécution. 2.
 Lycée Déodat de Séverac. ➲ Toutes les matières utilisent l'informatique mais jusqu'à présent la programmation restait en post bac. ➲ Avec l'ISN vous.
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Machines, algorithmes et langage
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
Automatismes 3.
LES TROIS FRERES.
Clavier-Texte – Niveau 1
Transcription de la présentation:

8INF856 Algorithmes parallèles

Le langage parallèle Cilk Trois nouveaux mots clés: 1.spawn 2.sync 3.Parallel Si on enlève ces mots clés, on obtient un programme C standard.

Exemple: Fibonacci P-Fib(n) if n<=1 return n else x = spawn P-Fib(n-1) y = P-Fib(n-2) sync return x+y

Exemple: Fibonacci

Mesures de performance Travail (work): temps séquentiel Durée (span): temps parallèle T P : temps dexécution sur p processeurs T 1 : travail T :durée

Mesures de performance Loi du travail: T P T 1 /P Loi de la durée: T P T Accélération: T 1 /T p P Parallélisme: T 1 /T T 1 /T p

Analyse de P-Fib T 1 (n) = θ( ϕ n ) où ϕ est le nombre dor T (n) = max(T (n-1), T (n-2)) + θ(1) = T (n-1) + θ(1) = θ(n) Parallélisme: θ( ϕ n /n )

Boucles parallèles Exemple: On veut multiplier une matrice M par un vecteur x Mat-Vec(M,x,n) parallèle for i=1 to n do y[i]=0 parallèle for i=1 to n do for j=1 to n do y[i] = y[i] + M[i,j]*x[j] return y

Implémentation des boucles parallèles On implémente les boucles parallèles à laide de linstruction spawn: Mat-Vec-Main-Loop(M,x,y,n,d,f) if (d==f) for j=1 to n do y[d] = y[d] + M[d,j]*x[j] else m = (d+f)/2 spawn Mat-Vec-Main-Loop(M,x,y,n,d,m) Mat-Vec-Main-Loop(M,x,y,n,m+1,f) sync

Implémentation des boucles parallèles

Analyse de Mat-Vec(A,x,n) Travail: θ(n 2 ) Durée: Total: θ(n) Parallélisme: θ(n 2 /n) = θ(n) Θ(lg n) Θ(lg n) + θ(n) Θ(1) Mat-Vec(M,x,n) parallèle for i=1 to n do y[i]=0 parallèle for i=1 to n do for j=1 to n do y[i] = y[i] + M[i,j]*x[j] return y

Multiplication matricielle (1) P-Square-Matrix-Multiply(A,B,n) parallèle for i=1 to n do parallèle for j=1 to n do C[i,j]=0 for k=1 to n do C[i,j] = C[i,j] + A[i,k]*B[k,j] return C

Multiplication matricielle (2)

Algorithme de Strassen