I. Introduction. Quelques définitions (qu est-ce qu une machine parallèle, un programme parallèle, pourquoi le parallélisme?)



Documents pareils
Initiation au HPC - Généralités

Parallélisme et Répartition

Systèmes et traitement parallèles

Détection d'intrusions en environnement haute performance

CH.3 SYSTÈMES D'EXPLOITATION

Évaluation et implémentation des langages

Métriques de performance pour les algorithmes et programmes parallèles

Rapport d activité. Mathieu Souchaud Juin 2007

Performances et optimisations

Optimisation de logiciels de modélisation sur centre de calcul

Limitations of the Playstation 3 for High Performance Cluster Computing

Introduction à la Programmation Parallèle: MPI

Communications performantes par passage de message entre machines virtuelles co-hébergées

//////////////////////////////////////////////////////////////////// Administration bases de données

Programmation parallèle et distribuée

Cours Informatique Master STEP

GPA770 Microélectronique appliquée Exercices série A

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Protection des données avec les solutions de stockage NETGEAR

Eléments d architecture des machines parallèles et distribuées

Asynchronisme : Cadres continu et discret

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

CONFIGURATION DE L AUTOMATE SIEMENS

White Paper - Livre Blanc

Multiprogrammation parallèle générique des méthodes de décomposition de domaine

<Insert Picture Here> Solaris pour la base de donnés Oracle

Plan du cours Cours théoriques. 29 septembre 2014

Conception de circuits numériques et architecture des ordinateurs

Quantification d incertitude et Tendances en HPC

Les environnements de calcul distribué

Architecture des calculateurs

Etude d architecture de consolidation et virtualisation

Efficace et ciblée : La surveillance des signaux de télévision numérique (2)

PVM 1 PVM. Parallel Virtual Machine

Partie 7 : Gestion de la mémoire

Tests de performance du matériel

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Introduction à MATLAB R

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Prise en compte des ressources dans les composants logiciels parallèles

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

UE Programmation Impérative Licence 2ème Année

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Conception des systèmes répartis

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Fiche technique CPU 315SN/PN (315-4PN33)

Architecture des ordinateurs

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Équilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de l Environnement AMPI.

Programmer en JAVA. par Tama

Pourquoi OneSolutions a choisi SyselCloud

IBM Tivoli Monitoring, version 6.1

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Instrumentation de code Java

Programmation C. Apprendre à développer des programmes simples dans le langage C

Evaluation des performances de programmes parallèles haut niveau à base de squelettes algorithmiques

Le génie logiciel. maintenance de logiciels.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Rapport 2014 et demande pour Portage de Méso-NH sur Machines Massivement Parallèles du GENCI Projet 2015 : GENCI GEN1605 & CALMIP-P0121

Data Station Plus. La solution complète de gestion de données. > Convertisseur de multiples

Génération de code binaire pour application multimedia : une approche au vol

SafeKit. Sommaire. Un livre blanc de Bull Evidian

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

06/11/2014 Hyperviseurs et. Infrastructure. Formation. Pierre Derouet

La technologie Java Card TM

Introduction aux systèmes temps réel. Iulian Ober IRIT

ParallelKnoppix. Majid Hameed. Copyright 2005 Majid Hameed. Copyright 2005 Gauthier Savart. Copyright 2005 Joëlle Cornavin

WEA Un Gérant d'objets Persistants pour des environnements distribués

Groupe Eyrolles, 2004 ISBN :

THÈSE. pour obtenir le grade de. Spécialité : "Informatique : Systèmes et Communications"

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

WN/CMGC/08/98. Enjeu et problématique du portage d'arpege-nemo sur calculateurs super-scalaires. Eric Maisonnave

Sanity Check. bgcolor mgcolor fgcolor

CORBA haute performance

CAHIER DES CHARGES D IMPLANTATION

Master Informatique et Systèmes. Architecture des Systèmes d Information. 03 Architecture Logicielle et Technique

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

HPC by OVH.COM. Le bon calcul pour l innovation OVH.COM

POM Monitoring V4.0. Release Note fonctionnelle

