Architecture des systèmes informatiques CNAM 2000 Introduction aux systèmes parallèles 1. Qu'est que c'est ?: Utilisation de plusieurs machines pour mener à bien une tâche. Ensemble de processeur relié à un systèmes de communication interne à la machine qui résout un seul problème à la fois. Systèmes Parallèles Systèmes Distribués (répartie) Plusieurs processeurs proches exécutent conjointement une tâche pour aller plus vite. Communication entre les processeurs fiables et prévisibles. Processeurs qui peuvent être éloignés. Communication interprocessus pose des problèmes de retards (vitesse de propagation) Manque de fiabilité (panne) Modification de topologie. 2. Pourquoi utiliser des systèmes parallèles ? Lois de la physique : Fréquence d'horloge limitée (Puissance consommée = f², on baisse la tension pour limiter la consommation) Dans l'avenir le passage à n processeur risque d'être la seule solution viable, pour augmenter la puissance. ♦ Gain de performance : Peu de processeur très rapide mais cher Beaucoup de processeurs lents (ex : ILLYAC, 64 processeurs (1974)) ♦ Gain de flexibilité extensibilité : On peut augmenter la puissance en ajoutant n processeurs. Les langages de programmation sont indépendants de la topologie (avec 4 ou 20 processeurs) ♦ Traitement temps réel : (simulation d'une machine électronique avec un logiciel) Adapter aux simulations de systèmes physiques. (ex : traitement par éléments finis) ♦ Aide à la vérification : Des processeurs vérifient les résultats d'autres processeurs. (1 prog. exécutent 1 tâche sur n processeurs & 1 prog. Vérifient l'exécution du prog. précédent Grosse machine multiprocesseur. 3. Quelques faits & dates : 1980 : Informatique de demain c'est le parallèle ? : non réalise aujourd'hui L'armé, la météo, les scientifiques qui utilisent ces machines Petite machine 1985 : Transputers (beaucoup de microprocesseur, clavier, écran...) monoprocesseur. Les sceptiques pensent que cela va apporter plus de mal que de bien car : Remise en cause de la théorie, Redoutable bouleversement matériel Nouvelles méthode d'analyse & de programmation. (il faut réapprendre à programmer) 1990 : Intel produit IPSC/860 (128 processeurs, 2,6 Giga Flops (Opérations en virgule flottante) 1992 : Thinking Machine CM-5 (IBM) (1024 processeurs (59 G flops) 1 Architecture des systèmes informatiques CNAM 2000 1997 Intel ASCI Red Tflops (4500 pentium pro, 1 Tera flops, 2 To de DD, 600 Go RAM) 4. Taxinomie : (classement machine parallèle) 4.1. Système fortement couplé : Il existe un très grande interaction entre processeur via mémoire partagée. Mémoire Bus 4.2. Système faiblement couplé : Chaque processeur dispose d'une mémoire locale et chaque ensemble mémoire processeur communique via un bus d'interconnexion. Processeurs & mémoire Bus Autre système de classement selon instruction & les données sont réparties. 4.3. SISD : (Single Instruction Stream Single Data Stream) 1 seul flux d'instruction 1seul flux de donnée Unité de commande Unité Arithmétique Logique (UAL) Mémoire Bus d'interconnexion Variante de SISD (pipeline) UCmd UAL UCmd UAL UCmd UAL UCmd UAL Mémoire Bus d'interconnexion 2 Architecture des systèmes informatiques CNAM 2000 • Sur 1 processeur normal : Ttotal = nbre d'opérations × nbre UAL × tps opérations • En pipeline : Ttotal = nbre UAL × tps opérations + (nbre d'opérations -1) × tps opérations Rapport entre les 2 R = Pipeline / Normale Si n très grand R = 1/ nbre d'opérations Il est plus avantageux de travailler avec architecture en pipeline si on a beaucoup d'opérations. 4.4. MISD : (Multiple Instruction Stream Single Data Stream) Plusieurs flux d'instructions 1seul flux de donnée Instruction telle que l'adittion +, -, ×, / sont décomposé en étapes élémentaire. Chaque etage est réalisé chaqu'un son tour sur un processeur particulier. Processeur Séparés par des registres qui contienent des données à échanger (structure en pipeline) (Architecture Rares) 4.5. SIMD : (Single Instruction Stream Multiple Data Stream) Pentium III 1 seul flux d'instruction Plusieurs flux de données (Instruction capable d'effectuer la même opérations sur plusieurs donnée à la fois) Processeur Traitant en parallèle de la même façon les éléments d'un vecteur. Très efficace pour le - Calcul matriciel - Tri UCmd UAL UAL UAL Mémoire Ex : Cray 1 (1976) VP2000 Futjisu (pipeline 7 étages Bus Synchrone 4.6. MIMD : (Multiple Instruction Stream Multiple Data Stream) Plusieurs flux d'instructions Plusieurs flux de données Plusieurs processeurs & modules de mémoire Chaque processeur execute les instructions stocké dans son module de mémoire. Il existe un réseau d'interconnexion entre chaque processeur+mémoire Bus Asynchrone 3 Architecture des systèmes informatiques CNAM 2000 5. Classification des MIMD : 5.1. Faiblement couplées : Problèmes : liaison entre processeurs (Ecriture lecture sur un même emplacement mémoire Un processeur monopolise le bus d'interconnexion) 5.2. Fortement Couplées : Processeur peuvent être associé à 1 mémoire partagés Mémoire structuré en module parallèle. Avantage : Facile à programmer car on ne s'occupe pas de la mémoire Inconvénient : Faible extensibilité, engorgement de la mémoire quan on augmente le nombrede processeurs (la mémoire cache limite le problème) 5.3. Système Multiprocesseurs & Mémoire patagées : (en fortement couplé) Mémoire partagé ⇒ conflit d'accès : au niveau instruction & données Si on augmente le nombre de processeur on n'augmente pas le rendement. (Ex: Batterfly (1978) ⇒ DARPA (processeur 68000 Motorolla) 5.4. Système Multiprocesseur & Mémoire Distribué : (en faiblement couplé ou couplage lâche (losely coupled architectur)) Echange sur le réseau de messages qui contiennent les programmes paquets de données à traiter) topologie en réseau (bus, point à point) Problème : Blocage mutuelle : 2 Processeurs attendent mutuellement des informations Famine : 1 Processeurs monopolise le réseau d'interconnexion Etreinte Eternelle : 2 processeurs monopolise le système (bouclage l'un sur l'autre) Exemple : Hyper cube (intel) 1986 IPSC/1 de 32 à 128 Processeur Cube de dimension 5 (32 nœuds, 32 processeurs) Chaque nœud contenant : Mémoire Locale 510 ko CPU 80286 Co-processeur 80287 Soit 128 nœuds equivaut ici a 8 MFLOPS. 4