• Aucun résultat trouvé

Syst` emes d’Exploitation

N/A
N/A
Protected

Academic year: 2022

Partager "Syst` emes d’Exploitation"

Copied!
64
0
0

Texte intégral

(1)

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

(2)

Introduction Network File System Message Passing Conclusion

Plan

1 Introduction

2 Network File System

3 Message Passing

4 Conclusion

(3)

Introduction Network File System Message Passing Conclusion

Plan

1 Introduction

2 Network File System

3 Message Passing

4 Conclusion

(4)

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. . .

(5)

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. . .

(6)

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. . .

(7)

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. . .

(8)

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. . .

(9)

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)

(10)

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)

(11)

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.

(12)

Introduction Network File System Message Passing Conclusion

Multiple Instructions Multiple Data (depuis ann´ees 90)

emoire Partag´ee

RAM

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)

(13)

Introduction Network File System Message Passing Conclusion

Multiple Instructions Multiple Data (depuis ann´ees 90)

emoire Partag´ee

RAM

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)

(14)

Introduction Network File System Message Passing Conclusion

Multiple Instructions Multiple Data (depuis ann´ees 90)

emoire Partag´ee

RAM

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)

(15)

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)

(16)

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

(17)

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)

(18)

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

(19)

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)

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

epertoire

toto

file titi

directory

. . .

tutu

file

Serveur

epertoire partag´e

joe

file bill

file tim

directory

file file

tata

NFS

/r´epertoire/tata/tim/trucpeut ˆetre r´esolu !

(27)

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

epertoire

toto

file titi

directory

. . .

tutu

file

Serveur

epertoire partag´e

joe

file bill

file tim

directory

file file tata

NFS

/r´epertoire/tata/tim/trucpeut ˆetre r´esolu !

(28)

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

epertoire

toto

file titi

directory

. . .

tutu

file

Serveur

epertoire partag´e

joe

file bill

file tim

directory

file file tata

NFS

/r´epertoire/tata/tim/trucpeut ˆetre r´esolu !

(29)

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

epertoire

toto

file titi

directory

. . .

tutu

file

Serveur

epertoire partag´e

joe

file bill

file tim

directory

file file tata

NFS

/r´epertoire/tata/tim/trucpeut ˆetre r´esolu !

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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 !

(44)

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 !

(45)

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

(46)

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...)

(47)

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)

(48)

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)

(49)

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 ;

}

(50)

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

(51)

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

(52)

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 ; }

(53)

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

(54)

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(...)

(55)

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(...)

(56)

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() ;

(57)

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() ;

(58)

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() ;

(59)

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() ;

(60)

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 !

(61)

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 !

(62)

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

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”)

(63)

Introduction Network File System Message Passing Conclusion

Plan

1 Introduction

2 Network File System

3 Message Passing

4 Conclusion

(64)

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 eclaration des noeuds et envois de messages Appels bloquants

Références

Documents relatifs

Les fonctions d’un syst` eme d’exploitation seront ´ etudi´ ees au travers d’un environne- ment Unix et les points particuliers suivants seront ´ etudi´ es :. – le syst` eme

Messages of the broadcast type are sent by q i whenever n i is one of the nodes participating in the global condition to be detected and either its local unconditional breakpoint

– Il ne peut y avoir plus d’un processus dans sa section critique en mˆeme temps – Un processus en dehors de sa section critique ne peut bloquer un autre

La cr´ eation d’un compte implique ´ egalement de placer dans la home directory des fichiers de configuration dont le fichier associ´ e au shell (.cshrc, .profile, .basdrc,..

[r]

[r]

Les deux champs suivants fournissent le nom et le type du fichier (ce dernier ´etant devenu extension dans le syst`eme MS-DOS). Le champ suivant, extension, est n´ecessaire pour

Il avait 45 roses de plus que