Systèmes en réseau : Linux 1ère partie : Introduction

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Le Multicast. A Guyancourt le

Cours Informatique 1. Monsieur SADOUNI Salheddine

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Chapitre 4 : Les mémoires

Contrôle d accès UTIL TP N 1 découverte

Analyse de performance, monitoring

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

MEAD : temps réel et tolérance aux pannes pour CORBA

Chapitre 2. Eléments pour comprendre un énoncé

VMware vsphere 5 Préparation à la certification VMware Certified Professional 5 Data Center Virtualization (VCP5-DCV) - Examen VCP510

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Transcription:

I. Introduction Quelques définitions (qu est-ce qu une machine parallèle, un programme parallèle, pourquoi le parallélisme?) Différents types d architectures parallèles Programmation parallèle Mesure du parallélisme Limitations du parallélisme Langages et outils Complément: notions de vectorisation Marie Flé - C.R.I. - 1 - Généralités Parallélisme 18/11/2002

II.Quelques définitions Machine parallèle Ensemble formé de processeurs interconnectés Programme parallèle But: Programme pouvant s exécuter simultanément sur plusieurs processeurs de manière à effectuer un travail commun. augmenter les performances des programmes augmenter pour un même programme la taille des données et le nombre de calculs écrire des programmes inconcevables sur une machine séquentielle Marie Flé - C.R.I. - 2 - Généralités Parallélisme 18/11/2002

III. Types d architectures parallèles Machines à mémoire distribuée (IBMSP2, CRAYT3E) homogènes Machines à mémoire partagée (Cray YMP, Xeon, SGI O2000: 2 processeurs) hétérogènes (réseau de stations de travail) Machines à mémoire distribuée, globalement adressable (Tera MTA, SGI O2000) IV. Marie Flé - C.R.I. - 3 - Généralités Parallélisme 18/11/2002

V.Programmation parallèle Contraintes du parallélisme Différents types de parallélisme Modèles de programmation Quelques conseils pour la programmation parallèle Parallélisation des itérations : étude des dépendances Distribution des tableaux Marie Flé - C.R.I. - 4 - Généralités Parallélisme 18/11/2002

A.Contraintes du parallélisme Programme parallèle : Programme pouvant s exécuter simultanément sur plusieurs processeurs de manière à effectuer un travail commun. On considère une application séquentielle comme constituée par des actions indépendantes les unes des autres donc pouvant être effectuées simultanément sur des processeurs différents Dépendances 2 tâches sont dépendantes si les données de l une sont modifiées par l autre Synchronisation Ordre dans lequel les processeurs exécutent les tâches pour respecter les dépendances Communication Echanger les données entre les processeurs (machines distribuées) Marie Flé - C.R.I. - 5 - Généralités Parallélisme 18/11/2002

B. C.Différents types de parallélisme Parallélisme de contrôle ou de tâche : apparaît lorsque plusieurs actions sont indépendantes et peuvent être exécutées simultanément dégager les parties indépendantes du programme et construire le graphe des dépendances entre ces tâches. Répartir ces tâches sur les processeurs et les synchroniser de manière optimale (problème d allocation de ressources) Parallélisme de données : apparait lorsque la même action est répétée sur des données différentes, de type identique (traitement d un tableau dans une itération) Marie Flé - C.R.I. - 6 - Généralités Parallélisme 18/11/2002

0do i=1,n 1 a(i)=b(i)+ c(i) 2enddo En programmation distribuée, les données sont réparties aux processeurs et chaque processeur exécute cette action sur les données qui lui appartiennent. La répartition du travail est alors gérée par la position des données sur les processeurs D.Modèles de programmation Caractérise le langage de programmation SPMD («single program, multiple data») : le même programme s exécute sur tous les processeurs qui travaillent sur des données différentes adapté au parallélisme de données Marie Flé - C.R.I. - 7 - Généralités Parallélisme 18/11/2002

