Introduction aux architectures parallèles

Slides:



Advertisements
Présentations similaires
Le micro-ordinateur.
Advertisements

GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
Placement de Motifs Architecture Application Contraintes: - Charge
Architecture de machines Le microprocesseur
Master de recherche informatique Université de Montpellier 2
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Types des systèmes d’exploitation
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
Architectures Matérielles
CLUSTERING Grappe d'ordinateurs.
PLAN du COURS Introduction Structure des Systèmes Informatiques
Conception et programmation Programmation Parallèle
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Introduction Qu'est ce que le temps-réel ?
Auto Apprentissage Le DSP
2.Les différentes architectures (Louis)
Informatique parallèle hautes performances
Modèle polyédrique: fondements et application à la parallélisation de programmes réguliers Tanguy Risset DIF 2001/2002.
Architecture de machines Principes généraux
Architecture des systèmes distribués
Mr. Mehrez Boulares, Mr. Nour Ben Yahia
Aspects quantitatifs de la conception
Présenté par :BENLAZREG med amine HADJ slimane anis
Amélioration de la sécurité des données à l'aide de SQL Server 2005
Les Systèmes Multi-Agents pour la Gestion de Production
Chaire UNESCO - Calcul numérique intensif
Architecture des Ordinateurs
Algorithmique et Programmation
Conception des algorithmes parallèles
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
Les systèmes multiprocesseurs Ph. Sèvre le 19/12/08.
Systèmes Superscalaires et VLIW
Présentation du mémoire
Programmation concurrente
1 IFT 6800 Atelier en Technologies dinformation Chapitre 1 Introduction.
Les systèmes multiplateformes
Architectures parallèles
Introduction IFT6800 – E2008 Pierre Poulin.
L’adaptativité pour un solveur de l’équation de Vlasov
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau.
1 La RTI 1.3NG du DoD et les systèmes supports Patrice Torguet IRIT.
8INF856 Programmation sur architectures parallèles
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Performance de circuits.
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
Programmation parallèle
Étude d’un protocole de partage de travail entre systèmes Pair à Pair
D. E ZEGOUR Institut National d ’Informatique
PARALLÉLISATION AUTOMATIQUE D’ALGORITHMES
Programmation Système et Réseau
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
1 IFT 099 Introduction à la programmation. 2 Plan du cours (sem. 1) 1.Introduction - les ordinateurs 2.La programmation procédurale 3.La programmation.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Les systèmes d’exploitation
Introduction et Généralités sur l’Algorithmique
Introduction aux solutions Microsoft pour le HPC.
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL Sujets Concepts de processus/thread concurrents –Windows NT et la programmation temps réel –Synchronisation et.
PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03.
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
Module calcul parallèle
Cours de : « système d'exploitation »
Architecture Client/Serveur
1.1: notions de bases de l’informatique
Algorithmes parallèles
Classification des archtecutres paralleles
Transcription de la présentation:

Introduction aux architectures parallèles Professeur: Nilo STOLTE Chargé de Cours: Mohammed ELKANOUNI Département de génie logiciel et des TI

Sommaire Parallélisme et programmation Machines Parallèles Programmation parallèle Les algorithmes parallèles

Besoin de performance Les applications traditionnelles (calcul intensif): Prévision météo Simulation scientifique: mécanique, aérodynamique, électrique, biologique Nouvelles applications (données intensives): Traitement d’image, multimédia, infographie Les applications futures: CAO, RV, etc.

Besoin de performance Puissance de traitement et/ou la disponibilité Puissance de traitement recouvre 2 notions: la latence de traitement et le débit de traitement La latence représente le temps nécessaire pour l’exécution d’un traitement. Le débit représente le nombre de traitement exécutable par unité de temps Disponibilité: résistance aux pannes, maintien de la performance

Besoin de performance Modélisation du climat: 1018 FLOP pour une simulation de 10 ans (10 jours @ 1 Tflops) Génère 100 GB de données Graphisme 3D à temps réel: Résolution 10242 éléments 10242 x 30 fps x 300 ops/el = 9437184000 ops/sec ??? I/O doit correspondre à cet exigence

D’après « Techniques de l’Ingénieur », H 1088 Besoin de performance D’après « Techniques de l’Ingénieur », H 1088

Pourquoi le parallélisme? Gain de performances Rentabilité du parallélisme Flexibilité et extensibilité Adéquation au traitement temps réel Tolérance aux pannes Disponibilité du matériel et logiciel

Gain de performances Performance est souvent prise au sens de vitesse Limitation physique des performances des µP due à: Vitesse de la lumière Dégagement de la chaleur

Gain de performances

Gain de performances Exemple de prévision météo du globe: Partitionnement: 1 * 1* 1 miles –> 5 * 108 subdivisions Simulation de 7 J avec un pas d'une minute 200 FLOP dans chaque pas de temps Total 1015 FLOP 10 jours @ ordinateur de 1 Gflops 5 minutes @ ordinateur de 3.4 Tflops

