ABSTRACT
High performance computing are more needed in research and
industry. It is objective is to execute an application in the fastest manner.
Nowadays, it is easy for us to buy a personnal computer that have high
performance more cheaper. A method by putting computing nodes together could
provide considerable performance to compute a parallel application.This is the
parallelism. It is therefore important to subdivide the application into tasks,
to find the processors on which we will execute them and the date of their
execution this is the problem of scheduling. This problem is well known and
many works have been done on that subject. Most of them have been done on
homogeonous clusters consisting of identical nodes of computing interconnected
with an homogeonous network. On the other hands, the nodes and links can have
no identical caracteristics. In this case, we speaking about heterogeonous
clusters. Although they facilitate to have many resources of computing,
heteregeonous clusters get tasks scheduling difficult in the sense that tasks
have to communicate each others. For instance, two adjacents nodes with
different performance will deal differently the reception of a message. So if
tasks are scheduled randomly, the system can be affected in performance. The
problem of scheduling in these conditions is NP-Complete. It is therefore too
difficult to find a polynomial algorithm as a solution. Our work is to propose
a heuristic of scheduling in heterogeonous clusters and evaluate it on an
application.
Keywords Application, graph, task, scheduling, clusters,
heterogeneous, homogeonous, parallelism.
Table des matières
Table des figures xi
Introduction générale 1
I CALCUL PARALLELE ET ARCHITECTURE DES GRAPPES
4
1 Calcul parallèle 4
1.1 Motivations et principes 4
1.2 Programmation parallèle 5
1.2.1 Objectifs de la programmation parallèle 5
1.2.2 Classes d'applications parallèles 6
1.2.3 Modèle de la programmation parallèle 6
2 Taxonomie des machines parallèles 8
2.1 Architecture SISD 8
2.2 Architecture MISD 9
2.3 Architecture SIMD 10
2.4 Architecture MIMD 11
2.4.1 Exemple d'application des quatre classes principales
14
3 Grappes d'ordinateurs 15
3.1 Origine et évolution de grappes 15
3.1.1 Les supercalculateurs 15
3.1.2 les réseaux de station de travail 15
3.1.3 Les grappes de PC 16
3.1.4 Les architectures actuelles 17
3.2 Caractéristiques des grappes 19
3.2.1 Accès aux ressources 19
3.2.2 Sécurité 20
3.2.3 Tolérances aux fautes 20
3.3 Infrastructures matérielles des grappes 20
3.3.1 Architectures matérielles des grappes 20
3.4 Infrastructures logicielles des grappes 21
4 Analyse des performances d'une architecture multiprocesseurs
22
4.1 Modèles de Calcul 22
4.1.1 Modèle à durée égale 22
4.1.2 Modèle de calcul parallèle avec des parties
séquentielles 23
4.2 Un argument pour les architectures parallèles 25
4.2.1 Loi d'Amdahl 25
4.2.2 Loi de gustafson 26
II CONCEPTS D'ORDONNANCEMENT 28
1 Modélisation d'une application 28
1.1 Graphe de précédence 28
1.2 Graphe de flots de données 29
1.3 Graphe de tâches 32
2 Les Modèles classiques d'ordonnancement 33
2.1 Modèles à coût de communications nul
33
2.2 Modèle délai 34
2.3 Les modèles LogP et BSP 35
3 Modèles d'exécution et ordonnancement 36
3.1 Le modèle PRAM 36
3.2 Les modèles avec délai de communications
37
3.2.1 Modèle UET 38
3.2.2 Modèle UET-UCT 39
3.2.3 Modèle UET-LCT 39
3.2.4 Modèle SCT 41
3.3 Le modèle LogP 41
3.4 Le modèle BSP 42
III GRAPPES HETEROGENES et ORDONNANCEMENT 46
1 Eléments de coût 46
1.1 Les stations de travail 46
1.2 Les équipements réseau 46
1.2.1 Les commutateurs 47
1.2.2 Les concentrateurs 49
1.2.3 Les routeurs 49
1.3 Technologie réseau 49
1.4 Système d'exploitation et pile réseau 49
2 Proposition d'un modèle d'ordonnancement sur les grappes
hétérogènes 51
2.1 Modélisation de l'architecture
hétérogène 51
2.2 Graphe de tâches. 52
2.3 L'ordonnancement 52
2.4 Modéle des communications 52
2.5 Idée Générale 53
IV EVALUATION DU MODELE SUR UNE APPLICATION
54
1 Présentation de l'architecture de notre grappe 54
2 Calcul des caractéristiques des noeuds du graphe de
grappe 55
2.1 Les surcoûts engendrés par la pile réseau
relatifs à chaque station de travail . 55
2.2 Tableau récapitulatif et discussion 58
3 Calcul des caractéristiques des arcs du graphe de grappe
58
3.1 Evaluation des latences 58
3.2 Evaluation des débits des liens 61
3.2.1 Discussion 61
4 Programmation de l'application 61
4.1 Algorithme 61
4.2 Code 61
5 Ordonnancement sur la grappe 63
5.1 Résultats et discussion 64
Conclusion générale et perspectives
68
A Annexe 71
1 CONFIGURATION DE NOTRE GRAPPE 71
1.1 Configuration logicielle 71
1.1.1 OAR: gestionnaire de tâches 71
1.1.2 MPICH2 : bibliothèque de communications 73
1.1.3 Serveur NFS : Network file system 74
1.1.4 Serveur NIS : Network information service 75
2 Code séquentiel du produit d'une matrice par un vecteur
76
Bibliographie 77
LISTE DES ABBREVIATIONS
API : Application Program Interface
ARP : Address Resolution Protocol BSP : Bulk
Synchronous Parallel
CESDIS : Center of Excellence in Space Data and
Information Sciences
CM : Connection Machine
CONDOR: Open Grid Computing
COTS: Commodity Off The Shelf
CRAY: Supercomputer Company ( Name of the father
of Supercomuting : Seymour Cray)
CRC : Cyclic Redondancy Control
CRCW : Concurrent Read Concurrent Write
CREW: Concurrent Read Exclusive Write
EREW : Exclusive Read Exclusive Write FTP :
File Transfer Protocol
GNU: GNU is Not Unix
HPC : High Personal Computing HTC
: High Throughput Computing HTTP : Hypertext Transfer
Protocol IBM: International Business Machine
IBM SP : International Business Machine Scalable
Power
ICL DAP : International Computer LTds
Distributed Array Processor
IPC : InterProcess Communication LAN
: Local Area Network
LCT : Large Communication Time MAC
: Media Access Control
MFLOPS : Mega Floatting Operations Per Second
MIMD : Multiple Instruction Multiple Data
MISD : Multiple Instruction Single Data MPI :
Message Passing Interface
MPICH : Message Passing Interface Chameleon
MPMD : Mutiple Programs Multiple Data MVP :
Model View Presenter
NEC : Network Enterprise Center
NFS : Network File System
NIS : Network Information System NOW
: Network Of Workstations
NP : Non Polynomial
NUMA : Non Uniform Access
OAR: Resource Manager
OSI : Open Systems International
PC : Personal Computer
PRAM : Parallel Random Access Machine
PVM : Parallel Virtual Machine
SAN: System Area Network
SCT : Small Communication Time SGI
: Silicon Graphics Image
SISD : Single Instruction Single Data
SIMD : Single Instruction Multiple Data SMP :
Symmetric Multiprocessing SMTP : Simple Mail Transfer Protocol
SPMD : Single Program Multiple data SSH :
Secure Socket Shell
SSI : Single System Image
TFLOPS : Tera Floatting Operations Per Second
UET : Unit Execution Time
UCT : Unit Communication Time
Table des figures
I.1 Architecture SISD 8
I.2 Architecture SIMD 9
I.3 Architecture MIMD 9
I.4 Modèle d'architecture SIMD 10
I.5 Les deux schémas SIMD 11
I.6 Architecture à mémoire partagée et
Architecture de passage de messages 12
I.7 Un réseau de stations de travail 16
I.8 Une grappe de PC 16
I.9 Une grappe de grappes faiblement couplées 17
I.10 Une grappe multiplement câblée (avec des
partitions) 18
I.11 Segments de programme 23
I.12 Modèle Amdahl 26
II.1 Exemple de Programme 29
II.2 Un graphe de précédence pour le programme. Les
tâches sont représentées par des cercles et les arcs
représentent les précédences. 30
II.3 Un graphe de flots de données pour le programme. Les
tâches sont représentées par des
cercles. Les données à transférer dans un
rectangle 31
II.4 Graphe de précédence G 31
II.5 Exemple de graphe de tâche du programme. Les chiffres
en bleu représentent les coûts de chaque tâches. Ceux en
noir représentent le volume des données à
transférer d'une
tâche à l'autre par unité de temps. 32
II.6 Le modèle LogP 35
II.7 A gauche nous avons une représentation de
l'ensemble des processeurs : P=8, L=6, g=4,
o=2 et à droite l'activité de chaque processeur dans le
temps. Le nombre montré pour chaque noeud est le temps auquel chaque
processeur a reçu les données et peut
commencer à envoyer. 36
II.8 Le modèle PRAM pour le calcul parallèle
37
II.9 Exécution dans le modèle UET 39
II.10 Exécution dans le modèle UET-UCT sans et avec
duplication 40
II.11 Exécution dans le modèle UET-LCT sans et avec
duplication 40
II.12 Exécutions dans le modèle SCT sans et avec
duplication 41
II.13 Exemple des paramètres LogP 42
II.14 Ordonnancement sous le modèle LogP 43
II.15 Schéma d'exécution dans le modèle BSP
44
III.1 Trame ethernet 47
III.2 Un message classique tel qu'il transite sur le
réseau 51
IV.1 Notre grappe 55
IV.2 Courbe représentant l'accélération de
l'algorithme parallèle 66
IV.3 Courbe représentant l'efficacité de
l'algorithme parallèle 67
|