MIMD («multiple instructions, multiple data») : des programmes différents s exécutent sur les processeurs adapté au parallélisme de tâches Remarque: On peut faire du parallélisme de tâches en mode SPMD et vice-versa Marie Flé - C.R.I. - 8 - Généralités Parallélisme 18/11/2002

E.Quelques conseils pour la programmation parallèle Pas d approche standard En général, on parallélise un programme séquentiel existant Avant de paralléliser : optimiser le programme séquentiel options du compilateur étude des boucles (cache) Différentes possibilités : utiliser un paralléliseur utiliser des bibliothèques parallèles recoder repérer les parties consommatrices de CPU avec un analyseur («profiler»), en général les itérations dégager parallélisme de tâches dégager parallélisme de données analyser les dépendances Marie Flé - C.R.I. - 9 - Généralités Parallélisme 18/11/2002

choisir le mode de programmation et le langage le mieux adapté modifier l'algorithme et le concevoir en parallèle F.Parallélisation des itérations : étude des dépendances 1. Parallélisation d une itération Exemple : do i=1, 4 a(i)=b(i) enddo sur 2 processeurs En programmation distribuée: distribution des données sur les processeurs 0P0: 1A(1:2) 2B(1:2) 3P1: 4A(3:4) 5B(3:4) répartition du travail sur les processeurs: Marie Flé - C.R.I. - 10 - Généralités Parallélisme 18/11/2002

6P0: 7do i=1,2 8 A(i)=B(i) 9enddo 10P1: 11do i=3,4 12 A(i)=B(i) 13enddo En programmation partagée: répartition du travail sur les processeurs Marie Flé - C.R.I. - 11 - Généralités Parallélisme 18/11/2002

2. Notion de dépendance 14Définition: Une boucle est parallélisable s il n y a pas de dépendance entre les itérations; deux itérations sont dépendantes si une donnée de l une est le résultat de l autre. 15 Exemple: Remarques: 3do i=2,n 4 A(i)= A(i-1) 5end do Ne pas paralléliser inutilement une boucle qui ne contient pas assez de calcul -> dégradation des performances Au contraire: une boucle peut ne pas être parallélisable à cause d une fausse dépendance Marie Flé - C.R.I. - 12 - Généralités Parallélisme 18/11/2002

3. Examen des indices de boucles 6do i=2,n 7 A(i)= B(i-1) 8end do Parallélisable: (avec communications dans une programmation distribuée) 9do i=1,n 10 A(i)= A(i+M) 11end do Parallélisable si N<M avec communications dans une programmation distribuée sans communication en mémoire partagée Marie Flé - C.R.I. - 13 - Généralités Parallélisme 18/11/2002

4. Analyse des constantes a) Fausse dépendance: variables temporaires 12do i=1,n 13 X=A(i)+B(i) 14 C(i)=X+B(i)*X 15end do Parallélisable: il faut déclarer X comme une variable locale b) Utilisation d indexes 16index=0 17do i=1,n 18 index=index+i 19 A(i)= B(i)+C(index) 20end do Non parallélisable ; cependant, dans ce cas, il est possible de lever la dépendance en transformant le programme et en déclarant index comme variable locale (HPF, OpenMP): Marie Flé - C.R.I. - 14 - Généralités Parallélisme 18/11/2002

21index=0 22do i=1,n 23 index=(i*(i+1))/2 24 A(i)= B(i)+C(index) 25end do Marie Flé - C.R.I. - 15 - Généralités Parallélisme 18/11/2002

5. Réductions 26do i=1,n 27 SUM=A(i)+SU M 28end do Semi-Parallélisable: il y a dépendance mais il est possible de faire calculer des sommes partielles par tous les processeurs et rassembler les résultats à la fin ; Les principaux langages parallèles disposent de ce mécanisme de réduction qu il suffit de déclarer (MPI, HPF, OpenMP) 6. Eclatement des boucles 29do i=n-1,1,-1 30 A(i)=B(i) 31 C(i)=A(i+1) 32end do Parallélisable en HPF, non parallélisable en OpenMP (voir cours correspondants) Remède en OpenMP: éclatement de la boucle Marie Flé - C.R.I. - 16 - Généralités Parallélisme 18/11/2002

