Architecture Bench
Architecture Bench
–
Architecture des calculateurs
Violaine Louvet 1
1
Institut Camille jordan - CNRS
12-13/09/2011
Introduction
CPU
Memory
AGP Memory Bus
PCI Express
Northbridge
Internal Bus
Southbridge
PCI Express S-ATA
1 Processeur
2 Mémoire
3 Communications CPU-Mémoire-IO
4 Réseaux
5 Stockage
6 GPU
Le processeur
CPU
Memory
AGP Memory Bus
PCI Express
Northbridge
Internal Bus
Southbridge
Le processeur est rythmé par une horloge défini par sa fréquence (MHz
ou GHz)
A chaque impulsion d’horloge (exemple classique d’un processeur à 5
étages) :
1 lecture de l’instruction (IF, Instruction Fetch)
2 décodage de l’instruction (ID, Instruction Decode)
3 exécution de l’instruction (EX, Execute)
4 écriture ou chargement depuis la mémoire en fonction du type de
l’instruction (MEM, Memory)
5 stockage du résultat dans un registre (WB, Write Back)
Plus la fréquence est élevée et plus le processeur peut traiter les
instructions rapidement
IF ID EX MEM WB
Attention
Un programme réalisé pour un type de processeur ne peut pas
fonctionner directement sur un système possédant un autre type de
processeur.
Pipeline
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
Exemple SSE
Algorithme :
f o r i = 1 ,n
x [ i ] = sqrt (x [ i ] )
Travail du processeur :
f o r i = 1 ,n
l o a d x [ i ] t o t h e f l o a t i n g −p o i n t r e g i s t e r
c a l c u l a t e t h e square r o o t
w r i t e t h e r e s u l t from t h e r e g i s t e r t o memory
Avec SSE :
f o r { i 1 , i 2 , i 3 , i 4 } i n {1 : n }
l o a d x [ i 1 ] , x [ i 2 ] , x [ i 3 ] , x [ i 4 ] t o t h e SSE r e g i s t e r
c a l c u l a t e 4 square r o o t s i n one o p e r a t i o n
w r i t e t h e r e s u l t from t h e r e g i s t e r t o memory
Architectures superscalaires
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
Hyperthreading
Attention
Ce fonctionnement est généralement activé par défaut.
En pratique
Sur un core I7, commande en ligne cpuinfo :
I n t e l (R) Core (TM) i 7 Processor ( I n t e l 6 4 Q 820 )
===== Processor c o m p o s i t i o n =====
Processors (CPUs) : 8
Packages ( s o c k e t s ) : 1
Cores per package : 4
Threads per core : 2
Multi-cœurs, socket
Serveur
Socket Socket
Mais ...
L’architecture intrinsèque du processeur peut impacter négativement la
performance :
Partage de certaines ressources
Gestion des dépendances entre instructions
Prédiction de branchement ...
Pourquoi les multi-cœurs ?
Exemple
1 Processeur
2 Mémoire
3 Communications CPU-Mémoire-IO
4 Réseaux
5 Stockage
6 GPU
La mémoire
CPU
Memory
AGP Memory Bus
PCI Express
Northbridge
Internal Bus
Southbridge
« Memory Wall »
VitesseCPU VitesseMemory
106
Relative performance
Processor
103
Memory
1
1980 1990 2000 2010
Hiérarchie Mémoire
Registres
Caches
Proximité du cœur
Bande passante
Latence
RAM : Mémoire locale
Vitesse
Taille
Disques : Mémoire secondaire
Avantages :
Coût
Densité (donc capacité)
Désavantages :
Latence/Débit
Contraintes d’utilisation (besoin d’un rafraîchissement périodique)
Avantages :
Rapidité (cycle SRAM 8 à 16 fois plus rapide qu’un cycle DRAM)
Stabilité (pas de rafraîchissement)
Désavantages :
Coût (8 à 16 fois plus élevé que la mémoire DRAM)
Densité
Agencement et caractéristiques
Localité temporelle
Lorsqu’un programme accède à une donnée ou à une instruction, il est
probable qu’il y accédera à nouveau dans un futur proche
Exemple
L3 Cache L3 Cache
Shared L2 Cache
Core L1 L2 Core L1 L2
L3 Cache L3 Cache
Core L1 Core L1
Problème de cohérence
Problème d’accès concurrent
Mémoire virtuelle, mémoire physique
RAM
RAM
RAM
Page faults / Caches miss
Défaut de cache (cache miss) : lorsque le processeur essaie d’accéder
une donnée qui n’est pas dans le cache
Raté obligatoire (compulsory miss) : premier accès au bloc pendant
l’exécution du programme. Inévitable.
Raté par capacité insuffisante (capacity miss) : accès à un bloc qui a
été remplacé par un autre dans le cache car la capacité du cache
est insuffisante.
Défaut de page (page fault) : lorsqu’un processus tente d’accéder à une
adresse logique correspondante à une page non résidente en mémoire
centrale −→ interruption du processus le temps de charger la page.
Temps de traitement d’un défaut de page : ∼ 25ms
do i =1 ,n
do j =1 ,m
. . . a( i , j ) . . .
end do
end do
1 Processeur
2 Mémoire
3 Communications CPU-Mémoire-IO
4 Réseaux
5 Stockage
6 GPU
Communications
CPU
Memory
AGP Memory Bus
PCI Express
Northbridge
Internal Bus
Southbridge
PCI Express S-ATA
Memory
Memory bus
CPU
Video Card
Internal bus
PCI Express
Southbridge S-ATA
AGP
USB 2.0
Bus Serial
Cntrl BUS
Links
Sommaire
1 Processeur
2 Mémoire
3 Communications CPU-Mémoire-IO
4 Réseaux
5 Stockage
6 GPU
Réseaux
. . .
RESEAU
. . .
node
Caractéristiques des réseaux
1 Gb Ethernet - 1 Gb/sec
Node 1 Node 2
Infiniband fabric
Node 4 Node 3
1 Processeur
2 Mémoire
3 Communications CPU-Mémoire-IO
4 Réseaux
5 Stockage
6 GPU
Stockage
Problématique complexe :
Hardware : technologies disques (SSD, SATA, SAS, ...)
Systèmes de fichiers :
local (ext3, ntfs ...)
partagés, parallèles (nfs, Lustre, ...)
Interconnexion (directe : DAS, par le réseau : SAN, NAS)
Liaison directe : SATA, SCSI, ...
technologie réseau : Fibre Channel, iSCSi...
Caractéristiques à prendre en compte :
Volumétrie (et évolutivité)
Performance : débits ...
Accès aux données (FS parallèle ...)
Sécurité (stockage court terme, long terme, haute disponibilité)
Densité, consommation électrique
Le coût ! !
IOPS
Nombre d’I/O pouvant être traitées par secondes
Principales solutions de stockage
Réseau de stockage FS
SCSI/SATA
Ethernet/IB
CN CN CN
Serveurs de Serveurs de
fichiers fichiers
FS FS
Ethernet/IB Ethernet/IB
CN CN CN CN CN CN
Goulot d’étranglement
Le débit global est dépendant de toute la chaîne d’I/Os (baie, serveur,
interconnexion ...).
Bottleneck
Loi d’Amdahl sur l’équilibre des machines de calcul : une instruction par
seconde requiert un octet de mémoire et un bit/seconde de capacité
d’entrée-sortie.
1 Processeur
2 Mémoire
3 Communications CPU-Mémoire-IO
4 Réseaux
5 Stockage
6 GPU
Pourquoi les GPU ?
ALU ALU
Flow ...
Control
ALU ALU
...
...
CACHE
...
DRAM DRAM
CPU GPU
Caractéristiques d’un GPU
Beaucoup de cœurs : 448 dans le Nvidia Tesla C2050/C2070 avec une
fréquence de 1.15 GHz.
Support IEEE double précision en virgule flottante
Mémoire : jusqu’à 6 GB
Evolution ?
Les machines en tête du top 500 sont des machines mixtes CPU-GPU
Apparition d’architecture mixte comme le Fusion d’AMD ou le Sandy
Bridge d’Intel : packaging d’un processeur et d’un cœur graphique
Amélioration de l’efficacité des transferts CPU-GPU ?
Conclusions
Au niveau technologique
Beaucoup de cœurs
Des cœurs hybrides CPU/GPU
Une différence entre la vitesse de calcul et les transferts mémoire
et I/O
Conclusions
Au niveau applicatif
http://calcul.math.cnrs.fr/
http://www.realworldtech.com
https:
//computing.llnl.gov/tutorials/parallel_comp/
http://www.idris.fr
http://www.top500.org
http://www.prace-project.eu/hpc-training
http://www.inria.fr/actualites/colloques/
cea-edf-inria/index.fr.html
http://www.nvidia.fr
http://www.intel.com