Rentabilité du parallélisme Loi de Grotsh (années 60): « Il est plus coûteux de fabriquer n processeurs plutôt qu’un seul n fois plus puissant » → aujourd’hui on prouve le contraire Exemple: (tiré du ‘Multithreaded programming with Pthreads’) MARC Solver (simulation des circuits) s’exécutent 80% plus vite sur une station SPARC biprocesseur que sur SPARC monoprocesseur Coût : SPARC 2 µp →18.000$, SPARC 1 µp → 16.000$, L’investissement d’une machine biprocesseur vaut il le coût ?

Adéquation au traitement temps réel Applications à temps réel: Nécessitent du performance (vitesse d’exécution) Pas de tolérance à l’erreur Servent souvent à commander des systèmes critiques Le parallélisme est incontournable !

Tolérance aux pannes Les systèmes multiprocesseurs sont plus fiables Même si un composant (matériel ou logiciel) tombe en panne les autres sont intacts

Disponibilité du matériel et logiciel Disponibilité des architectures parallèles Disponibilité des bibliothèques de calcul parallèle Disponibilité des réseaux informatiques performants

Performance des supercalculateurs

Tendance de la période d’horloge des CPU (Fréquence)

Classification des architectures parallèles Taxonomie de Flynn (1972): Flux de données Flux d’instruction Variations: SISD (Single Instruction, Single Data) SIMD (Single Instruction, Multiple Data) MISD (Multiple Instruction, Single Data) MIMD (Multiple Instruction, Multiple Data)

SISD (Single Instruction, Single Data) Machine de Von Newman: Flux commun de donnée et d’instruction Machine de Harvard: Séparation du flux de donnée et d’instruction Supporte le parallélisme apparent

SIMD (Single Instruction, Multiple Data) Plusieurs unités arithmétiques Même instruction à la fois S’adapte aux problèmes à forte régularité: Équation de chaleur Traitement d’image Infographie

SIMD – suite - SIMD parallèle

SIMD – suite - SIMD vectoriel

SIMD – exemple - Demo: Visualisation de surfaces implicites en utilisant P3/P4 float SIMD (code) Video: Pentium P3/P4 x AMD

MISD (Multiple Instruction, Single Data) Même donnée traitée par plusieurs unités Peu d’implémentation S’adapte aux applications spécifiques: Filtrage numérique Décryptage avec plusieurs algorithmes

MIMD (Multiple Instruction, Multiple Data) L’architecture parallèle la plus utilisée Plusieurs instructions, plusieurs données Chaque processeur exécute son flux d’instruction indépendamment des autres 2 variantes: Mémoire partagée Mémoire distribuée

MIMD à mémoire partagée Accès à la mémoire comme un espace d’adressage global Tout changement dans une case mémoire est vu par les autres CPU La communication inter-CPU est faite via la mémoire globale

MIMD à mémoire distribuée Chaque CPU a sa propre mémoire et système d’exploitation Communication inter-CPU via le réseau rapide Peut contenir des architectures hétérogènes Nécessité d’un middleware pour la synchronisation et la communication

MIMD Hybride à mémoire partagée-distribuée Utilisée par les supercalculateurs Avantages: Extensibilité, performance, moindre coût

Modèles de programmation parallèle Modèle: abstraction du matériel 2 modèles: Synchrone: concept de ``Rendez-vous`` Langage Ada Occam, CSP (Communication Sequential Processes) Asynchrone: concept de boite à lettres MPI, PVM ……

Modèles à mémoire partagée Les tâches partagent un espace d’adressage Mécanismes disponibles: Sémaphore Mutex

Modèles par les fils d'exécution Plusieurs fils d’exécution Dépends de: Architecture de mémoire Système d’exploitation Implémentations: POSIX Thread: norme IEEE Posix 1003.1c OpenMP: multi plate-forme: UNIX, Linux, Win NT Microsoft à sa propre implémentation des fils d'exécution

Modèles par passage de message Chaque tâche utilise sa propre mémoire L’échange se fait par : émission et réception de message Plusieurs variantes: MPI, P4, Linda, PVM, Express

Modèles par données parallèles Exécution des opérations sur un ensemble de données organisées Mémoire partagée et distribuée Les implémentations: Fortran 90, HPF

Modèle hybride Combinaison de MPI avec Pthread ou OpenMP Combinaison du modèle par données parallèles avec le modèle de passage de message: F90 ou HPF

Les algorithmes parallèles Calcul parallèle: ensemble de tâches Chaque tâche a sa propre donnée, connectée par les autres par des canaux Une tâche peut: Calculer en utilisant sa donnée locale Envoyer et recevoir des autres tâches Créer d’autres tâches ou se terminer

Propriétés des algorithmes parallèles Concurrence Modularité Dimensionabilité Portabilité: abstraction du matériel Déterministe: obtenir les mêmes résultats

Exemple d’algorithmes parallèles - Équation d’ondes - Amplitude d’une corde vibrante Le calcul nécessite: L’amplitude (A) dans l’axe y i l’index de position dans l’axe x Les nœuds de position à travers la corde Mise à jour de l’amplitude à des pas de temps discrets

Équation d’ondes L’équation d’onde (discrétisée): A(i,t+1) = (2.0 * A(i,t)) - A(i,t-1) + (c * (A(i-1,t) - (2.0 * A(i,t)) + A(i+1,t))) c est une constante

Équation d’ondes - Solution - Équilibrage de charge Communication aux bord de la tâche