33do i=n-1,1,-1 34 A(i)=B(i) 35enddo 36do i=n-1,1,-1 37 C(i)=A(i+1) 38end do Marie Flé - C.R.I. - 17 - Généralités Parallélisme 18/11/2002

G.Distribution des tableaux 1. Distribution par bloc a) Tableaux 1 dimension: 16P0: 17A(1:2) 18P1: 19A(3:4) b) Tableaux multi-dimensions: (i) Distribution par bloc simple 20P0: 21A(1:4,1:4) 24P2: 25A(5:8,1:4) 22P1: 23A(1:4,5:8) 26P3: 27A(1:4,5:8) (ii) Distribution par bloc-ligne 28P0: 29A(1:4,1:8) 30P1: 31A(5:8,1:8) (iii) Distribution par bloc-colonne 32P0: 33A(1:8,1:4) 34P1: 35A(1:8,5:8 ) Marie Flé - C.R.I. - 18 - Généralités Parallélisme 18/11/2002

2. Marie Flé - C.R.I. - 19 - Généralités Parallélisme 18/11/2002

3. Distribution cyclique a) Tableaux 1 dimension: P0: P1: A(1), A(3) A(2),A(4) b) Tableaux multi-dimensions: 36P0: 37A(1,1),A(1,3) 38A(3,1),A(3,3) 42P2: 43A(2,1),A(2,3) 44A(4,1),A(4,3) 39P1: 40A(1,2),A(1,4) 41A(3,2),A(3,4) 45P3: 46A(2,2),A(2,4) 47A(4,2),A(4,4) 4. Distribution bloc-cyclique 5. 48P0: 49A(1,1),A(1,3) 50A(2,1),A(2,3) 54P2: 55A(3,1),A(3,3) 56A(4,1),A(4,3) 51P1: 52A(1,2),A(1,4) 53A(2,2),A(2,4) 57P3: 58A(3,2),A(3,4) 59A(4,2),A(4,4) Marie Flé - C.R.I. - 20 - Généralités Parallélisme 18/11/2002

6. Choix de la distribution Choisir la distribution qui engendre le minimum de communications: Exemple: 39do i=2,n 40 a(i)=b(i-1) 41enddo distribution cyclique: une communication pour chaque itération distribution par bloc: une communication par bloc Marie Flé - C.R.I. - 21 - Généralités Parallélisme 18/11/2002

VI.Mesure du parallélisme Calcul des performances Accélération Efficacité Scalabilité Marie Flé - C.R.I. - 22 - Généralités Parallélisme 18/11/2002

A.Calcul des performances 60Le calcul des performances d un programme parallèle diffère de celui d un programme séquentiel 61En effet, il y a 2 manières de calculer les performances: temps CPU (temps de calcul pur) temps réel (temps de restitution du programme) 62Pour un programme séquentiel, il suffit de calculer le temps CPU 63Pour un programme parallèle, il faut prendre en compte le temps occupé par les synchronisations et les communications; il faut donc calculer le temps réel; or ce temps réel prend aussi en compte le temps des autres processus en exécution si l on travaille en temps partagé. 64Le calcul des performances d un programme parallèle n a donc de sens que sur une machine dédiée. 65Le calcul des performances se fait soit: à l aide de la commande 42time 66qui délivre le temps réél et le temps CPU Marie Flé - C.R.I. - 23 - Généralités Parallélisme 18/11/2002

par l appel à une fonction de calcul du temps réél qui dépend de la machine sur laquelle on travaille Marie Flé - C.R.I. - 24 - Généralités Parallélisme 18/11/2002

B.Accélération Mesure l accroissement de performances d un programme parallèle en fonction du nombre N de processeurs A(N)= T séquentiel /T parallèle (N) Cas idéal (linéaire) quand A(N)=N Marie Flé - C.R.I. - 25 - Généralités Parallélisme 18/11/2002

