Présentation
Auteur(s)
-
Franck CAPPELLO : Chargé de recherche au CNRS - Laboratoire de recherche en informatique LRI - Université Paris Sud, Orsay
-
Jean-Paul SANSONNET : Directeur de recherche au CNRS - Laboratoire d’informatique pour la mécanique et les sciences de l’ingénieur LIMSI - Université Paris Sud, Orsay
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleINTRODUCTION
L’architecture des ordinateurs, qu’il s’agisse de microprocesseurs ou de supercalculateurs, est fortement influencée par l’exploitation d’une propriété fondamentale des applications : le parallélisme. Un grand nombre d’architectures présentes dans les sites informatiques sont parallèles. Ce type d’architecture touche une large gamme de machines depuis les PC biprocesseurs jusqu’aux supercalculateurs. Aujourd’hui, la plupart des serveurs sont des machines parallèles (des multiprocesseurs).
L’objectif de notre exposé est d’introduire la notion de parallélisme, de discuter la nécessité de l’exploiter pour atteindre de hautes performances et de présenter les différentes formes d’architectures d’ordinateurs parallèles.
Tout au cours de notre étude, nous évoquons plusieurs domaines d’applications pour lesquels l’exploitation du parallélisme est fondamentale : le traitement numérique, les bases de données, le traitement d’images, la comparaison de séquences ADN, etc. Pour traiter ces applications, les architectures parallèles peuvent être généralistes (c’est-à-dire capables de répondre aux besoins d’une grande diversité d’applications) ou spécialisées. Les architectures spécialisées sont destinées à exploiter les caractéristiques spécifiques d’une catégorie d’applications ou même d’une seule application. Nous présentons ces deux types d’architectures parallèles.
Bien souvent, il faut avoir recours à une conception et à un développement parallèle de l’application pour exploiter le parallélisme de façon intéressante. Les langages de programmation parallèles sont une composante essentielle dans la chaîne de conception d’une application. Nous présentons les principaux.
Enfin, l’intérêt des architectures parallèles réside dans les performances qu’elles permettent d’atteindre. Nous examinons donc les métriques utilisés pour rendre compte des performances et les grandes lois qui les gouvernent.
VERSIONS
- Version courante de août 2017 par Franck CAPPELLO, Daniel ETIEMBLE
DOI (Digital Object Identifier)
Présentation
Article inclus dans l'offre
"Technologies logicielles Architectures des systèmes"
(234 articles)
Actualisée et enrichie d’articles validés par nos comités scientifiques.
Quiz, médias, tableaux, formules, vidéos, etc.
Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.
Un ensemble de services exclusifs en complément des ressources.
3. Sources du parallélisme et opérations fondamentales
Pour découvrir d’où vient le parallélisme qui est exploité lors de l’exécution d’un programme, il faut remonter jusqu’au problème que traite le programme. Le problème doit présenter intrinsèquement des parties parallèles. Mais entre le problème dans sa formulation abstraite et le programme qui s’exécute, il existe plusieurs étapes : la formulation d’un algorithme, la programmation et la compilation. Le but, bien entendu, est de préserver autant que possible le parallélisme lors de la traversée de ces étapes.
Voici quelques-unes des applications typiques du parallélisme : calcul numérique, traitement et synthèse d’images, traitement du signal, base de données, systèmes experts, systèmes client-serveur, etc. Les algorithmes utilisés dans ces domaines travaillent sur des structures de données de grandes tailles (ex : des tableaux de plusieurs millions d’éléments) et/ou effectuent des actions indépendantes. Il existe donc deux formes de parallélisme :
-
une forme issue des données : le parallélisme de données ;
-
une forme issue de la structure de l’application : le parallélisme de contrôle.
3.1 Parallélisme de données
Voici une définition du parallélisme de données [31] : c’est un type de parallélisme pour lequel la même opération est réalisée simultanément par de nombreux processeurs sur des données différentes. Cette définition recouvre deux notions : la présence d’un parallélisme issu des données et la manière d’exploiter ce parallélisme.
prenons un exemple simple d’algèbre linéaire et plus particulièrement de calcul matriciel. L’addition de deux matrices consiste, pour tous les éléments de mêmes indices des deux matrices opérandes à les additionner et à stocker le résultat dans l’élément de même indice de la matrice résultat. Voici la boucle correspondante pour les matrices opérandes B et C et la matrice résultat A :
Pour i de 1 à n
Pour j de 1 à n
A [ i ][ j ] <- B [ i ][ j ] + C [ i ][ j ]
FinPour
FinPour
Comme pour la boucle étudiée au paragraphe ...
Sources du parallélisme et opérations fondamentales
Article inclus dans l'offre
"Technologies logicielles Architectures des systèmes"
(234 articles)
Actualisée et enrichie d’articles validés par nos comités scientifiques.
Quiz, médias, tableaux, formules, vidéos, etc.
Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.
Un ensemble de services exclusifs en complément des ressources.
Article inclus dans l'offre
"Technologies logicielles Architectures des systèmes"
(234 articles)
Actualisée et enrichie d’articles validés par nos comités scientifiques.
Quiz, médias, tableaux, formules, vidéos, etc.
Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.
Un ensemble de services exclusifs en complément des ressources.