Introduction Network File System Message Passing Conclusion
Syst` emes d’Exploitation
Cours 12/13 : Syst` emes r´ epartis, NFS, MPI
Nicolas Sabouret
Universit´e Paris-Sud Licence 3 - semestre S5
Introduction Network File System Message Passing Conclusion
Plan
1 Introduction
2 Network File System
3 Message Passing
4 Conclusion
Introduction Network File System Message Passing Conclusion
Plan
1 Introduction
2 Network File System
3 Message Passing
4 Conclusion
Introduction Network File System Message Passing Conclusion
Syst`emes r´epartis
Parc informatique moderne Exemple : universit´e ou ´ecole
Nombre d’utilisateurs Nombre de machine Diversit´e des usages
Deux besoins majeurs
Acc´eder aux donn´ees depuis n’importe quel poste 3 Stocker les donn´ees quelque part
3 Les r´ecup´erer quand on a besoin Calcul haute performance
3 Simulation, calcul num´erique. . .
Introduction Network File System Message Passing Conclusion
Syst`emes r´epartis
Parc informatique moderne Exemple : universit´e ou ´ecole
Nombre d’utilisateurs Nombre de machine Diversit´e des usages
Deux besoins majeurs
Acc´eder aux donn´ees depuis n’importe quel poste 3 Stocker les donn´ees quelque part
3 Les r´ecup´erer quand on a besoin Calcul haute performance
3 Simulation, calcul num´erique. . .
Introduction Network File System Message Passing Conclusion
Acc`es aux donn´ees
A la main (ex : cloud, dropbox, FTP)` Ü C’est l’utilisateur qui g`ere
7 Op´erations manuelles
7 Probl`eme : duplication des information
Automatiquement `a chaque connexion/d´econnexion Ü C’est la m´ethode utilis´ee sous Windows
7 Probl`eme : explosion desProfile
Automatiquement par le syst`eme de fichiers Ü M´ethodeNFS
7 D´ependant du r´eseau, de l’annuaire. . .
Introduction Network File System Message Passing Conclusion
Acc`es aux donn´ees
A la main (ex : cloud, dropbox, FTP)` Ü C’est l’utilisateur qui g`ere
7 Op´erations manuelles
7 Probl`eme : duplication des information
Automatiquement `a chaque connexion/d´econnexion Ü C’est la m´ethode utilis´ee sous Windows
7 Probl`eme : explosion desProfile
Automatiquement par le syst`eme de fichiers Ü M´ethodeNFS
7 D´ependant du r´eseau, de l’annuaire. . .
Introduction Network File System Message Passing Conclusion
Acc`es aux donn´ees
A la main (ex : cloud, dropbox, FTP)` Ü C’est l’utilisateur qui g`ere
7 Op´erations manuelles
7 Probl`eme : duplication des information
Automatiquement `a chaque connexion/d´econnexion Ü C’est la m´ethode utilis´ee sous Windows
7 Probl`eme : explosion desProfile
Automatiquement par le syst`eme de fichiers Ü M´ethodeNFS
7 D´ependant du r´eseau, de l’annuaire. . .
Introduction Network File System Message Passing Conclusion
High Performance Computing (HPC)
Historique
Supercalculateurs ann´ees 1960 - 1990 Architectures massivement parall`eles Renouveau ann´ees 2000 avec calcul GPU
Ordinateurs parall`eles
Single Instruction Multiple Data (SIMD) Multiple Instructions Multiple Data (MIMD) Grappes de serveurs (clusters)
Introduction Network File System Message Passing Conclusion
High Performance Computing (HPC)
Historique
Supercalculateurs ann´ees 1960 - 1990 Architectures massivement parall`eles Renouveau ann´ees 2000 avec calcul GPU
Ordinateurs parall`eles
Single Instruction Multiple Data (SIMD) Multiple Instructions Multiple Data (MIMD) Grappes de serveurs (clusters)
Introduction Network File System Message Passing Conclusion
Single Instruction Multiple Data (ann´ees 70)
Unit´e de contrˆole
RAM (poolde donn´ees) Processeur
data
Processeur
data
Processeur
data
Processeur
data
. . .
Propri´et´es
Chaque processeur effectue `a chaque tick les mˆemes op´erations arithm´etiquessur desdonn´ees diff´erentes
Unit´e de contrˆole d´ecide qui active les processeurs
Ü Applications : au calcul matriciel, op´erations bit `a bit, etc.
Introduction Network File System Message Passing Conclusion
Multiple Instructions Multiple Data (depuis ann´ees 90)
M´emoire Partag´ee
RAM
M´emoire Distribu´ee (ann´ees 2000)
Contrˆole Processeur
RAM
Contrˆole Processeur
RAM
Contrˆole Processeur
RAM
Contrˆole Processeur
RAM
. . .
Propri´et´es
Chaque processeureffectue ses calculsind´ependemment
Communication asynchrone entre les processeurs
(que la m´emoire soit r´epartie ou non)
Introduction Network File System Message Passing Conclusion
Multiple Instructions Multiple Data (depuis ann´ees 90)
M´emoire Partag´ee
RAM
M´emoire Distribu´ee (ann´ees 2000) Contrˆole
Processeur RAM
Contrˆole Processeur
RAM
Contrˆole Processeur
RAM
Contrˆole Processeur
RAM
. . .
Propri´et´es
Chaque processeureffectue ses calculsind´ependemment
Communication asynchrone entre les processeurs
(que la m´emoire soit r´epartie ou non)
Introduction Network File System Message Passing Conclusion
Multiple Instructions Multiple Data (depuis ann´ees 90)
M´emoire Partag´ee
RAM
M´emoire Distribu´ee (ann´ees 2000) Contrˆole
Processeur RAM
Contrˆole Processeur
RAM
Contrˆole Processeur
RAM
Contrˆole Processeur
RAM
. . .
Message Passing
Message Passing
Message Passing
Propri´et´es
Chaque processeureffectue ses calculsind´ependemment Communication asynchrone entre les processeurs
(que la m´emoire soit r´epartie ou non)
Introduction Network File System Message Passing Conclusion
Grappe de serveurs oucluster (ann´ees 90-2000)
RAM nœud CPU CPU CPU
RAM nœud CPU CPU CPU
RAM nœud CPU CPU CPU
switch utilisateur
Propri´et´es
Chaque nœudest unserveur MIMD `a m´emoire partag´ee (par exemple un PC Linux)
Communication asynchrone entre les serveurs, par le r´eseau via un switch tr`es haute vitesse
Les clients communiquent directement avec les serveurs (via le switch, et souvent via un portail)
Introduction Network File System Message Passing Conclusion
Clusters et MIMD
Coˆut
Beowolf (cluster NASA 1994) = 16 PC Intel 486 70 Gigaflops (op. flottants par sec)
40 000 USD (contre 1 M USD pour le supercalculateur
´
equivalent)
Syst`eme
Rencontre de plusieurs avanc´ees : PC pas cher (ann´ees 80) Switch rapides (1994)
Linux : opensource→ gratuit et adaptable Interface MPI
Introduction Network File System Message Passing Conclusion
Calcul sur grille (grid computing)
Principe
Infrastructure virtuelle
Syst`emes h´et´erog`enes (PC, serveurs, clusters, t´el´ephones. . . ) Qualit´e de service
Client, serveurs,agents
Avantages et inconv´enients 3 Passage `a l’´echelle (scalability)
7 Performance r´eseau → les calculs doivent ˆetre ind´ependants!
Exemples
Globus (https://www.globus.org/)
Backoffice e-commerce, simulation (s´eismes)
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Plan
1 Introduction
2 Network File System Principe g´en´eral Protocole DFS Montage
Gestion des noms de fichiers
3 Message Passing
4 Conclusion
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Partage de fichiers
Objectif
Partager des fichiers entre des syst`emes distants
M´ethodes
Transfert de fichiers (FTP, HTTP, mail. . . ) Syst`emes de fichiers distribu´es (ou r´epartis)
Acc`es client-serveur Anonyme (ex : HTTP)
Authentification par login + mot de passe (ex : FTP) Identification par clef (ex : SCP, git)
Identification par nom seul (ex : adresse IP)
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Network File System (NFS)
Principe
Syst`eme de fichier r´eparti sous Unix Approche client-serveur
→ chaque machine peut ˆetre `a la fois client et serveur Identification par nom fourni par le client
→ service de nommage
Protocole de communication : DFS
→ op´erations sur les fichiers Bas´e sur protocole TCP/IP
Impl´ementation variable d’un OS `a l’autre
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Services de nommages
Principe
Fournir les informations de l’ensemble des services : login, mot de passe, user ID, group ID, adresse. . .
pour les fichiers comme pour les mat´eriels (ex : imprimantes)
Exemples
Unix ann´ees 80 :Network Information System(NIS)
→ identification par login, non crypt´e Windows ann´ees 90 :Samba
→ syst`eme de fichier CIFS (Common Internet File System) et protocole SMB avec identification + espace de nommage unique → Active Directory
Ann´ees 2000 : LDAP(Lightweight Directory-Access Protocol)
→ englobe Active Directory et Unix
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Services de nommages
Principe
Fournir les informations de l’ensemble des services : login, mot de passe, user ID, group ID, adresse. . .
pour les fichiers comme pour les mat´eriels (ex : imprimantes)
Exemples
Unix ann´ees 80 :Network Information System(NIS)
→ identification par login, non crypt´e Windows ann´ees 90 :Samba
→ syst`eme de fichier CIFS (Common Internet File System) et protocole SMB avec identification + espace de nommage unique → Active Directory
Ann´ees 2000 : LDAP(Lightweight Directory-Access Protocol)
→ englobe Active Directory et Unix
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Protocole DFS
Op´erations
Recherche d’un fichier dans un r´epertoire Lister les entr´ees d’un r´epertoire
Lecture/´ecriture de fichiers Manipulation et cr´eation de liens
Fonctionnement
Tout se fait via desRemote Procedure Calls(RPC) avec en param`etre un descripteur de fichier
Op´erations synchrones→ mise en attente du client
→utilisation d’un cache
En cas de panne, d´elai avant relance
→gestion de la latence
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Descripteurs de fichiers
File Descriptor (FD) Protocole de montage :
le serveur renvoie unFile Descriptor
→ contient les informations d’un r´epertoire n´ecessaires pour acc´eder au fichier
le serveur note quel client a mont´e quel r´epertoire
Open
Il n’y a pas d’op´eration open/close :
Ü Le serveur NFS n’a pas de table des fichiers ouverts
mais le client, si. . .
Ü Le FD est transmis `a chaque requˆete DFS
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Descripteurs de fichiers
File Descriptor (FD) Protocole de montage :
le serveur renvoie unFile Descriptor
→ contient les informations d’un r´epertoire n´ecessaires pour acc´eder au fichier
le serveur note quel client a mont´e quel r´epertoire
Open
Il n’y a pas d’op´eration open/close :
Ü Le serveur NFS n’a pas de table des fichiers ouverts
mais le client, si. . .
Ü Le FD est transmis `a chaque requˆete DFS
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Montage
Principe
Monter un r´epertoire du syst`eme distant (serveur). . . . . . dans le syst`eme de fichier local (client)
→le r´epertoire est alors vu comme un r´epertoire local
Client
r´epertoire
toto
file titi
directory
. . .
tutu
file
Serveur
r´epertoire partag´e
joe
file bill
file tim
directory
file file
tata
NFS
/r´epertoire/tata/tim/trucpeut ˆetre r´esolu !
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Montage
Principe
Monter un r´epertoire du syst`eme distant (serveur). . . . . . dans le syst`eme de fichier local (client)
→le r´epertoire est alors vu comme un r´epertoire local
Client
r´epertoire
toto
file titi
directory
. . .
tutu
file
Serveur
r´epertoire partag´e
joe
file bill
file tim
directory
file file tata
NFS
/r´epertoire/tata/tim/trucpeut ˆetre r´esolu !
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Montage
Principe
Monter un r´epertoire du syst`eme distant (serveur). . . . . . dans le syst`eme de fichier local (client)
→le r´epertoire est alors vu comme un r´epertoire local
Client
r´epertoire
toto
file titi
directory
. . .
tutu
file
Serveur
r´epertoire partag´e
joe
file bill
file tim
directory
file file tata
NFS
/r´epertoire/tata/tim/trucpeut ˆetre r´esolu !
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Montage
Principe
Monter un r´epertoire du syst`eme distant (serveur). . . . . . dans le syst`eme de fichier local (client)
→le r´epertoire est alors vu comme un r´epertoire local
Client
r´epertoire
toto
file titi
directory
. . .
tutu
file
Serveur
r´epertoire partag´e
joe
file bill
file tim
directory
file file tata
NFS
/r´epertoire/tata/tim/trucpeut ˆetre r´esolu !
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Montage II
Protocole
Client →nom hˆote + nom r´epertoire
Ex :bidule.u-psud.fr :/home/nicolas Serveur →liste d’exportation
Ex :/etc/exports sous Linux Liste des r´epertoires
Liste des IP des machines autoris´ees + droits Authentification sur la base des noms !
→voir TP n°10
Fonctionnement
L’OS offre un processusserveur capable de r´epondre aux RPC
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Gestion des noms de fichiers Principe
Parcours des r´epertoires Ü R´epertoire NFS →RPC
Exemple
/usr/share/lib/java/java7/bin/javaavec : /usr/share dans le FS local (open)
/usr/share/lib mont´e depuis un serveur NFS→ RPC /usr/share/lib/java/ n´ecessite aussi une RPC
java7 mont´e depuis un autre serveur NFS→ encore une RPC etc
Le client ne sait pasque java7est mont´e chez le serveur dans /usr/share/lib/java
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Gestion des noms de fichiers Principe
Parcours des r´epertoires Ü R´epertoire NFS →RPC
Exemple
/usr/share/lib/java/java7/bin/javaavec :
/usr/share dans le FS local (open)
/usr/share/lib mont´e depuis un serveur NFS→ RPC /usr/share/lib/java/ n´ecessite aussi une RPC
java7 mont´e depuis un autre serveur NFS→ encore une RPC etc
Le client ne sait pasque java7est mont´e chez le serveur dans /usr/share/lib/java
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Gestion des noms de fichiers Principe
Parcours des r´epertoires Ü R´epertoire NFS →RPC
Exemple
/usr/share/lib/java/java7/bin/javaavec : /usr/share dans le FS local (open)
/usr/share/lib mont´e depuis un serveur NFS→ RPC /usr/share/lib/java/ n´ecessite aussi une RPC
java7 mont´e depuis un autre serveur NFS→ encore une RPC etc
Le client ne sait pasque java7est mont´e chez le serveur dans /usr/share/lib/java
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Gestion des noms de fichiers Principe
Parcours des r´epertoires Ü R´epertoire NFS →RPC
Exemple
/usr/share/lib/java/java7/bin/javaavec : /usr/share dans le FS local (open)
/usr/share/lib mont´e depuis un serveur NFS→ RPC
/usr/share/lib/java/ n´ecessite aussi une RPC
java7 mont´e depuis un autre serveur NFS→ encore une RPC etc
Le client ne sait pasque java7est mont´e chez le serveur dans /usr/share/lib/java
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Gestion des noms de fichiers Principe
Parcours des r´epertoires Ü R´epertoire NFS →RPC
Exemple
/usr/share/lib/java/java7/bin/javaavec : /usr/share dans le FS local (open)
/usr/share/lib mont´e depuis un serveur NFS→ RPC /usr/share/lib/java/ n´ecessite aussi une RPC
java7 mont´e depuis un autre serveur NFS→ encore une RPC etc
Le client ne sait pasque java7est mont´e chez le serveur dans /usr/share/lib/java
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Gestion des noms de fichiers Principe
Parcours des r´epertoires Ü R´epertoire NFS →RPC
Exemple
/usr/share/lib/java/java7/bin/javaavec : /usr/share dans le FS local (open)
/usr/share/lib mont´e depuis un serveur NFS→ RPC /usr/share/lib/java/ n´ecessite aussi une RPC
java7 mont´e depuis un autre serveur NFS→ encore une RPC
etc
Le client ne sait pasque java7est mont´e chez le serveur dans /usr/share/lib/java
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Gestion des noms de fichiers Principe
Parcours des r´epertoires Ü R´epertoire NFS →RPC
Exemple
/usr/share/lib/java/java7/bin/javaavec : /usr/share dans le FS local (open)
/usr/share/lib mont´e depuis un serveur NFS→ RPC /usr/share/lib/java/ n´ecessite aussi une RPC
java7 mont´e depuis un autre serveur NFS→ encore une RPC etc
Le client ne sait pasque java7est mont´e chez le serveur dans /usr/share/lib/java
Introduction Network File System Message Passing Conclusion Principe g´en´eral Protocole DFS Montage Gestion des noms de fichiers
Gestion des noms de fichiers Principe
Parcours des r´epertoires Ü R´epertoire NFS →RPC
Exemple
/usr/share/lib/java/java7/bin/javaavec : /usr/share dans le FS local (open)
/usr/share/lib mont´e depuis un serveur NFS→ RPC /usr/share/lib/java/ n´ecessite aussi une RPC
java7 mont´e depuis un autre serveur NFS→ encore une RPC etc
Le client ne sait pasque java7est mont´e chez le serveur dans /usr/share/lib/java
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Plan
1 Introduction
2 Network File System
3 Message Passing Probl`eme MPI NMP
4 Conclusion
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Programmation parall`ele
Principe
Chaque processus r´esout une (petite) partie du probl`eme Les processus communiquent au sein de la grappe pour partager de l’information
Ex :calcul de produit de matrice parall`ele TD4
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Programmation parall`ele
Principe
Chaque processus r´esout une (petite) partie du probl`eme Les processus communiquent au sein de la grappe pour partager de l’information
Ex :calcul de produit de matrice parall`ele TD4
Speed up
Plus de processeur→ plus vite
temps
nb proc
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Programmation parall`ele
Principe
Chaque processus r´esout une (petite) partie du probl`eme Les processus communiquent au sein de la grappe pour partager de l’information
Ex :calcul de produit de matrice parall`ele TD4
Size up
Plus de processeur→ probl`emes plus gros
taille donn´ees
nb proc
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Programmation parall`ele
Principe
Chaque processus r´esout une (petite) partie du probl`eme Les processus communiquent au sein de la grappe pour partager de l’information
Ex :calcul de produit de matrice parall`ele TD4
Probl`eme
Il faut communiquer les donn´ees. . .
Ü Biblioth`eques syst`eme pour communiquer 3 Norme → ind´ependante de l’architecture !
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Programmation parall`ele
Principe
Chaque processus r´esout une (petite) partie du probl`eme Les processus communiquent au sein de la grappe pour partager de l’information
Ex :calcul de produit de matrice parall`ele TD4
Probl`eme
Il faut communiquer les donn´ees. . .
Ü Biblioth`eques syst`eme pour communiquer 3 Norme → ind´ependante de l’architecture !
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Message Passing Interface
D´efinition
MPI est unstandardpour communiquer entre des processus Ü D´efinit comment les processus doivent s’envoyer de
l’information
Ind´ependant du langage
→ Il faut une API pour chaque langage
Ind´ependant de la plate-forme (OS)
→ Il faut l’impl´ementer pour chaque OS
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Message Passing Interface
Impl´ementations
Impl´ementations propri´etaires : architectures IBM et HP Ü langage fix´e par l’architecture
Impl´ementation opensource : MPICH et OpenMPI langagesC, C++ et Fortran
OSLinux
portable surplusieurs architectures(norme POSIX) API pour nombreux langages
(Java, Python, Ocaml, Matlab, R...)
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
MPI : principe g´en´eral
Communications
Communicateur principal : MPI COMM WORLD Les diff´erents nœuds s’enregistrent
API
S’enregistrer comme ”nœud” MPI :MPI Init(&argc,&argv) Ü Lesarguments du processus sont pass´es `a la fonction
d’enregistrement
3 Fournir les donn´ees aux processus Quitter :MPI Finalize(void)
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
MPI : principe g´en´eral
Communications
Communicateur principal : MPI COMM WORLD Les diff´erents nœuds s’enregistrent
API
S’enregistrer comme ”nœud” MPI :MPI Init(&argc,&argv) Ü Lesarguments du processus sont pass´es `a la fonction
d’enregistrement
3 Fournir les donn´ees aux processus Quitter :MPI Finalize(void)
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Exemple I
Programme sans communication
Cr´eerN processus qui ´ecrivent tous ”bonjour”
#include <stdio.h>
#include <mpi.h>
int main(int argc, char ** argv){
MPI_Init(&argc,&argv) ; printf("Bonjour\n") ; MPI_Finalize() ; return 0 ;
}
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
MPI : nœuds
Num´erotation des nœuds
Chaque nœud a un num´ero unique
Information au niveau du communicateur principal
API
Nombre de noeuds : MPI Comm size(MPI Comm,int*) Num´ero du noeud : MPI Comm rank(MPI Comm,int*) Attention : le r´esultat est pass´e par r´ef´erence
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
MPI : nœuds
Num´erotation des nœuds
Chaque nœud a un num´ero unique
Information au niveau du communicateur principal
API
Nombre de noeuds : MPI Comm size(MPI Comm,int*) Num´ero du noeud : MPI Comm rank(MPI Comm,int*) Attention : le r´esultat est pass´e par r´ef´erence
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Exemple II
Programme sans communication
Cr´eerN processus qui ´ecrivent tous ”num´ero X sur Z”
#include <stdio.h>
#include <mpi.h>
int main(int argc, char ** argv){
int num, total ;
MPI_Init(&argc,&argv) ;
MPI_Comm_rank(MPI_COMM_WORLD, &num) ; MPI_Comm_size(MPI_COMM_WORLD, &total) ; printf("numero %d sur %d\n",num,total) ; MPI_Finalize() ;
return 0 ; }
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
MPI : envoi de messages
Principe
Deux fonctions de synchronisation : MPI Send pour envoyer un message MPI Recv pour attendre un message
Qui doiventpasser par le communicateur central!
Arguments
message :pointeurvers le premier ´el´ement du message taille ettype : nombre et type des ´el´ements → taille sourceet dest: num´eros des noeuds (processus) concern´es tag : identifiant du message (entre 0 et 215−1)
statut: pour la r´eception→ passage par r´ef´erence
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
MPI : Utilisation
Wildcards
Pour lar´eception de messageuniquement ! source:MPI ANY SOURCE
tag :MPI ANY TAG
statut: pour la r´eception,passage par r´ef´erence
En pratique. . .
Types MPIpour normaliser les tailles :MPI INT,MPI DOUBLE,etc Utilis´es dans desinstructions conditionnelles :
MPI_Comm_rank(MPI_COMM_WORLD, &num) ; if (num==EMETTEUR)
MPI_Send(...)
else if (num==RECEVEUR) MPI_Recv(...)
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
MPI : Utilisation
Wildcards
Pour lar´eception de messageuniquement ! source:MPI ANY SOURCE
tag :MPI ANY TAG
statut: pour la r´eception,passage par r´ef´erence
En pratique. . .
Types MPIpour normaliser les tailles :MPI INT,MPI DOUBLE,etc Utilis´es dans desinstructions conditionnelles :
MPI_Comm_rank(MPI_COMM_WORLD, &num) ; if (num==EMETTEUR)
MPI_Send(...)
else if (num==RECEVEUR) MPI_Recv(...)
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Exemple III : somme des N premiers entiers
1. R´ecup´erer son num´ero + d´eterminer quelle portion on doit calculer
int num, total ; int debut,fin ; MPI_Init(argc,argv) ;
MPI_Comm_size(MPI_COMM_WORLD, &totalnodes) ; MPI_Comm_rank(MPI_COMM_WORLD, &mynode) ; somme = 0 ;
debut = N*num/total+1 ; fin = N*(num+1)/total ; for(int i=debut ;i<=fin ;i=i+1)
somme = somme + i ; ...
MPI_Finalize() ;
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Exemple III : somme des N premiers entiers
2. Communiquer son r´esultat (sauf si on est le premier nœud)
int num, total ; int somme,debut,fin ; MPI_Init(argc,argv) ; ...
if (num !=0)
MPI_Send(&somme,1,MPI_INT,0,1,MPI_COMM_WORLD) ; ...
MPI_Finalize() ;
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Exemple III : somme des N premiers entiers 3. R´ecup´erer les r´esultats
int num, total ;
int somme,debut,fin,accu ; MPI_Status status ; MPI_Init(argc,argv) ; ...
if (num !=0) ...
else
for(int j=1 ;j<totalnodes ;j=j+1) {
MPI_Recv(&accu,1,MPI_INT,j,1,MPI_COMM_WORLD, &status) ; somme = somme + accu ;
}
if(mynode == 0)
printf("somme= %d",somme) ; MPI_Finalize() ;
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Exemple III : somme des N premiers entiers
int num, total ; int somme,debut,fin,accu ; MPI_Status status ; MPI_Init(argc,argv) ;
MPI_Comm_size(MPI_COMM_WORLD, &totalnodes) ; MPI_Comm_rank(MPI_COMM_WORLD, &mynode) ; somme = 0 ;
debut = N*num/total+1 ; fin = N*(num+1)/total ; for(int i=debut ;i<=fin ;i=i+1)
somme = somme + i ; if (num !=0)
MPI_Send(&somme,1,MPI_INT,0,1,MPI_COMM_WORLD) ; else
for(int j=1 ;j<totalnodes ;j=j+1){
MPI_Recv(&accu,1,MPI_INT,j,1,MPI_COMM_WORLD, &status) ; somme = somme + accu ;
}
if(mynode == 0)
printf("somme= %d",somme) ; MPI_Finalize() ;
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
MPI : limite
Messages bloquants
Les processus sont bloqu´es lorsqu’ils envoie ou re¸coivent un message
Ralentit le calcul lors de l’envoi de r´esultats interm´ediaires
(les ´emetteurs doivent attendre le r´ecepteur)
Ralentit le calcul lors de l’accumulation du r´esultat
(le r´ecepteur doit attendre les ´emetteurs en retard)
Solution
Messages non-bloquants !
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
MPI : limite
Messages bloquants
Les processus sont bloqu´es lorsqu’ils envoie ou re¸coivent un message
Ralentit le calcul lors de l’envoi de r´esultats interm´ediaires
(les ´emetteurs doivent attendre le r´ecepteur)
Ralentit le calcul lors de l’accumulation du r´esultat
(le r´ecepteur doit attendre les ´emetteurs en retard)
Solution
Messages non-bloquants !
Introduction Network File System Message Passing Conclusion Probl`eme MPI NMP
Non-Blocking Message Passing (NMP)
API
MPI Isend MPI Irecv
Principe
L’envoi ou la r´eception de message rend la main
mˆeme si la communication n’est pas termin´ee
Ü MPI Probe pour ”surveiller” l’´etat de la communication Ü MPI Wait pour ”attendre” (retour `a ”bloquant”)
Introduction Network File System Message Passing Conclusion
Plan
1 Introduction
2 Network File System
3 Message Passing
4 Conclusion
Introduction Network File System Message Passing Conclusion
Ce qu’il faut retenir
NFS
Partage de donn´ees sur identifiants IP Montage de r´epertoire
Protocole DFS et descripteurs Acc`es synchrone
Ouverture de fichiers Message Passing
Standard et interface de communication D´eclaration des noeuds et envois de messages Appels bloquants