Processeur vectoriel Jean-luc.dekeyser@lifl.fr Version 2013 LES SUPERCOMPUTERS Co processeur dédié au calcul d'opérations sur des vecteurs. Un vecteur est défini comme un tableau d'opérandes. La même opération est effectuée sur l'ensemble des données. 4 Tendances architecturales: capacité des processeurs IBM 3090 VF Mémoire Gordon Moore (co-fondateur de Intel) a prédit en 1965 que la densité en transistors des semiconducteurs doublerait environ tous les 18 mois. Cache CPU Scalaire Décodeur Vecteur éléments Vecteur instructions CPU Vectoriel Les processeurs sont devenus plus petits, plus denses et plus puissants. Les réseaux, le stockage, la vitesse mémoire se sont aussi améliorés. Scalaires Valeur scalaire Vectoriels 2 5 Fonctionnement PROCESSEUR VECTORIEL IF ID FO EX SO EX IF ID FO EX SO EX EX IF ID FO EX SO EX EX EX IF ID FO EX EX EX EX EX EX EX EX 3 6 1
Intérêts Augmente la densité du code Réduit le nombre d instruction à exécuter (Ibandwith) Les données sont régulières et structurées: prise en compte hardware Intègre le contrôle de la boucle Unités fonctionnelles Plusieurs unités indépendantes Elles sont en général pipelinées Elles peuvent être parallèles 7 10 Notion de registres vectoriels Ensembles de 16 ou 64 ou 128 registres de 64 ou 128 bits Peuvent contenir des entiers et surtout des flottants Instructions de chargement spécifiques Plusieurs unités de Load/Store (3 sur le Cray) UF Pipeline input Registre output pipeline 8 11 Jeu d instructions Pipeline d addition Extension du jeu d'instructions (machine à registres vectoriels): V1 op V2 V3 opération binaire s1 op V2 V3 scalaire V1 op V2 s1 réduction M(1:n) V1 vecteur Load V1 M(1:n) vecteur Store op V1 V2 opération unaire op V1 s1 réduction unaire 9 C S A N Compare exposants Shift mantisse Add mantisses Normalise X1, Y1 C S A N Z1 X2, Y2 C S A N Z2 X3, Y3 C S A N Z3 X4, Y4 C S A N Z4 X5, Y5 C S A N Z5 X6, Y6 C S A N Z6 12 2
UF Parallèle input Registre output Pour les Load/Store Les entrées/sorties utilisent des mémoires entrelacées. Sans conflits, elles produisent une donnée par cycle processeur par port. On démarre le calcul avant que toutes les données soient arrivées 13 16 Avec deux pipelines parallèles X1, Y1 C S A N Z1 X2, Y2 C S A N Z2 X3, Y3 C S A N Z3 X4, Y4 C S A N Z4 X5, Y5 C S A N Z5 X6, Y6 C S A N Z6 A1 B8 C16 Move V3, C C= A B (3 ports d E/S) A2 B9 C17 C1 Move A,V1 A1 B1 A2 B2 A3 B3...... A64 B7 C15 Move B,V2 14 A2 B2 A3 B3 A4 B4 A5 B5 ADD V1, V2, V3 17 Chaînage de pipelines Une opération peut commencer lorsque Les deux premiers opérandes sont prêts X1 et Y1 L unité fonctionnelle est libre Dès qu un autre couple (Xi, Yi) est prêt, on l envoie vers l UF. La production d une UF est directement consommée par l UF suivante Chaînage pour les UF On peut également chaîner les UF La ou les sorties des UF sont connectées directement aux entrées des UF suivantes On obtient un Pseudo pipe-line par concaténation 15 18 3
C = (s x A) B Vload A, V1 Vload B, V2 Vmul s, V1, V3 Vadd V3, V2, V4 Vstore V4, C Historique Projet Beowulf (NASA, HPCC, début 1994) exploiter la puissance de calcul et le parallélisme potentiels d une pile de PC pour l exécution d applications scientifiques adapter la configuration de ces systèmes à faible coût aux besoins de calcul de la Nasa Configuration PC Réseau standard Ethernet Système de communication par échange de messages : TCP/IP Linux -> ExtremeLinux Octobre 1996 1,25 Gflops sur une grappe de 16 machines standard valant moins de $50 K pour une application de simulation numérique 19 22 Les machines parallèles Machine parallèle multiprocesseur très performante mais très chère, peu évolutive, facile à programmer. Les performances L unité de mesure: flops FLoating-point OPerations per Second MFlops: 1 million de flops GFlops: 1 milliard de flops TFlops: 1.000 milliards de flops PFlops: 1 millions de milliards de flops TOP500: liste des 500 machines les plus puissantes au monde http://www.top500.org/ Benchmark Linpack (Ax=b, dense) 20 23 Les grappes Grappe, Cluster, NOW, ensemble de machines standards interconnectées par un réseau à haut débit très bon marché, performance en hausse, évolutive, plus difficile à programmer efficacement. (10 15 ) (10 12 ) (10 9 ) (10 6 ) 1941 1 (Floating Point operations / second, Flop/s) 1945 100 1949 1,000 (1 KiloFlop/s, KFlop/s) 1951 10,000 1961 100,000 1964 1,000,000 (1 MegaFlop/s, MFlop/s) 1968 10,000,000 1975 100,000,000 1987 1,000,000,000 (1 GigaFlop/s, GFlop/s) 1992 10,000,000,000 1993 100,000,000,000 1997 1,000,000,000,000 (1 TeraFlop/s, TFlop/s) 2000 10,000,000,000,000 2003 35,000,000,000,000 (35 Tflop/s) Vector Super Scalar Scalar Super Scalar/Vector/Parallel Parallel (10 3 ) 21 24 4
Le concept de grille Approche pour la distribution de la puissance électrique = le réseau électrique et la haute-tension 25 28 Le dernier TOP 500 Le concept de grille informatique (GRID) Approche pour la distribution de la puissance informatique = le réseau Internet et la haute-performance (parallélisme et distribution) 29 Les origines... Les grilles Des millions de PC inoccupés... Nuits week-end = 60% Des millions de disques pratiquement vides... 1-10 Go Des millions de connexions Internet en attente d entrée clavier 2 Mo/s 27 30 5
Méta-ordinateur! 31 Grid5000 en France Pourquoi les grilles? Les problèmes de grandes tailles nécessitent une collaboration entre divers codes/centres de calculs Toujours plus de besoin en termes de puissance de calcul, de capacité mémoire et de capacité de stockage disque La puissance de n importe quelle ressource unique est petite en face de l agrégation de plusieurs ressources La connectivité réseau augmente de manière rapide à la fois en bandepassante et en disponibilité Prolifération de ressources De nombreuses grappes Des supercalculateurs Des stations de travail et des PCs par millions Complexité croissante des applications Multi-échelles Multi-disciplinaire Des volumes de données énormes De l hétérogénéité 33 6