C.Efficacité Quantifie le degré d utilisation des ressources parallèles : E=A(N) /N D.«Scalabilité» Mesure la capacité d un programme à voir ses performances augmenter en fonction du nombre de processeurs Marie Flé - C.R.I. - 26 - Généralités Parallélisme 18/11/2002

S = T parallèle (k*n) / T parallèle (N) Le programme est «scalable» si S est proche de k 67 Marie Flé - C.R.I. - 27 - Généralités Parallélisme 18/11/2002

VII.Limitations du parallélisme La performance d un programme parallèle par rapport à un programme séquentiel est limitée par : le degré de parallélisme qu il comporte les conséquences de la synchronisation le temps consommé par les communications dans le cas de la programmation distribuée le temps d accès à la mémoire d un autre processeur dans le cas de la programmation mémoire virtuellement partagée la charge des processeurs Marie Flé - C.R.I. - 28 - Généralités Parallélisme 18/11/2002

A.Degré de parallélisme Degré de parallélisme: le nombre d actions qui peuvent s exécuter en parallèle Loi d Amdhal : exprime l accélération théorique d un programme parallèle en fonction de son degré de parallélisme A(N) = T séquentiel /T parallèle (N) Marie Flé - C.R.I. - 29 - Généralités Parallélisme 18/11/2002

On pose : T p = p* T séquentiel et T s =(1-p)* T séquentiel où p est le pourcentage de partie parallèle On suppose : T parallèle =T s +T p /N On obtient: A(N)=1/( (1-p) +(p/n) ) < 1/(1-p) 68Accélération limitée par l inverse de la fraction séquentielle Marie Flé - C.R.I. - 30 - Généralités Parallélisme 18/11/2002

B.Les conséquences de la synchronisation Remède : équilibrer la charge des processeurs Marie Flé - C.R.I. - 31 - Généralités Parallélisme 18/11/2002

C.Le temps consommé par les communications latence : temps pris pour initialiser une communication bande passante : temps de transfert Remèdes : calculer la valeur de la donnée distante au lieu de la recevoir du processeur distant qui la possède calculer pendant les transferts regrouper les communications en un seul transfert Marie Flé - C.R.I. - 32 - Généralités Parallélisme 18/11/2002

D.Charge des processeurs 69Si l exécution d un programme parallèle a lieu en temps partagé et que la charge des processeurs est déséquilibrée, ses performances peuvent être dégradées au point d être moins bonnes que celles du programme séquentiel équivalent. 70Exemple: 72 71 VIII.Langages Langages basés sur Fortran et C Marie Flé - C.R.I. - 33 - Généralités Parallélisme 18/11/2002

Choix du langage Classification suivant l architecture des machines Classification des langages distribués Marie Flé - C.R.I. - 34 - Généralités Parallélisme 18/11/2002

A.Choix du langage Choix suivant l architecture de la machine Compromis entre facilité de programmation portabilité des programmes performances du langage sur une machine donnée modèle de programmation choisi Marie Flé - C.R.I. - 35 - Généralités Parallélisme 18/11/2002

B.Classification suivant l architecture des machines Machines à mémoire distribuée Machines à mémoire partagée et Machines à mémoire distribuée, globalement adressable Langages«Message passing» Langages «Data parallel» Fortran ou C parallel: le standard est OpenMP Langages«Message passing» et Langages «Data parallel» possibles Marie Flé - C.R.I. - 36 - Généralités Parallélisme 18/11/2002

Langages permettant les échanges de messages («Message passing») Le programme est divisé en plusieurs programmes (ou tâches) identiques ou différents qui se synchronisent et communiquent entre eux par des envois et réception de messages explicites (appel à des bibliothèques: PVM, MPI principalement) Langages «Data parallel» (parallélisme de données) Un seul programme s exécute sur tous les processeurs. Les données sont distribuées aux processeurs. Chaque processeur travaille sur ses données locales. L accès à une donnée non locale à un processeur engendre une communication implicite avec celui qui la possède (HPF principalement : Fortran + directives) La synchronisation est elle aussi implicite. Fortran ou C parallel type OpenMP Le programme est divisé en régions séquentielles et parallèles Le programme s exécute selon le modèle maître/esclave (threads) Le maître distribue le travail aux esclaves lorsqu il rencontre une région parallèle Marie Flé - C.R.I. - 37 - Généralités Parallélisme 18/11/2002

