Transcript MIMD

Calcul intensif
Jean-Pierre Gallou
Centre Interuniversitaire de Calcul de
Toulouse
Stage de formation au calcul parallèle
dans le domaine scientifique
CICT
Calcul Intensif
1
Programme










CICT
Introduction
Programme
Puissance
Puissance (2)
Calcul vectoriel
Calcul //
Calcul // (2)
Calcul // (3)
Types de //isme
Types de //isme: SIMD
Calcul Intensif
2
Programme (suite)









CICT
Types de //isme: MIMD
MIMD Mémoire partagée (SMP)
MIMD Mémoire partagée (2)
MIMD Mémoire distribuée
MIMD Mémoire distribuée (2)
MIMD Mémoire distribuée (3)
Le point de vue du programmeur
Envoi de messages
Pour obtenir plus d’informations
Calcul Intensif
3
Introduction






CICT

Cadre et rapide historique du calcul intensif
Pourquoi du calcul intensif ?
• algorithmes de + en + complexes, de + en
+ gourmands
• problèmes de + grande taille, avec une
résolution + fine
Domaine scientifique, autres domaines
Considérations générales : puissance
Calcul vectoriel
Calcul //, divers types de //isme
Calcul Intensif
Matériel et logiciels
4
Puissance



CICT
Puissance théorique (celle annoncée),
pratique (peut être très inférieure)
MFlops, millions d'instructions en calcul
flottant par seconde, 32 ou 64 b.
Problèmes requérant une grande puissance :
prévision du climat, météo, circulation
océanique, dynamique des fluides, vision,
simulation de phénomènes physiques
complexes, etc.
Calcul Intensif
5
Puissance (2)



CICT
Nombreuses techniques : pipeline,
vectorisation, chaînage, multiplication des
unités fonctionnelles, accès mémoire rapides
(caches), processeurs RISC,...
Puissance des calculateurs monoprocesseurs limitée
Parallélisme par obligation
Calcul Intensif
6
Calcul vectoriel




CICT
Idée : concevoir des UC agissant sur des
vecteurs (tableaux linéaires de nombres) et
non sur des scalaires
Programmation dans langage standard,
vectorisation automatique (boucle DO <-->
op. vectorielle)
op. vectorielle élimine test, boucle, …
Type : CRAY
Calcul Intensif
7
Calcul //


CICT
Idée : utiliser plusieurs UC, éventuellement
en grand nombre
Grosses difficultés :
• nombreux codes séquentiels, inadaptés au
calcul //
• Dépendance des données (plusieurs
types)
• Calcul // ==> programmes adaptés à la
structure de la machine
Calcul Intensif
8
Calcul // (2)

CICT
Granularité
• Rapport entre temps calcul et temps
communication
• Gros grains : chaque processeur peut
effectuer beaucoup de calculs avant de
communiquer avec les autres
• Grain fin : communication fréquente
Calcul Intensif
9
Calcul // (3)



Surcharge (overhead)
Accélération (speedup)
Loi d’Amdahl
– Si un code comporte des parties non
parallélisables importantes, le gain est vite
limité.
– 10% séquentiel ==> speedup max de 10

CICT
Extensibilité (scalability)
Calcul Intensif
10
Types de //isme



CICT
SIMD
MIMD
• mémoire partagée
• mémoire distribuée
SPMD équivalent à MIMD
Calcul Intensif
11
Types de //isme: SIMD



Une instruction s’exécute sur n processeurs
traitant chacun un élément d’un vecteur
(Single Instruction, Multiple Data)
Connection machine, Maspar (DEC)
P P P P P P P
Très spécifique
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P P P P P P P
P P P P P P P
CICT
Calcul Intensif
12
Types de //isme: MIMD



CICT
Chaque processeur exécute son programme
sur ses données
Multiple Instruction, Multiple Data
Synchronisation
Echanges de données
Calcul Intensif
13
MIMD Mémoire partagée (SMP)



Limité en nb de processeurs (16, 64)
Problèmes d’architecture et construction de la
mémoire critiques
CRAY-2, Y-MP, C90, IBM ES/9000, …
Mémoire
Communication
P
CICT
P
P
Calcul Intensif
P
P
14
MIMD Mémoire partagée (2)




CICT
Plus simple pour le programmeur : chaque
programme a accès à l’ensemble des
données
Réalisation logicielle : threads
Librairie C, directives fortran
Il existe des paralléliseurs automatiques de
code fortran
Calcul Intensif
15
MIMD Mémoire distribuée



Non limité en nombre de processeurs (MPP).
Topologie de communication : hypercube,
etc.
CRAY T3E, IBM SP/2 …
Communication
CICT
P
P
P
P
P
M
M
M
M
M
Calcul Intensif
16
MIMD Mémoire distribuée (2)


CICT
S’adapte à des machines différentes
• processeurs, standard ou non, reliés par
architecture de communication spéciale
• grappes (clusters)
• machines distantes sur réseau
Problèmes de communication entre
processeurs critiques
Calcul Intensif
17
MIMD Mémoire distribuée (3)





CICT
Moins simple pour le programmeur :
programmer l’accès aux données distantes
Réalisation logicielle : message passing
Peu de progiciels, peu de librairies
mathématiques.
Au niveau élémentaire : PVM, P4, MPI,
Express, etc.
Problèmes non traités, à prendre en compte :
répartition de charge, …
Calcul Intensif
18
Le point de vue du programmeur




CICT

Difficulté : pas de standard
• plusieurs modèles de programmation
(mémoire partagée ou non, répartir les
données ou les traitements, ...)
// implicite
• automatique (boucles DO)
• OpenMP
// explicite (messages, …)
Certaines architectures bonnes pour certains
problèmes
Pas de bonne solution
universelle
Calcul Intensif
19
Envoi de messages





CICT
PVM, puis MPI
bibliothèques de fonctions C, Fortran77 (C++,
F90)
Indépendant de la plate-forme
MPI-2
domaine public
Calcul Intensif
20
Pour obtenir plus d’informations




CICT
news:comp.parallel, news:comp.parallel.pvm
news:comp.parallel.mpi
http://www.irisa.fr/orap/
http://www.hensa.ac.uk/parallel/environments/
pvm3/
Calcul Intensif
21