Les threads ont accès à toute la mémoire; 2 types de variables : partagées: modifiables par tous les threads privées: modifiables par un seul thread C.Classification des langages distribués PVM MPI HPF Marie Flé - C.R.I. - 38 - Généralités Parallélisme 18/11/2002

Modèle MIMD Utilisable en milieu hétérogène Messages explicites Portable Gestion dynamique des processus Modèle SPMD Utilisable en milieu hétérogène Messages explicites Portable Futur standard Plus évolué que PVM Modèle SPMD Non utilisable en milieu hétérogène Messages implicites Portable N existe pas sur toutes les machines Beaucoup moins performant que PVM et MPI Plus facile à programmer Plus difficile à bien programmer IX. Marie Flé - C.R.I. - 39 - Généralités Parallélisme 18/11/2002

X.Compilateurs et bibliothèques existants Chaque constructeur possède un compilateur ou une bibliothèque «propriétaire» dont l implémentation est optimisée pour cette machine. Par ailleurs, il existe pour chaque type de parallélisme, des bibliothèques et compilateurs standard: HPF: pghpf (Portland group) MPI: MPICH PVM standard Langages pour mémoire partagée: OpenMP Marie Flé - C.R.I. - 40 - Généralités Parallélisme 18/11/2002

XI. Outils Debuggers Paralléliseurs xpvm: debugger pour PVM xpdbx: debugger pour HPF et MPI xldb: debugger pour MPI sur IBM Adaptor (domaine public) Forge90 Bibliothèques scientifiques parallèles NAG PVM SCALAPACK (LAPACK PVM) PBLAS Outils d aide à la programmation PVM Hence : "Visual PVM Programming": aide à la construction de programmes PVM Paragraph : outil de trace d'exécution Marie Flé - C.R.I. - 41 - Généralités Parallélisme 18/11/2002

Analyse des performances pgprof: analyse des programmes HPF de PGI (pghpf) prodev: analyse des programmes sur SGI Marie Flé - C.R.I. - 42 - Généralités Parallélisme 18/11/2002

XII.Annexe : Description des machines utilisées pour les exercices A.SP2 d IBM 73 Machine parallèle à mémoire distribuée 12 processeurs P2SC Système AIX interconnectés par swich HPS (high performance switch) réseau Ethernet Marie Flé - C.R.I. - 43 - Généralités Parallélisme 18/11/2002

B.Origin 2000 de Silicon Graphics Machine parallèle à mémoire partagée 2 racks interconnectés contenant 4 processeurs R10000 Système IRIX Marie Flé - C.R.I. - 44 - Généralités Parallélisme 18/11/2002

XIII.Compléments: notions de vectorisation Architecture vectorielle Application Programmation vectorielle Marie Flé - C.R.I. - 45 - Généralités Parallélisme 18/11/2002

A.Architecture vectorielle Architecture simplifiée d une machine vectorielle, basée sur le CRAYYMP Fonctionnement: le registre vectoriel est chargé avec un nombre de mots mémoire égal à sa taille chaque unité fonctionnelle est divisée en plusieurs étapes activée à chaque fréquence d horloge (architecture «pipeline») les éléments successifs du registre vectoriel entrent dans une unité fonctionnelle à chaque étape, i.e., une instruction commence avant que la précédante soit terminée Marie Flé - C.R.I. - 46 - Généralités Parallélisme 18/11/2002

B.Application Itérations faisant intervenir des tableaux où la même opération est répétée sur leurs éléments Exemple 43do i=1,8 44 a(i)=a(i)+10 45enddo 74 Marie Flé - C.R.I. - 47 - Généralités Parallélisme 18/11/2002

C.Programmation vectorielle Définition Une boucle est vectorisable si elle fait intervenir des opérations sur un registre vectoriel Les conditions suivantes sont nécessaires pour qu une boucle soit vectorisable: 75 76Exemple la boucle est la plus intérieure contient au moins une référence à un tableau toutes les variables sont: des invariants (référencés et non redéfinis dans la boucle) des références à un tableau dont l index est redéfini dans la boucle des entiers incrémentés, décrémentés par expressions invariantes (index de boucle) scalaires temporaires (définis puis référencés dans la boucle et non utilisées à l extérieur) les itérations sont sans conflit de dépendance : deux itérations successives i1 et i2 sont en conflit si une instruction e1 contenue dans i2 a pour résultat la donnée d une instruction e2 contenue dans i1 et si e2 succède e1. (Remarque: ceci est moins contraignant que l indépendance qui conditionne le parallélisme, v.p. 12) Marie Flé - C.R.I. - 48 - Généralités Parallélisme 18/11/2002

77do i=1,n-1 78A(i)=B(i) 79C(i)=A(i+1) 80end do 81non vectorisable 46 82do i=n-1,1,-1 83A(i)=B(i) 84C(i)=A(i+1) 85end do 86vectorisable Marie Flé - C.R.I. - 49 - Généralités Parallélisme 18/11/2002

Optimisation de la vectorisation: Faire en sorte que le registre vectoriel soit chargé avec des éléments consécutifs en mémoire sachant que pour les tableaux multi-dimensionnés, l ordre des éléments des tableaux en mémoire est différent suivant les langages (inverser l ordre des boucles si besoin est) Marie Flé - C.R.I. - 50 - Généralités Parallélisme 18/11/2002

XIV.Table des matières I.INTRODUCTION...1 II.QUELQUES DÉFINITIONS...2 III. TYPES D ARCHITECTURES PARALLÈLES...3 V.PROGRAMMATION PARALLÈLE...4 A.Contraintes du parallélisme...5 C.Différents types de parallélisme...6 D.Modèles de programmation...7 E.Quelques conseils pour la programmation parallèle...9 F.Parallélisation des itérations : étude des dépendances...10 1.Parallélisation d une itération...10 2.Notion de dépendance...12 3.Examen des indices de boucles...13 4.Analyse des constantes...14 a)fausse dépendance: variables temporaires...14 b)utilisation d indexes...14 5.Réductions...16 6.Eclatement des boucles...16 G.Distribution des tableaux...18 1.Distribution par bloc...18 Marie Flé - C.R.I. - 51 - Généralités Parallélisme 18/11/2002

a)tableaux 1 dimension:...18 b)tableaux multi-dimensions:...18 (i)distribution par bloc simple...18 (ii)distribution par bloc-ligne...18 (iii)distribution par bloc-colonne...18 3. Distribution cyclique...20 a)tableaux 1 dimension:...20 b)tableaux multi-dimensions:...20 4.Distribution bloc-cyclique...20 6.Choix de la distribution...21 VI.MESURE DU PARALLÉLISME...22 A.Calcul des performances...23 B.Accélération...25 C.Efficacité...26 D.«Scalabilité»...26 VII.LIMITATIONS DU PARALLÉLISME...28 A.Degré de parallélisme...29 B.Les conséquences de la synchronisation...31 C.Le temps consommé par les communications...32 D.Charge des processeurs...33 VIII.LANGAGES...33 A.Choix du langage...35 B.Classification suivant l architecture des machines...36 C.Classification des langages distribués...38 Marie Flé - C.R.I. - 52 - Généralités Parallélisme 18/11/2002

X.COMPILATEURS ET BIBLIOTHÈQUES EXISTANTS...40 XI. OUTILS...41 XII.ANNEXE : DESCRIPTION DES MACHINES UTILISÉES POUR LES EXERCICES...43 A.SP2 d IBM...43 B.Origin 2000 de Silicon Graphics...44 XIII.COMPLÉMENTS: NOTIONS DE VECTORISATION...45 A.Architecture vectorielle...46 B.Application...47 C.Programmation vectorielle...48 XIV.TABLE DES MATIÈRES...51 87 Marie Flé - C.R.I. - 53 - Généralités Parallélisme 18/11/2002