Home

Syst`emes et Applications Répartis - Michel Dayd ´e

image

Contents

1. ouverture fichier en lecture fp fopen FIC r Creation flot XDR de decodage xdrstdio_create amp xdrs fp XDR_DECODE Lecture d un entier xdr_long amp xdrs amp i Lecture d un flottant xdr_float amp xdrs amp x close fp exit 0 5 3 2 Flot m moire e Flot pour codage de donn es en m moire void xdrmem_create xdr_handle addr size op XDR xdr_handle handle char addr adresse memoire 31 int size taille memoire enum wdr_op op 3 XDR_ENCODE ou XDR_DECODE Donn es XDR lues ou crites en m moire partir de addr pour une taille de size Espace suffisamment grand pour donn es XDR et multiple de 4 utilisation macro RNDUP Taille m moire insuffisante chec Solutions Taille m moire avec marge de s curit Conna tre le codage XDR et calculer l espace n cessaire Augmenter la taille m moire en cas d erreur 5 3 3 Flot d enregistrements Rangement dans des m moires tampons des donn es chang es et en cod es entre un processus metteur et un processus r cepteur void xdrrec_create xdr_handle sendsize recvsize iohandle readproc writeproc XDR xdr_handle handle int sendsize recvsize taille des tampons char iohandle identificateur int readproc procedure de lecture int xwriteproc procedure d ecriture sendsize recvsize ta
2. Fonction 3 rac c 48 include exemple h char rac p struct couple p static struct couple res res el sqrt p gt el res e2 sqrt p gt e2 return char amp res 2 Enregistrement du service Signaler l existence du service au d mon portmap Chaque fonction est enregistr e individuellement avec int registerrpc prog version proc f xdr_arg xdr_res unsigned long prog version proc char xf bool_t xdr_agr xdr_res Q la fonction f est enregistr e sous le num ro proc dans la version vers du programme de num ro prog xdr_arg xdr_res d finissent les traitements XDR appliquer aux param tres d codage et aux r sultat encodage En retour 0 ou 1 en cas d erreur Enregiostrement suppose ensuite choix d un num ro de service d un num ro de version et de num ros de prc dures D finition aussi contenue dans exemple h Enregistrement des 3 proc dures dans un programme principal par appels registerrpc rep registerrpc ARITH_PROG ARITH_VERS1 ADD_PROG add xdr_couple xdr_float if rep 1 fprintf sterr erreur registerrpc add n exit 2 rep registerrpc ARITH_PROG ARITH_VERS1 MULT_PROG mult xdr_couple xdr_couple if rep 1 fprintf sterr erreur registerrpc mult n exit 2 rep registerrpc ARITH_PROG ARITH_VERS1 SQRT_PROG rac xdr_couple xdr_couple if rep 1
3. 1 S quentialit les messages successifs mis par un n ud seront ils re us dans le m me ordre par les n uds vis s par la diffusion 2 Atomicit tous les sites recevront ils chaque message diffus Figure 25 Exemple de probl mes pos s par l utilisation d un protocole de dif fusion faible co t e Diffusion vers groupes de processus utile pour r aliser des applications robustes et haute disponibilit redondance des ressources e Par exemple dans un client serveur classique 2 serveurs jumeaux 92 e Pb diffusion des requ tes vers les deux serveurs en garantissant qu elles vont arriver dans le m me ordre et qu elles seront prises en compte ou ignor es par les deux serveurs e Synchronisme virtuel mod le d ex cution fournit des protocoles v rifiant ces proprri t s syst mes ISIS ou HORUS Calcul r parti virtuellement synchrone garanti que les processus d un m me groupe peuvent tre cibles de diffusion totalement ordonn es atomiques R alisation d un noyau d ex cution virtullement synchrone implique deux types de primitives Primitives de gestion de groupes entr e sortie et connexion en tant que client un groupe x Primitives de diffusion 11 5 Abstractions de niveau plus lev e Communication en mode message niveau d abstraction peu lev e D o la proposition de m canismes de communication plus labor s Appel de proc d
4. Attention aux probl mes de coh rence de donn es Examples d op rations collectives Communications au sein d un groupe de processus ou d un communicateur Les appels collectifs sont bloquants mais ne constituent pas un point de synchronisation fiable comparable une barri re Diffusion dans un groupe Broadcast data label Groupe Somme des donn es distribu es sur un groupe de procs Reduce SUM ValeurSum ValeurLoc Groupe Dest ValeurSum n est disponible que sur le processus Dest Maximum de valeurs distibu es disponible sur chaque processus AllRe duce MAX ValeurMax ValeurLoc Groupe Valeur Max est disponible sur tous les processus du Groupe Commentaires sur les protocoles de communications un protocole diff rent est souvent utilis pour les messages courts et les messages longs ex Cray T3E SGI origin 63 e Protocole pour messages courts 1 criture dans le buffer interne des donn es envoy es 2 le processus envoyeur continue son travail si envoi asynchrone e Protocole pour messages longs 1 envoi d une requ te d envoi au destinataire 2 attente d un message pr t 4 recevoir 3 envoi effectif des donn es rang es dans l espace utilisateur du r cepteur Influence de la taille des buffers sur les Communications asynchrones Remarques sur la taille des buffers syst mes Changer la taille des buffers peut donc conduire e Une modification de la performanc
5. Permet de connecter ensemble de ressources disques fichiers processeurs machine virtuelle Gestion de cette machine virtuelle syst me distribu assurant les fonc tions de base d un syst me d exploitation de fa on transparente Chaque machine a un syst me g rant ses ressources locales Acc s un fichier distant adresse r seau de la machine poss dant le fichier demande de transfert du fichier sur le syst me local NFS propos par SUN partage de fichiers en environnement h t rog ne Objectif maximum de transparence on peut manipuler fichiers distants et locaux de la m me fa on Pr sentation inspir e de 19 7 2 Montage et d montage distants e Mod le client serveur e Extension du montage permettant d associer une r f rence de r pertoire local une r f rence distante nom de machine nom de r pertoire sur cette machine e Exemple wanda mount julia export libs libs montage du r pertoire export libs sur la machine julia en libs sur la machine locale wanda root Il suffit ensuite de r f rencer libs file e df mount sans arguments permettent de visualiser les montages distants h at proc proc 0 blocs 960 fichiers dev ask c0t340s0 230246 blocs 79009 fichiers usr dev dsk cO0t3d0s6 443628 blocs 308109 fichiers dev fd fd Ji 0 blocs 0 fichiers export exterieurs dev dsk c0t2d0s4 2571336 blocs 402517 fichiers export EuroPar
6. 43 R partition vs parall lisme 16 AA Transparence i a alu la Da Es us gi ge dd eee a us 16 4 5 Mod le Client Serveur 17 1 5 Outils disponibles sous UNIX 18 2 Rappels UNIX 18 2 1 Protocoles de transport 18 2 1 1 Notions de protocole et d interface 18 2 1 2 Protocoles de transport 20 2 1 3 Identification des processus all 2 14 Protocole UDP 4 21 21 50 Protocole TOP sea gana Po 8 are LR PUS Het 22 2 2 Fichiers et commandes UNIX utiles 22 2 2 1 Commandes d administration 23 2 2 2 Processus d mons 23 2 2 3 Commandes de services standard 24 2 2 4 Commandes de services UNIX 24 2 3 Communication entre utilisateurs sous UNIX 25 3 Communication entre processus sous UNIX 25 3 1 Infroducti n gie asus aus fe po as Hotte Dean a 25 3 2 Exemple introductif client serveur 14 et 13 26 10 Sockets Emmanuel Chaput eXternal Data Representation XDR GRO Os sea a Pa Mea he aur es acs Shp get te We e 5 2 Fonctionnalit s uote aoe vue hak e ee he aw A ee ey oF Pe 5 3 Floket filtre KDR gags occ A te us ae a a le yea ae ade 5 3 1 Flot standard d entr e sortie 5 3 2 Flot M moire aose ee We Gog eee Yee ee 5
7. Assurer qu un message envoy est re u en respectant l ordre chronologique des messages Plate forme permettant l ex cution de calculs provenant d un syst me distant 10 5 Codes mobiles 20 e Programmes pouvant se d placer d un site l autre e Exemple applet Java e Motivations rapprocher le traitement des donn es r duction du vol ume de donn es chang es sur le r seau et moindre charge des serveurs e Caract ristiques Code interpr table S curit Sch mas d ex cution base de code mobile Mod les d ex cution pour la mobilit e Code la demande Mobilit faible code ex cutable sans contexte Exemple Applet Java 86 e Agents mobiles Mobilit faible code ex cutable plus donn es modifi es Exemple aglets Mobilit forte code ex cutable donn es contexte d ex cution Exemple Agent Tcl 11 Probl me de la r partition 17 11 1 Introduction e Probl matique n e avec l id e de faire communiquer des machines via un r seau par exemple avec des changes de message e D veloppement et programmation d applications r parties langages syst mes d exploitation environnements e Difficult s d velopper une application r partie Pas d tat global tat d une autre machine Pas d horloge globale horloge propre chaque machine Fiabibilit toute relative
8. Dongarra J Geist A Manchek R a d Sunderam V 1995 Recent Enhancements to PVM Int Journal of Supercomputer Applications 9 108 127 Max Buvry Support de cours Base de Donn es l re ann e T l communications et R seaux 2001 V Charvillat et Romulus Grigoras Un peu plus loin avec les technologies multim dia Polycope ENSEEIHT 2001 J J Dongarra 1992 An overview of High Performance Computers and Performances Issues Lecture Notes CERFACS Training Cycle J J Dongarra and Du Croz J and S Hammarling and R J Hanson 1988 An extented set of Fortran Basic Linear Algebra Subprograms ACM Trans Math Softw 14 pp 1 17 and 18 32 Geist A Beguelin A Dongarra J Jiang W Manchek R and Sun eram V 1993 PVM 3 User s Guide and Reference Manual Tech Rep ORNL TM 12187 Oak Ridge National Laboratory Tennessee W Gropp 1999 Tutorial on MPI The Message Passing Interface MCS Argonne National Laboratory IL USA Sacha Krakowiak Introduction aux Syst mes et R seaux Informatiques Universit J Fourier Grenoble http sirac imag fr Michel Gabassy et Bertrand Dupouy L Informatique R partie sour UNIX Collection de la Direction des Etudes et Recherches d Electricit de France Eyrolles 1992 15 Chuck Musciano et Bill Kennedy HTML et XHTML La r f rence O Reilly Paris 2001 101 16 G rard Padiou Syst mes Op ratoires Cour
9. BYTE1 INTEGER2 INTEGER4 REAL4 REAL8 COMPLEX8 COMPLEX16 call pymfunpack what xp nitem stride info Similarly pumfunpack is used to unpack informations held into the active receive buffer The unpacked data are then stored into the array zp e Sending Receiving messages call pymfsend tid msgtag info pumfsend sets the message label to msgtag then sends it to the pym process of number tid call pymfmcast ntask tids msgtag info pumfmcast broadcast the message to ntask processes specified into the integer array tids 69 call pymfnrecv tid msgtag bufid pumfnrecv performs a non blocking receive If the message of label msgtag issued by process tid is not arrived then bufid 0 otherwise the message is stored into a new buffer bufid automatically created If tid 1 then the first message with label msgtag from any process will be received If msgtag 1 the label is ignored call pymfrecv tid msgtag bufid pumfrecv blocks the process until a message with label msgtag has arrived from tid The other functionalities are similar to those of pumfnrecv Check for arrived messages call pymfprobe tid msgtag bufid If the message is not arrived then bufid 0 otherwise a buffer number is returned but the message is not received call pymfbufinfo bufid bytes msgtag tid info pumfbufinfo returns the characteristics of the message stored in bufid label msgtag sending process tid length in bytes byte
10. O assignation adresse a la socket bzero amp server sizeof server server sin_family AF_INET server sin_addr s_addr INADDR_ANY server sin_port htons PORT bind sock struct sockaddr amp server sizeof server mise a l ecoute des connexions entrantes listen sock 5 boucle sur les demandes de connexion for 535 nsock accept sock struct sockaddr 0 int 0 appel de la boucle lecture ecriture serveur nsock fermeture connexion courante close nsock 40 Fonction emission reception serveur nsock int nsock descripteur socket Code symetrique par rapport au client On sort de la boucle reception emission lorsque nbcarlu 0 client a fait un close if nbcarlu 0 return Fichier soc c contient readp et writep include lt stdio h gt On memorise nb octets lus et ecrits afin de les exploiter evt int nbcarlu Nombre d octets lus int nbcarecrits Nombre d octets ecrits Procedure de lecture sur socket readp sock buf n int sock descripteur socket char buf buffer unsigned int n Nombre d octets a lire int nlu nlu read sock buf n nbcarlu nlu Positionnement erreur si si pas de car lu if nlu 0 nlu 1 return nlu Procedure d ecriture sur socket writep sock buf n int sock Descri
11. argv int rank size MPI_Init amp argc amp argv MPI_Comm_rank MPI_COMM_WORLD amp rank MPI_Comm_size MPI_COMM_WORLD amp size printf Hello world I m d of d n rank size MPI_Finalize return 0 Ex cution sous MPICH avec mpirun np 2 hello printf ex cut sur les 2 processeurs requis Envoi r ception message op rations de base e envoi de nb donn es de type datatype rang es call MPI Send nb datatype dest mess id context info et la r ception call MPI Recv nb datatype source messid context status info e Broadcast toutes les t ches mettent la requ te donn es envoy es par root call MPI Beast nb datatype root mess_id context info e Op ration collective call MPI Reduce results nb datatype operation root context info datatype peut tre pr d fini MPI real ou d fini par l utilisateur context d fini le groupe de taches et le contexte 78 Types de communication e asynchrone bloquants MPI Send et MPI Recv e non bloquants MPI_Isend MPI Irecv MPI_Wait e bloquants rendez vous MPI Ssend MPI Srecv e bufferis s MPI Bsend l utilisateur sp cifie le buffer e Communication globales barri res broadcasts scatter gather all_to_all r duction max global somme globale Topologies On peut d finir une topologie pour un ensemble de processus permet d identifie
12. certaine tol rance aux d faillances S curit relative plus diffcile prot ger qu une architecture cen tralis e Non d terminisme dans l ex cution des appplications Avantages de la r partition e Partage de ressources et de services Exemple gestion de fichiers r partis service de base des syst mes d exploitation r partis e R partition g ographique r partition essentielle pour acc der aux moyens locaux n cessaires tout en gardant acc s aux ressources et services distants e Puissance de calcul cumul e disponibilit flexibilit e D finition 17 La r partition est la mise disposition d un ensemble de ressources et de services connect s via un r seau pour tous les usagers poss dant un droit d acc s en un point quelconque 11 2 Solutions au probl me de la r partition Outils th oriques e Mod lisation de fa on abstraite et formelle des prori t s d un traitement r parti 87 e Alg bres de processus communicants avec communication sous forme de rendez vous point point e Concept d acteur protocole de communication entre acteurs asynchrone chaque acteur a une bo te lettres pour la r ception des messages Algorithmique r partie e Probl mes bien sp cifiques pos s par les architectures r parties e D finition de protocoles de communication point point et de diffusion gt formalismes de description automates communicants r seaux de P t
13. e Propri t s 2 2 Fichiers et commandes UNIX utiles Simple Mais garanties minimales Fichiers de configuration R alisation d applications peu exigeantes construction de protocoles e etc hosts informations sur les machines du r seau local auquel appar plus labor s tient le systeme Exemple 147 127 18 114 wanda enseeiht fr wanda enseeiht fr wanda adresse nom officiel liste d alias Organis hi rarchiquement si on d passe le cadre du r seau local 21 22 etc networks base de donn es des r seaux connus nom officiel du r seau adresse Internet list d alias etc services liste des ervices Internet connus nom num ro de port et protocole liste d alias 2 2 1 Commandes d administration Permettent d obtenir des informations g n rales sur l tat du r seau hostid hostname donnent respectivement l adresse Internet et le nom officiel de la machine ruptime tat des machines du r seau local ping permet de tester si une machine est active ping julia netstat informations sur l activit r seau du syst me traceroute lt nom domaine gt d termination du chemin suivi dans le r seau 2 2 2 Processus d mons Certains services UNIX standards telnet ou ftp par exemple n cessitent l existence d mons sur la machine distance Super d mon inetd d mon principal qui a la charge de cr er automa tiquement le serveur correspondant un service requis
14. etc inetd d truit apr s le service rendu etc inetd conf utilis par inetd son lancement pour conna tre les ports couter Lignes du fichier nom du service type de socket protocole sous jacent option wait nowait nom d utilisateur qui sera propri taire du d mon associ au service r f rence absolue du fichier programme liste de param tres 23 ftp stream tcp nowait root usr sbin tcpd in ftpd l a telnet stream tcp nowait root usr sbin tcpd in telnetd shell stream tcp nowait root usr sbin tcpd in rshd D mons de services standard rwhod dialogues avec ses homologues sur les autres syst mes et maintient la base de donn es utilis e par rwho et ruptime Pas toujours lanc telnetd rlogind permettent le login sur depuis un autre syst me ftpd tftpd serveurs des protocoles ftp et tftp de transfert de fichiers rshd utilis pour l existence de commandes distantes par rsh ou remd ou la copie de fichiers par rcp 2 2 3 Commandes de services standard telnet hote port connexion avec le port TCP optionnel d une machine ftp v i n hote transfert de fichiers entre site local et dis tant N cessite un login et un password exception notable anonymous Plusieurs commandes sont disponibles get mget fichier site distant local put mput fichier site local distant cd changement r pertoire site distant lcd ch
15. le de flux capacit du r cepteur contr le de congestion de prote cod sur 16 bits capacit du r seau e Messaga arrivant une porte est re u par le processus associ la porte e Fonctionne en mode connect organis en 3 phases e Conventions d usage des portes pour les services standard num ro lt Phase de connexion tablir une liaison entre les processus 1024 processus identifi par adresse IP h te num ro porte TATE 3 A Re pouty Phase de commnunication change de donn es sur la liaison tablie 2 1 4 Protocole UDP Phase de d connexion d connecter les 2 processus en supprimant la liaison e Protocole de transport minimal e Connexion et d connexion utilisent un mini protocole demande accord Simple transposition de IP au niveau transport accord confirm Communication entre processus en mode non connect les messages sont ind pendants les uns des autres e Format des donn es TCP Pas plus de garantie que IP En t te porte origine 16 bits porte destination 16 bits num ro s quence 32 bits e Format donn es En t te num ro porte d origine 16 bits num ro porte destination 16 bits contr le d erreur 16 bits taille 16 bits donn es Utilisation d un tampon d mission pour l metteur et d un tampon de r ception pour le r cepteur e Aspects importants s curit compression de donn es
16. terf rences zones d ombre e Utilisation de protocoles r seaux pas toujours suffisantes pour masquer les probl mes li s aux communications e Quelques solution sp cifiques pour adapter le fonctionnement des appli cations aux environnements mobiles Algorithmes de pr chargement de donn es dans le acahe d un mobile en pr vision de sa d connexion Oracle Lite version all g e du syst me de gestion de bases de donn es Oracle proposant de nouvelles de coh rence tenant compte des clients mobiles e Cadre de conception et de r alisation sp cifique pour les applications mo biles permettant de rendre le c ur d une application ind pendant des aspects mobile qui peuvent tre isol s e Caract ristiques de mobiles Station de travail portable proche des postes fixes mais encom brantes 2Kg et autonomie limit e lt 4h PC de poche petit cran souvent monochrome processeur peu performant capacit m moire faible 8 16 Mo de m moire flash remplacant RAM et disque peu encombrants lt 500 g et grande autonomie 3 55h Peuvent tre reli un r seau filaire ous ans fil GSM ou r seaux petite chelle de type Wavelan GSM amp 9600 bps et fr quentes d connexions Wavelan 2 Mbps mais tr s variable plus fiables e Quelques propri t s utiles voire indispensables Offrir une connexion durable m me en pr sence de d connexion tran sitoires
17. un objet copies coh rentes Divers modes de r alisation Objets r pliqu s Javanaise Objets image unique Guide Exemple d architecture m moire partag e virtuelle Kendall Square Research KSR1 e Architecture organis e en anneaux de 32 processeurs m moires locales des processeurs g r es comme des caches 94 Hi rarchie m moire e Registres 64 registres 64 bits dans l unit flottante e Sous cache Cache donn es et cache instructions de 256 Koctets Latence 2 cycles 0 1 microsec Taille de la ligne de cache 64 octets 2 way set associative random et pas LRU write back e Cache local 32 Moctets 16 way set associative Latence 20 cycles 1 microsec ligne de cache de 128 octets charg e de l anneau Plusieurs strat gies lorsque le cache est plein Programmation de la KSR1 e Deux niveaux de parall lisme Parall lisme sur les processus x outils UNIX classiques Communication inter processus avec les m canismes usuels pipes sockets m moire partag e streams Parall lisme sur des threads processus l gers Thread unit d ex cution x Thread flot s quentiel d instructions dans un processus Processus nombre arbitraire de threads partageant un m me espace d adressage Parall lisme fonctionnel MIMD entre processus Parall lisme multi thread interne un processus M moire part
18. 3 3 Flot d enregistrements 5 4 Gestion de la m moire 5 5 Utilisation de XDR avec les sockets Appels de proc dure distance RPC Gell Introductions wn ies ae ats Se A Sudan Bu ete ape 6 2 Principes du protocole 19 6 3 Implantation sous UNIX 6 4 Couch haute p eru eri min en hi gag Sel eee ue de ain zs 6 5 Couche interm diaire Network File System NFS fil IMtrOduction in sure die PR Ph yh ur des men one BH 7 2 Montage et d montage distants 7 3 Implantation de NFS Processus communicants par messages 8 1 Contexte informatique objectifs et besoins 8 2 Le mod le de programmation par transfert de messages 8 3 Envoi et r ception de messages Librairies de transfert de messages 9T NIMS Pt Se a bot pe mots etes Rime Sh te 9 1 1 Overview of the PVM computing environment 9 1 2 The PVM3 user library 9 1 3 Illustrative Example a dot version of the matrix vector PROKUCE acc se dpe wedi at UE cas ea eS 9 1 4 Performance analysis and graphical interface 9 2 MPI standard pour le transfert de message 9 3 PVM verSus MPI a oie die san auf A dames 4 nd be xls Concepts avanc s 10 1 Introductions 452232 a que dons AE ee 4 mA ee 10 2 Syst mes
19. Flot permettant de lire ou d crire des donn es XDR sur un fichier Cr ation de ce flot avec xdrstdio_create void xdrstdio_create xdr_handle file op xdr xdr_handle handle FILE file A Pointeur sur un fichier ouvert enum xdr_op op XDR_DECODE ou XDR_ENCODE Allouer de la m moire pour le handle XDR Flot unidirectionnel pas de retour d erreur Utilisable pour lire crire des donn es binaires via NFS Exemple tir de 14 Utilisation d un fichier tmp fixdr pour changer un entier et un flottant entre deux processus client serveur 7 Client c AAO E k k k kkk Encode 1 entier et 1 flottant include lt stdio h gt include lt rpc rpc h gt define FIC tmp fixdr main 30 FILE fp FILE pointer XDR xdrs handle XDR long i 10 entier float x 4 5 flottant ouverture fichier en ecriture fp fopen FIC w Creation flot XDR d encodage xdrstdio_create amp xdrs fp XDR_ENCODE Ecriture d un entier xdr_long amp xdrs amp i Ecriture d un flottant xdr_float amp xdrs amp x close fp exit 0 Serveur c 42 342 42H HER HR RER ER ER k kkk Decode 1 entier et 1 flottant include lt stdio h gt include lt rpc rpc h gt define FIC tmp fixdr main FILE fp FILE pointer XDR xdrs handle XDR long i entier float x flottant
20. d exploitation r partis 14 10 3 Objets r partis 13 4 10 4 Applications mobiles 2 10 5 Codes mobiles 20 27 28 28 28 29 30 31 32 34 42 42 44 45 47 47 58 71 76 77 80 11 Probl me de la r partition 17 87 11 1 Introductions 6 9 5 a ees sn a eae base Ba ee ter es ve en 87 11 2 Solutions au probl me de la r partition 87 11 3 Conception d un syst me r parti 89 11 4 Repr sentation d un calcul r parti 90 11 5 Abstractions de niveau plus lev 93 4 1 Introduction au syst me r parti 1 1 Pourquoi l informatique r partie et le calcul parall le Puissance croissante des stations de travail et des PC Apparition de processeurs d di s image parole Capacit s des moyens de stokage de l information croissantes Disponibilit s d outils facilitant l acc s des ressources dispers es sur un r seau D veloppement d applications et de services tirant profit de ces volutions pour am liorer la gestion des donn es et la performance des traitements Fronti re entre multiprocesseurs r seaux de machines clusters de ma chines floue Description des concepts utilis s par les applications r parties r partition ou distribution interop rabilit mod le client serveur 1 1 1 Pourq
21. de d faillance d un serveur 7 3 Implantation de NFS 1 Syst me de fichiers virtuels VFS Notion de vnode g n ralise celle de inode Associe un fichier du r seau un num ro non ambigii A partir du vnode VFS permet de retrouver i node correspondant Du point de vue application interface NFS identique l interface usuelle utlisation des primitives open read write close 2 Programmes RPC mount nfs Appel d une application une primitive syst me en vue d une op ration sur un fichier distant appel au un programme RPC programme nfs de num ro 100003 XDR utilis pour les changes de donn es relatives au protocole fichier structure opaque XDR transmise au syst me distant mais pas pour les donn es utilisateur Programme RPC mount num ro 100005 restitue la structure file handle d un fichier donn qui sera utilis e au cours des requ tes NES mount et nfs mis en uvre par les d mons nsfd et mountd NFS au dessus de UDP pour les versions courantes Acc s d un fichier distant par application appel au service mount pour obtenir structure opaque d signant le fichier appel au service nfs 3 Caract ristiques principales du protocole Serveurs de fichiers sans tat un serveur n a aucune m moire des clientsutilisant ses fichiers pas de trace des requ tes Op ration open sur un fichier distant pas d ouverture par le serveur de ce fichier sur le syst me au
22. dev dsk c0t2d0s5 732336 blocs 477982 fichiers export home dev dsk c0t2d0s7 4602588 blocs 489098 fichiers tmp swap 272928 blocs 10289 fichiers var mail mailhost var mail 2785118 blocs 484012 fichiers home dayde export home dayde 4602588 blocs 489098 fichiers e D montage de disque par umount wanda umount libs e Possibilit de monter un disque distant suppose Point de montage distant racine d un disque logique Montage autoris par la machine distante etc export contient la lise des r pertoires qui peuvent tre mont s et depuis quelle machine absence de nom toute machine Configuration initiale du syst me e Au lancement du syst me etc fstab utilis pour monter un certain nom bre de disques dev hda2 ext2 defaults hae dev hdai dos c vfat defaults 00 dev hda7 usr ext2 defaults 1 2 dev hda5 swap swap defaults 00 dev d0 mnt floppy ext2 noauto 00 dev cdrom mnt cdrom iso9660 noauto ro 00 julia export home home nfs rsize 8192 wsize 8192 timeo 14 intr ot Oo e En de non r ponse les requ te sont r it r e un certain nombre de fois avec un intervalle de temps Montage soft renvoie une erreur au programme appelant en g n ral nouvel essai jusqu une certaine dur e ou un nombre maxi mal Montage hard demande r it r e ind finiment e Performances tr s d pendantes de la param trisation du syst me en par ticulier d tection
23. donn es r parties que l on veut rendre globalement accessibles Edition coop rative Ing nierie coop rative Documentation Figure 21 Exemple de client serveur objet e Invocation d un objet R f rencce d objet pointeur universel Identification d une m thode Param tres d appel et de retour passage par valeurs ou par r f rence 84 e Objets d un langage Repr sentation propre au langage instance d une classe Exemple Java RMI e Objets syst me Repr sentation arbitraire d finie par l environnement d ex cution Exemple CORBA Notions de base e Encapsulation Un objet encapsule un tat ensemble de donn es accessibles uniquement au moyen d un ensemble de fonctions m thodes qui constituent l interface de l objet L interface d finit tout ce qui est n cessaire l utilisation de l objet on peut remplacer une r alisation par une autre en respectant l interface 10 4 Applications mobiles 2 e Utilisation d ordinateurs portables avec connexion sans fil de plus en plus fr quente e Environnement tr s diff rent de celui des stations de travail e Contraintes de taille et de poids ressources disponibles limit es e Source d nergie limit e batterie et niveau de consommation tr s vari able en fonction des p riph riques e R seaux sans fil faible bande passante et p riodes de d connexion in
24. e Task ou acteur unit de gestion de ressources m moire ports de com munication s ex cutant dans un espace m moire prot g Une tache contient un ou plusieurs threads Processus UNIX t che Tous les threads appartenant une m me t che partagent ses ressources e Port point d acc s un canal de communication g n ralisation de la notion de port TCP IP e Objet toutes les ressources du syst me sont vues comme des objets y compris la m moire Les objets communiquent en envoyant des messages via des ports C est un serveur de messages qui prend en charge les communications qui peuvent tre locales ou distantes e NB il existe m me un serveur de m moire r seau le mappeur de Chorus qui permet de partager la m moire travers le r seau Mach D velopp Carnegie Mellon e Mach Multiple Asynchronous Communication Host e Peut tre utilis sur un monoprocesseur un multiprocesseur ou un r seau de machines Compatibilit avec environnement UNIX Biblioth que pour la manipulation des threads POSIX e On peut aussi utiliser les primitives classiques UNIX pour la commmuni cation 81 Figure 19 Mach e MIG Mach Interface Generator permet d engendrer les applications utilisant les RPC propres Mach Chorus e Syst me d exploitation r parti d velopp et vendu par Chorus e Structur autour d un micro noyau orient temps r el ou syst mes r partis e In
25. enddo broadcast the number of columns and x to each slave process type 0 call pvmfinitsend PvmDefault bufid call pvmfpack INTEGER4 n 1 1 info call pvmfpack REAL8 x n 1 info call pvmfmcast nb_of_slaves inst type info send its sub matrix data to each slave process type 1 do 60 no_slave 1 nb_of_slaves number of components computed by slave no_slave j first_row no_slave 1 first_row no_slave initialization of send buffer call pvmfinitsend PvmDefault bufid pack data into send buffer call pvmfpack INTEGER4 j 1 1 info call pvmfsend inst no_slave type info do 70 i 1 n call pvmfinitsend PVMDATADEFAULT bufidS call pvmfpack REAL8 a first_row no_slave i j 1 info send message stored in send buffer to slave inst no_slave call pvmfsend inst no_slave type info 70 continue 60 continue compute its part of the work perform y lt one Ax zero y where A is an matrix of order first_row 1 1 x n incx 1 call dgemv N first_row 1 1 n one a lda x incx zero y incx collect results of slave processes and quit PVM type 2 do 80 no_slave 1 nb_of_slaves j number of components computed by the slave no_slave j first_row mo_slave 1 first_row no_slave call pvmfrecv inst no_slave type bufid call pvmfunpack REAL8 y first_row no_slave j 1 info 80 continue call pvmfexit retcode stop 73 end Slave s code PROGRAM slave include usr local pvm3 include fpv
26. erreur RPC e Identification des procssus client et serveur 25 26 Num ro de porte Identification symbolique RPC Implantation du mod le client serveur 2 e R alisation en utilisant les protocoles de transport bas niveau ou haut niveau e Avec protocoles de bas niveau Utilisation de fonctions de communications fournies par l OS et di rectement construites sur le protocole de transport Exemple sockets UNIX Mode non connect UDP Mode connect TCP e Avec protocoles de haut niveau Utilisation d un logiciel sp cialis interface entre syst mes de com munication et applications Exemples x Librairies de transferts de messages gt PVM MPI x Langage de programmation appel de proc dure distance RPC x Objets r partis appel de m thodes cr ation d objets distance 4 Sockets Emmanuel Chaput 27 eXternal Data Representation XDR 5 1 Introduction e Norme IEEE tr s r pandue mais pas universelle e Echange de donn es binaires entre syst mes pose souvent probl me e Alignement stockage big endian small endian peuvent tre diff rents selon les architectures et les compilateurs e XDR introduit par SUN en m me temps que NFS repr sentation standard des donn es pour les changes entre syst mes h t rog nes Exemple e Lors de la programmation des sockets dans le domaine Internet e Utilisation d
27. file de requ tes priorit Ex cution du service s quentiel concurrent M morisation ou non de l tat du client Gestion de processus du c t serveur e Sur le serveur la proc dure distante est ex cut e par un processus e Plusieurs possibilit s Dans tous les cas un processus de veille attend derri re une porte sp cifi e num ro de porte fonction du service Appel message envoy au veilleur avec nom de proc dure et param tres x le veilleur ex cute lui m me la proc dure et renvoie les r sulats au client ou le veilleur cr e un processus lourd ou l ger pour ex cuter la proc dure le processus renvoie les r sultats x Possibilit d avoir un pool d ex cutants qui vont chercher le travail effectuer donn par le veilleur R alisation de l appel e Probl mes d identification et de d signation Le client doit pouvoir d signer le serveur envoi requ te Le serveur doit pouvoir d signer le client envoi r sultats e Solutions possibles D signation du serveur par le client Le client connait le site et le num ro de porte du serveur con vention probl me r solu Le client ne connait qu un nom symbolique de service Utilisation d un service de d signation qui fournit site num ro de porte Connaissance du site et num ro de porte du service de d signation D signation du client par le serveur dans sa requ te le cl
28. flot renvoie vrai si le positionnement est possible bool_t xdr_setpos xdr_handle pos XDR xdr_handle handle int pos position dans le flot Exemple calcul du nombre d octets du codage XDR 14 include lt stdio h gt include lt rpc rpc h gt main XDR xdrs handle XDR int posi pos2 positions Position avant codage XDR posi xdr_getpos amp xdrs Codage XDR Position apres codage XDR pos2 xdr_getpos amp xdrs printf Nombre octets dans le flot XDR d n pos2 pos1 Filtres XDR e Filtres proc dures ralisant les op rations de transcodage retounent TRUE si op ration OK FALSE sinon 33 e Trois types de filtre de base composites complexes e Filtres de base dans la biblioth que XDR associ s aux types de base de C char int long float double void enum e Exemple bool_t xdr_int xdr_handle pobj XDR xdr_handle type pobj Filtres composites e Disponibles dans la biblioth que XDR e Traitent les types de donn es compos es cha ne tableau e 2 premiers arguments idem ci dessus les autres arguments d pendent de la nature du filtre e Types de donn es string opaque bytes vector arrayu union reference pointer Filtres complexes e Construits par l utilisateur combinaison des filtres pr c dents e g filtre pour une structure e En pratique utiliser compilateur RPCGEN qui engendre un filtre avec seulem
29. from the slaves Computation of one block of y is performed using _ GEMV from the Level BLAS see 10 which performs aAx By Codes for master and slave processes Master s code PROGRAM dotmatvec integer slave_max lda parameter slave_max 32 lda 1000 PVM variables integer my_id info inst slave_max numt bufid nb_of_slaves no_slave nb_of_processes type retcode first_row slave_max Message types used type 0 to broadcast initial informations 1 to distribute data to the slaves 2 to receive results from the slaves Data declaration double precision a lda lda x 1da y 1da one zero integer incx n m i j data zero 0 0 one 1 0 include usr local pvm3 include fpvm3 h Enroll this program into PVM call pvmfmytid my_id read input data nb_of_slaves m n read nb_of_slaves m n initiate nb_of_slaves instances of slave program call pvmfspawn slave PVMDEFAULT nb_of_slaves inst numt if numt ne nb_of_slaves stop nb_of_processes nb_of_slaves 1 Initialize data for computation and compute first_row slave_no do j i n do i i m a i j DBLE i j DBLE mtn one enddo x j one DBLE j DBLE n enddo 12 j m nb_of_processes do i 1 nb_of_slaves first_row i i j 1 enddo first_row nb_of_processes mt 1 work balancing j mod m nb_of_processes do i 1 j 1 first_row nb_of_processes i amp first_row nb_of_processes i j i
30. information envoy e e Le s buffer s sont soit internes la couche syst me soit g r s par Vutilisateur Propriet s de la communication buff ris e e Buffer s implique ent copies multiples co t m moire et temps e M me dans un mode bloquant l envoyeur peut tre libre imm diatement Si Taille buffer d envoi gt Taille message alors envoi asynchrone bloquant envoi non bloquant e Attention g rer la saturation des buffers deadlock possible si Venvoi est asynchrone bloquant l envoi peut tre bloqu jusqu au lance ment de la r ception correspondante Propri t s des communications e Diffusion des messages ordonnanc e FIFO les messages issus de Procl sont re us dans l ordre par Proc2 e Par contre PAS d ordonnancement causal Exemples PVM et MPI de communications point point e Envoi r ception standard pum_send pym _recv asynchrone bloquant pum_Nrecv r ception non bloquante simple mpi send mpi recv bloquant synchronisme d pend de l impl mentation mpi_Isend mpi_Irecv communication non bloquante g n rale Envoi synchrone Bloquant mpi Ssend Non bloquant mpi ISsend Envoi bufferis bloquant mpi_Bsend et non bloquant mpi IBsend Communications non sym triques PUT data criture directe dans la m moire d un autre processus GET data lecture dans la m moire d un autre processeur
31. localisation les usagers peuvent ignorer sa localisation r elle Trans parence localistion acc s on peut utiliser la ressource en ignorant si elle est locale ou distance 3 Transparence du partage acc s concurrents une ressource contr l s afin que son int grit soit garantie pour un fichier assurer les r gles de synchronisation du lecteurs r dacteurs pour une impimante ne pas m langer les impressions Les syst mes assurent le minimum vital Syst mes d di s un contexte particulier offrent parfois cette transparence base de donn es r parties par exemple avec atomicit des transactions 4 Transparence de la r plication assurer que l acc s une ressource soit identique quelle que soit la forme d implantation de cette ressource en particulier r pliqu e D di des syst mes tr s sp cifiques tol rants aux fautes par exemple a Transparence aux fautes assurer une bonne tol rance aux d faillances des services sur un syst me r parti 89 6 Transparence de la migration assurer qu une ressource pourra mi grer d un n ud l autre sans que les usagers s en aper oivent en parti culier migration de processus r gulation de charge 7 Transparence de charge r gulation de la charge des n uds ex ploitation plus efficace Probl me connaissance de l tat global du syst me difficle obtenir 8 Transparence d chelle architecture r partie plus modula
32. m moire Am liorer le rapport r f rences des m moires locales r f rences des m moires distance Size Average access time cycles hit miss Re N lt 1 1 128 KB ache level 1 2 8 66 256 KB 16 MB Cache level 2 6 15 30 200 16 8192 MB Main memory 10 100 Remote memory 500 5000 Disks 700 000 6 000 000 Figure 2 Exemple de hi rarchie m moire 1 2 4 Conception m moire pour grand nombre de processeurs Comment 100 processeurs rapides peuvent avoir acc s rapide a donn es rang es dans m moire partag e centrale technologie interconnexion prix Solution co t raisonnable m moire physiquement distribu e chaque processeur a sa propre m moire locale solutions m moires locales globalement adressables Calulateurs m moire partag e virtuelle transferts explicites des donn es entre processeurs avec change de mes sages Programmation en mode messages Scalabibit impose augmentation lin aire du d bit de la m moire locale avec la vitesse du processeur augmentation du d bit des communication inter processeurs avec le nombre de processeurs Rapport co t performance m moire distribu e et bon rapport co t performance sur les processeurs 1 2 5 Architecture des multiprocesseurs Nombre lev de processeurs m moire physiquement distribu e 1 2 6 Clusters de processeurs e Plusieurs niveaux de m moi
33. messages 90 Figure 22 Exemple de repr sentation graphique d un calcul r parti Figure 23 Exemple de chronogramme e Les v nements issus de processus diff rents ne sont pas forc ment or donn s mais ordre partiels induit par les messages chang s e Ordre partiel fond sur une relation de causalit e Relation not e lt satisfaisant 1 Pour tout couple d v nements e e issu d un m me processus telque e pr c de e dans la suite associ e au processus e lt e 2 Pour un change de message entre 2 processus envoi e et r ception r onae x lt r Protocoles ordonn s Message m1 regu pr s m2 par le processur p3 alors que un lien causal existe en mission el lt r lt e2 Eventuellement le message peut tre incompr hensible Protocoles ordonn s vitant ce type de probleme e Protocole ordonn d ordre causal assure la propri t suivante pour toute destination S Vm m vers S m lt Em Tm lt dw e Diverses implantations de ces protocoles sont possibles 91 Figure 24 Exemple de liaison causale en mission e Contr le pour la d livrance d un message toujours local au site r cepteur Probl mes pos s par les protocoles de diffusion e Int r t de la r partition duplication des traitements et des donn es services plus fiables et plus disponibles e Diffusion complexit croissante des changes de messages e Probl mes majeurs
34. par le serveur qui doit garder trace des copies TTL Time To Live dur e de vie limit e limination ou rappel la date d expiration Dur e de vie proportionnelle l age du document e Coop ration entre caches Hi rarchie tout cache un parent auqeul il transmet la requ te s il ne peut la r soudre et ainsi de suite si pas de parent contacter le serveur puis r ponse au fils ventuel Entre gaux un cache transmet la requ te aux caches fr res et au serveur il prend la premi re r ponse Mode de coop ration pas fix et peut d pendre de la nature des requ tes 83 10 3 Objets r partis 13 4 e Motivations Fournir un mode d organisation des applications r parties privil giant le partage d informations r parties sur plusieurs sites entre des util isateurs eux m mes r partis Am liorer structuration et r utilisation des programmes facilit de compr hension et de modification constructions g n riques e Principes d finition d un ensemble d objets r partis utilisables via leurs m thodes avec les conditions d acc s suivantes Transparence de la localisation objet d sign par un nom logique ind pendant de sa localistion physique localisation peut changer sans que nom change Transparence d acc s acc s un objet distant identique acc s un objet local e Utilisations possibles applications mettant en uvre des
35. portmap Code complet du serveur Enregistrement des procedures du programme arithmetique et mise en oeuvre du demon du service include lt stdio h gt include exemple h char add char mult char rac main int rep rep registerrpc ARITH_PROG ARITH_VERS1 ADD_PROG add xdr_couple xdr_float if rep 1 fprintf sterr erreur registerrpc add n exit 2 rep registerrpc ARITH_PROG ARITH_VERS1 MULT_PROG mult xdr_couple xdr_couple if rep 1 fprintf sterr erreur registerrpc mult n exit 2 rep registerrpc ARITH_PROG ARITH_VERS1 SQRT_PROG rac xdr_couple xdr_couple fprintf sterr erreur registerrpc rac n if rep 1 exit 2 svc_run fprintf stderr erreur sur svc_run n exit 3 Exemple du c t des clients 1 Fonction callrcp main n v char v int n float x struct couple don res int op m don ei 13 4 don e2 17 1 m callrpc v 1 ARITH_PROC ARITH_VERS1 ADD_PROC xdr_couple amp don xdr_float amp x if m 0 printf Af f f n don el don e2 x else fprintf stderr erreur d n m 2 Erreurs e Valeur de retour de call rpc fournit en cas d chec sa cause lt rpc clnt h gt fournit la liste des erreurs possibles e Fonction clnt_perrno appel avec un num ro d erreur en param tre callrpc machin
36. sclient sizeof sclient Fonction reception emission serveur sock psclient len int sock descripteur socket struct sockaddr_in psclient adresse client int len longueur adresse Traitement symetrique par rapport au client Echo avec flot d enregistrement et sockets TCP 14 Fichier gen x Description RPCGEN des donnees echangees typedef string st lt 16384 gt Longueur de chaine maxi Fichier soct h include lt commun h gt include lt sys socket h gt include lt netinet in h gt define PORT 6368 Numero de port TCP 38 Fichier d inclusion pour les procedures XDR include lt rpc rpc h gt Fichier d inclusion engendre par RPCGEN include gen h readp Procedure de lecture sur socket writepQ Procedure d ecriture sur socket Fichier gen h engendre par RPCGEN include lt rpc types h gt typedef char st bool_t xdr_st Fichier client c include soct h clientipc int sock Descripteur socket struct sockaddr_in server Adresse serveur Creation socket sock socket AF_INET SOCK_STREAM O Connexion au serveur bzero amp server sizeof server server sin_familly AF_INET bcopy char hp gt h_addr char amp server sin_addr hp gt h_lenght server sin_port htons PORT connect sock struct sockaddr amp server sizeo
37. service 3 Fichier etc rpc e Contient la liste des services RPC e Ligne informations relatives un service Nom officiel Num ro Liste d alias e rpcent pr dfinie dans lt netdb h gt struct rpcent char r_name nom de programme RPC char r_aliases liste d alias int r_munber numero de programme RPC utilis e par les diff rentes fonctions permettant de consulter etc rpc getrpcbyname et getrpcbynumber 4 Commande rpcinfo e Obtention d informations sur les divers services disponibles sur une machine e Exemple rpc p julia program no_version protocole no_port 100000 4 tcp 111 rpcbind 100000 4 udp 111 rpcbind 100005 1 udp 32998 mountd 100003 3 tcp 2049 nfs 100227 2 tcp 2049 nfs_acl 805306368 1 udp 33001 805306368 1 tcp 32800 100249 1 udp 33002 100249 1 tcp 32801 e Tester disponibilit d un service rpcinfo u julia nfs Le programme 100003 de version 2 est pret et en attente Le programme 100003 de version 3 est pret et en attente 5 Diff rents niveaux d utilisation e Couche haute Cache un maximum de d tails l utilisateur Uniquement appel de fonction dans une biblioth que Pas possible de d velopper de nouveaux services e Couche interm diaire La plus int ressante pour le d veloppeur Connaissance minimale de XDR et RPC et suffit pour la ma jorit des applications Pas de manipulation explicite des sockets e
38. Contents 1 Introduction au syst me r parti 5 Syst mes et Applications R partis 1 1 Pourquoi l informatique r partie et le calcul parall le 5 1 1 Pourquoi des traitements parall les exemples dans le do maine du calcul scientifique 5 ee 1 2 Architectures parall les Multiprocesseurs clusters r seaux de F MACHINES 2 retire de ee Ge Pat em ai a Aaa eee 5 2 rue Camichel 2 1 Comment accro tre la vitesse de calcul 5 31071 TOULOUSE CEDEX FRANCE 22 Paral lisme 42 40 2e Eae D en dase Ses aae an G 7 dayde enseeiht fr 2 3 Comment obtenir de hauts d bits m moire 7 2 4 Conception m moire pour grand nombre de processeurs 8 January 26 2005 2 5 Architecture des multiprocesseurs 8 2 6 Clusters de processeurs 10 2 7 R seaux de Calculateurs 10 2 8 Multiprocesseurs vs r seaux de machines 11 2 9 Grid Computing motivations 13 1 3 Syst mes informatiques 13 3 1 Notion d interface 13 3 2 Exemples de services 14 3 3 R le d un syst me d exploitation 14 3 4 Interfaces d un syst me d exploitation 14 1 4 Applications r parties 15 4 1 Classes d applications r parties 15 42 Objectifs des syst mes r partis 16
39. Couche basse N cessite une bonne connaissance des sockets N cessaire si les options choisies dans couhe interm diaire pro tocole UDP par exemple sont inadapt es 46 6 4 Couche haute e Fonctions standards disponibles dans librpcsva c e Simple dition de liens avec cette biblioth que e Exemples de fonctions getrpcport fournit avec nom de machine num ro de programme de version et de protocole le num ro de port si il est connu 0 sinon rusers rnusers rnusers machine nombre d utilisateurs connect s rusers machine p initialise la zone p avec les informa tions disponibles sur les utilisateurs rwall machine message envoi du message donn tous les utilisateurs de la machine sp cifi e 6 5 Couche interm diaire e Cr ation relativement simple de nouveaux services RPC e S appuie sur le protocole UDP taille des messages limit e et donc taille des param tres et des r sultats e Si insuffisant couche basse Suite des op rations r aliser pour d finir un nouveau service e Ecrire les diff rentes fonctions sur le serveur e Apr s choix des num ros de programme et de version demander l enregistrement par d mon portmap avec registerrpc e Appel distance avec callrpc Exemple de service 3 proc dures permettant de calculer e x y pour la proc dure 1 e ux y z pour la proc dure 2 e z pour la proc dure 3 Exemple du c
40. PvmDir PvmArch libfpvm3 a PVMLIB_G PvmDir PvmArch libgpvm3 a LIBS PVMLIB_F PVMLIB_C PVMLIB_G Location of the executable files IDIR HOME pvm3 bin PvmArch all dotmatvec slave dotmatvec master o BLAS TIMING F77 o dotmatvec master o LIBS lblas mv dotmatvec IDIR slave slave o BLAS F77 o slave slave o LIBS lblas mv slave IDIR F77 FOPTS c f clean bin rm o Configuration of the virtual machine e Configuration file describe the list of computers used e Used to start the pumd3 daemon on each computer listed e Parallel Virtual Machine can be controled using the pum console e Other solution use directly the pum console to build the virtual machine e Both solutions illustrated in the following example a parallel virtual machine of 4 RISC workstations HP IBM and two SUN is build The HP workstation pie is our host computer Example pie gt cat hostfile comments pie pinson goeland aigle pie gt pvmd3 hostfile amp pie gt pvm gt conf 4 hosts 1 data format HOST DTID ARCH SPEED pie 40000 HPPA 1000 pinson 80000 SUN4 1000 goeland c0000 RS6K 1000 aigle 100000 SUN4 1000 75 pie gt pvm pvm gt conf 1 host 1 data format HOST DTID ARCH SPEED pie 40000 HPPA 1000 pvm gt add pinson goeland aigle 3 successful HOST DTID pinson 80000 goeland c0000 aigle 100000 9 1 4 Performance analysis and graphical interface e Ana
41. a jour des divers exemplaires d un m me fichier sur les syst mes d un r seau exemples etc passwd etc hosts e Num ros de compte utilisateurs et mots de passe identiques sur toutes les machines d un r seau local administr via les yellow pages e Id e d finition d un domaine ensemble d associations cl valeur correspondant au contenus des diff rents fichiers partager e Un site est le maitre partir de qui on r alise la mise jour des copies sur les machines esclaves Mise jour des fichiers faite par l administrateur except le changement de mot de passe avec yp passwd 8 Processus communicants par messages 8 1 Contexte informatique objectifs et besoins Largement extrait de 1 Contexte informatique Multiprocesseur m moire distribu e ou r seau de stations de travail Objectifs et besoins Exemple de r seau de calculateurs e But r partir g rer des calculs sur la machine cible e Outils n cessaires minimum S curit et droits d acc s machines et donn es Cr ation de processus distants Communication entre processus Synchronisation entre processus e Gestion de la coh rence des donn s et des traitements e S quenceur des t ches r parties e Gestion dynamiques des processeurs et des processus gestion des pannes gestion de points de reprises 8 2 Le mod le de progra
42. ag e virtuelle tous les threads d un processus partagent le m me espace m moire virtuel Parall lisation e Parall lisation automatique avec le pr processeur KAP e Utilisation de directives e Appels a la librairie sur g rant les threads Primitive similaire un fork 95 96 Locks Tiling loops Utilis pour parall liser les boucles imbriqu es c ksr tile index list options do do enddo enddo cxksr end tile e Options order order list private variable list lastvalue variable_list reduction variable list tilesize tilesize_list strategy slice mod grab wawe numthreads numthreads or teamid team id affmenber 0 or 1 e Directives peuvent tre ins r es automatiquement par KAP ou par le programmeur e Parallel region c ksr parallel region numthreads private variable_list c ksr end parallel region e Exemple Code s quentiel do j 1 n do i 1 m a i j b i j enddo enddo Parall lisation avec 4 threads copies des boucles do sur des tranches de la boucle en j 97 Code parall le c ksr parallel region numthreads 4 cxksrx amp private myid ji j2 i j my_id ipr_mid ji 1 my_id n 4 j2 my_id 1 n 4 do j ji j2 do i 1 m a j b i j enddo enddo c ksr end parallel region Parallel section c ksr parallel sections teamid priv
43. aitement rapide ou peu de clients serveurs parall les le processus serveur invoque un autre processus pour traiter la requ te du client fork par exemple apr s cr ation le processus serveur ne bloque pas sur la fin d ex cution du fils et se remet en attente chaque serveur on associe une adresse de service requ tes mises vers cette adresse serveurs sans tat pas de conservation d informations sur les clients au contraire des serveur avec tat En cas de rupture de communication reprise plus simple avec des serveurs sans tat mais fonctionnement al atoire Outils disponibles sous UNIX TCP IP ensemble d outils Sockets Emmanuel Chaput Biblioth que TLI Transport Level Interface NES Network File System RFS Remote File Sharing X Window XDR eXternal Data Representation RPC Remote Procedure Call de SUN NCS Network Computing System 2 Rappels UNIX 2 1 Protocoles de transport 2 1 1 Notions de protocole et d interface Exemple de la requ te sur le web divers niveaux d change entre le client et le serveur 18 e Niveau application client clique sur un lien serveur renvoie une page Web e Niveau des messages client envoie un message contenant une URI serveur renvoie un fichier HTML e Niveau de la transmission des bits envoi de paquets o chaque bit est transmis comme un signal lectrique sur une ligne e Chaque niveau s appuit sur les niveaux
44. angement r pertoire site local ls ls sur site distant 2 2 4 Commandes de services UNIX Configuration du r seau en l absence d une distribution des fichiers syst mes cf NFS plus loin pb d identification des usagers entre les diverses machines du r seau Solution globale par administrateurs syst mes etc hosts equiv Au niveau de chaque utilisateur rhosts chez chaque utilisateur etc hosts equiv liste de machines quivalentes la machine locale i e login machine distante identique sur machine locale rhosts Permet un utilisateur d autoriser des usagers d autres machines s identifier sous son nom Exemples julia dayde dayde 24 e rwho liste des utilisateurs log s sur les machines du r seau 3 2 Exemple introductif client serveur 14 et 13 e rcp remote copie Exemple interf rcp file myhost otherfile Ex cution de commandes distantes requete Processus UNIX a Processus UNIX rsh hote 1 user commande Exemple SAA rsh julia ls Client Serveur Ne marche que si sur julia on a dayde ou ma machine dayde dans r ponse rhosts 2 3 Communication entre utilisateurs sous UNIX Noyau UNIX Noyau UNIX Popularit de UNIX possibilit d changer des fichiers ou de dialoguer par messagerie ou forums Communication facilit e gr ce l interconnexion des machines via Internet Fig
45. ask numt positions of tids e Getting the tid of the parent call pymfparent tid On exit tid tid of parent process otherwise tid set to negative value PumNoParent Interprocess communication Communication between PVM processes based on message passing PVM provides asynchronous send blocking receive and nonblocking receive facilities Sending a message is done in three steps see Figure 1 initialization of a send buffer and choice of an encoding format to send data pumfinitsend 2 packing of data to be sent into the send buffer pumfpack 3 actual send broadcast of the message stored in the send buffer to desti nation s process es pumfsend pumfcast Memory data Send buffer pvmfpack pvmfsend Sending Process momoran FE Receive buffer pvmfunpack E poe ros J j pvmirecv LU E E Receiving Process Figure 16 Illustration of send receive main steps e Main advantage of this strategy user can compose his message out of various pieces of data and therefore decrease the number of messages effectively sent e With the broadcast option only one send buffer has to be filled e If one large array of only a given data type needs to be sent pumfpsend has been designed to pack and send data in one call to improve perfor mance Reception is symmetric to the three step sending procedure After recep
46. ate variable_list c ksr section code segment 1 c ksr section code segment 2 c ksr end parallel sections e Donn es partag es et priv es Par d faut toutes les donn es et les commons sont partag s sauf sp cification dans une liste private Les variables index de Tile sont tjs priv es proc dure appel e l int rieur d un constructeur parall le les vari ables ind finies en entr e sont priv es chaque appel idem pour les commons peuvent tre d clar s private dans un con structeur parall le e Locks disponibles pthread mutex lock and pthread mutex unlock ainsi que barriers e Optimisations pcsp anticipe le chargement d une sous page dans le cache local pstsp diffuse une copie read only d une sous page toutes le pro cesseurs qui en poss dent une copie Parall lisation automatique r alis e par KAP sur SGEMM 98 c ksr tile j private temp i 1 jb min n i 1 nb do j 1 n do 50 1 1 k nb do i 1 m kb min k l 1 nb C i j betaxC i j call sgemm_tuned_serial enddo n n ib jb kb alpha a i 1l lda do 1 1 k b 1 j ldb beta c i j ldc temp alpha B 1 j 50 continue do i 1 m 70 continue C i j C i j temp A i 1 60 continue enddo enddo Performance de la version parall le enddo c ksr end tile Computer Precision Uniproc Number of processor
47. cation UNIX AUTH_UNIX avec personne groupe Par d faut authentification nulle constantes pr d finies dans etc auth h Authentification cha ne de caract res dont l interpr tation d pend du style correspondant Authentification structure struct authunix_parms u_long char aup_time date de creation de la structure aup_machine nom de la machine cliente 53 4 ou int aup_uid proprietaire effectif du client int aup_gid groupe proprietaite effectif du client u_int aup_len nombre d elements du champ suivant int aup_gids tableau de groupes d appartenance Structure manipul e par le client et le serveur mais opaque pour le client Traitement des erreurs e Les erreurs sont r cup rables par le client avec clnt_perrno et clnt_perror e Que se passe t il lorsque le serveur d tecte une anomalie dans le d roulement d un appel a une fonction Un certain nombre de fonctions permmetent au serveur de renvoyer aux client des erreurs sp cifiques Exemples sverr_noproc num ro de proc dure incorrect svcerr_auth erreeur dans l authentification Possibilit de personnaliser svc_run par exemple pour que le serveur r alise des lectures bloquantes sur d autres descripteurs que la socket de service avec svc_getreq qui permet de traiter toutes les lectures sp cifi es par un masque Network File System NFS Introduction
48. d adresse du serveur bzero amp server sizeof server bcopy char hp gt h_addr char amp server sin_addr hp gt h_lenght server sin_port htons PORTS server sin_familly AF_INET len sizeof server Appel du service echo client sock amp server len Fermeture connexion close sock Fonction emission reception client sock pserver len int sock Descripteur socket struct sockaddr_in pserver adresse serveur 36 gt int len longueur adresse XDR xdr_handlei handle encodage XDR xdr_handle2 handle decodage char mem buffer char pbuf pointer unsigned int size taille multiple de 4 unsigned int pos position int serverlen longueur adresse Initialisation variable contenant longueur structure adresse du serveur serverlen len buffer de taille TAILLEMAXI 4 pour le codage XDR avec RNDUP size RNDUP TAILLEMAXI 4 mem malloc size adresse d un pointeur a xdr_st pbuf buf Allocation flots XDR memoire pour encodage decodage xdrmem_create amp xdr_handlei mem size XDR_ENCODE xdrmem_create amp xdr_handle2 mem size XDR_DECODE Envoi de la taille du buffer traite on fait un transcodage pour connaitre la taille de ce qui sera transmis xdr_st amp xrd_handlel amp pbuf lbuf xdr_getpos amp xdr_handlel On se r
49. des donn es sans effet ind sirable transparence sur la duplication des donn es ou des objets peuvent tre dupliqu s pour am liorer la performance ou la disponibilit sans que cela soit visible transparence tol rance aux pannes possibilit de terminer un traite ment m me si un composant mat riel ou logiciel tombe en panne transparence aux reconfigurations le syst me peut modifier dynamique ment sa configuration e g ajout de ressources pour am liorer ses per formances 1 4 5 Mod le Client Serveur Figure 10 Mod le Client Serveur Client demande acc s un service ou une ressource Serveur entit qui rend le service ou attribue la ressource Peuvent tre sur la m me machine communication locales ou sur des machines distantes m canismes de communication r seau Par exemple client et serveur sont deux processus UNIX communiquant par des IPC interprocess communication local ou r seau Client et serveur ne jouent pas des r les sym triques Serveur s initialise et se met en attente de requ tes de clients ventuels 17 1 5 Client en g n ral lanc interactivement envoie des requ tes au serveur Ex cution d une requ te par le serveur peut impliquer un dialogue avec le client ensuite le serveur se remet en attente d autres requ tes Deux types de processus serveurs serveurs it ratifs le processus serveur traite lui m me la requ te viable si tr
50. e temps attente nombre de copies internes e Des r sultats faux causalit mal g r e e De nouvelles situations d interblocage codes bas s sur des communications standards mpi send et mpi recv tous les cas d erreur correspondent des programmes algo erron s Qu est ce qui influence les performances e La distribution des donn es e L quilibrage du travail sur les processus e Recouvrement des communications par les calculs Optimisation des communications e Choix du mode de communication point point sym trique syn chrone bufferis bloquant 64 e Optimisation algorithmiques pipelining blocage envoi au plus t t prefetch e Exploiter les protocoles d implantation des communications et taille des buffers internes e Exploiter l architecture du r seau topologie connexions bidirectionnelles fonctionnement de plusieurs canaux simultan s 9 Librairies de transfert de messages 9 1 PVM Distributed and heterogeneous computing using PVM e Short overview of the PVM computing environment e Simple example e XPVM tracing tool used for illustration e Complete description of PVM 5 11 6 e Many of the examples we use are coming from these references 9 1 1 Overview of the PVM computing environment PVM Parallel Virtual Machine e Public domain software available on netlib Developed by the Oak Ridge National Laboratory the University of T
51. e prog vers proc xdr_arg arg xdr_res res char machine unsigned long prog vers proc char arg res bool_t xdr_arg xdr_res e Appel sur machine de la fonction proc de la version vers du pro gramme prog e arg param tres de la proc dure et xdr_arg sp cifie le traitement XDR correspondant leur type e res r sulats de la proc dure et xdr_res sp cifie le traitement XDR correspondant leur type e Appel de la fonction bloquant Retour de 0 en cas de r ussite et autre valeur en cas d chec Exemple d appel au service arith sur une machine distante include lt stio h gt include exemple h affiche le message correspondant e RPC s appuyant ce niveau sur UDP risque de blocage de pro cessus D tection de blocage par r p tition intervalles de temps r guliers pendant un certain temps ces r p titions peuvent avoir des effets de bord Couche basse e Fonctionnalit s du m me type que la couche interm diaire e Possibilit s d utiliser TCP au lieu de UDP enregistrement complet d un service en une seule fois au lieu de proc dure par proc dure e Mise en uvre plus lourde Concepts avanc s e D mons RPC d finis pr c demment sont lanc s une fois pour toutes ex istent m me lorsque le service n est pas appel e Possibilit de charger le processus inetd jouant un r le de super serveur pour recr er le d mon associ
52. e across networks of computers improved by using of Unix domain sockets between the tasks and the local daemon improvement by a factor of 1 5 to 2 e Using task to task direct communications PumRouteDirect also increases communication performance 9 1 3 Illustrative Example a dot version of the matrix vector prod uct e Straightforward static parallelization of the matrix vector product y Axa where A is a m x n matrix x an n vector and y an m vector e Master slave paradigm Each process is in charge of computing one block y Additionally master process broadcasts the data to the slaves and collects the final results The sequential FORTRAN code is do i 1 m y i 0 0D0 do j i n yG yG AG j x enddo enddo In the parallel implementation master x A x slave 1 first_row 1 x first_row 2 ns first_row 3 slave 2 zz slave 3 Figure 17 Static parallelization of the matrix vector product A partitioned into block of rows distributed on the slave processes 71 2 y ee eK e Description of the master process e Description of a slave process the master holds A and x enroll into PVM and create slaves enroll into PVM send data to the slaves wait for data from the master compute the first block of vector y compute my block of vector y send back results to the master leave PVM application leave PVM application receive results
53. e de programmation environnement logiciel PVM MPI or m2 3 pa mr Kf A PI P2 ie 7 Na e Performance effective peut varier norm ment sur une application S 5 ne e Performance tr s d pendante des communications d bit et latence Figure 4 Exemple d architecture m moire distribu e e R seaux Ethernet 10 Mbits SOCC 220 Mbits FDDI 100 Mbits e Acc s transparent des ressources sur Internet capacit s de traite e H t rog ne homog ne ment logiciels d expertise bases de donn es visualisation instruments e Plut t orient vers un parall lisme gros grain de mesure e Charge du r seau et des calculateurs peut varier pendant l ex cution Equilibrage des traitements e Plus rarement traitements parall les sur une grille e Exemples NetSolve Globus NEOS Ninf Legion UNICORE EUROGRID DATAGRID computer 2 network 1 cluster computer 1 network 2 TEE multiprocessor Figure 6 Exemple de r seau de calculateurs 1 2 8 Multiprocesseurs vs r seaux de machines e Syst mes r partis r seaux de machines communications relativement lentes et syst mes ind pendants X r i ae Figure 7 Grid software hardware layers e Syst mes parall les architectures multiprocesseur communications plus rapides r seau d
54. en nessee the University of Carnegie Mellon the Pittsburgh Supercomputing Center and the Emory University of Atlanta e Allows to use a network of heterogeneous UNIX computers either serial or parallel as a unique computing resource referred to as a virtual machine A variety of networks Ethernet FDDI may interconnect the nodes of the virtual machine e Daemon on each node of the virtual machine coordinates work distributed on the virtual machine e Host file contains the list of computers and allows to automatically activate the UNIX daemons and build the parallel virtual machine at start up Application viewed as a set of parallel processes being executed on the processors of the virtual machine e Communication and synchronization using message passing Workstation Workstation Workstation Workstation ETHERNET 10 Mbits sec Workstation Mini Comp Super Comp Figure 15 Example of virtual machine e Processes can be organized into groups a process can belong to several groups and groups can change at any time during computation From the user point of view the PVM package is composed of two parts e daemon process pumd3 resides on each computer of the parallel virtual machine Can be started interactively or automatically e When user wants to run an application in the PVM environment pvmd starts a daemon on each node of a virtual mac
55. ent 2 param tres 5 4 Gestion de la m moire e Pb volume m moire r server par un processus pour contenir des donn es d cod es exemple longueur d une cha ne de caract res e Solutions r server un buffer assez grand ou laisser XDR allouer la taille correcte donner au filtre XDR un pointer NULL sur l objet d coder e Apr s d codage lib rer la m moire par xdr_free void xdr_free proc objp xdrproc_t proc procedure qui a effectuee le filtre char objp pointeur sur l objet decode Exemple de gestion m moire 34 include lt stdio h gt include lt rpc rpc h gt define FICHIER tmp filexdr define LGMAX 1024 Taille max de la chaine main FILE fp FILE pointer XDR wdrs handle XDR char objp pointeur sur chaine decodee Ouverture du fichier fp fopen FICHIER r Creation du flot de decodage xdrstdio_create amp xdrs fp XDR_DECODE Lecture chaine pointeur NULL car on ne connait pas la taille de la chaine decodee objp NULL xdr_string amp xdrs amp objp LGMAX Utilisation de la chaine obtenue On libere la memoire alloueee par XDR xdr_free xdr_string kobjp close fp exit 0 5 5 Utilisation de XDR avec les sockets e Combinaison de sockets et XDR n cessaires si Client et Serveur n utilisent pas la m me repr sentation des donn es Flot m moire avec les
56. epositionne en debut de buffer xdr_setpos amp xdr_handlel 0 Encodage xdr_int amp xdr_handlei amp lbuf Longueur de chaine encodee pos xdr_getpos amp xdr_handlel transmission au serveur retour sendto sock mem pos 0 pserver len Boucle envoi et reception de buffers for i 0 i lt nbuf i Repositionnement en debut de buffer xdr_setpos amp xdr_handlei 0 Encodage xdr_st amp wdr_handle1 amp pbuf Transmission retour sendto sock mem lbuf 0 pserver len Reception sur l adresse du serveur connue retour recvfrom sock mem lbuf 0 pserver amp serverlen Repositionnement debut du buffer xdr_setpos amp xdr_handle2 0 Decodage xdr_st amp xdr_handle2 amp pbuf 37 F Liberation memoire free mem Fichier serveur c include soct h serveuripc int sock descripteur socket struct sockaddr_in server adresse serveur struct sockaddr_in sclient adresse client int len longueur adresse creation socket sock socket AF_INET SOCK_DGRAM O assignation adresse a la socket bzero amp server sizeof server server sin_family AF_INET server sin_addr s_addr INADDR_ANY server sin_port htons PORTS len sizeof server bind sock struct sockaddr amp server len Appel de la boucle ecriture for 55 serveur sock amp
57. f server Appel du service client sock Fermeture connexion close sock Fonction emission reception client sock int sock Descripteur socket char pbuf pointer XDR xdrs handle XDR Pointer sur buffer pbuf buf Mode ecriture xdr x_op XDR_ENCODE Creation handle xdrrec_create amp xdrs 0 0 amp sock readp writep Envoi de la taille du buffer traite xdr_int amp xrd amp lbuf Flush du buffer d ecriture 39 xdrrec_endofrecord amp xdrs TRUE Boucle envoi et reception de buffers for i 0 i lt nbuf i Ecriture et encodage xdr x_op XDR_ENCODE xdr_st amp xdrs amp pbuf Flush du buffer xdrrec_endofrecord amp xdrs TRUE Lecture et decodage xdrs x_op XDR_DECODE Positionnement sur l enregistrement xdrrec_skiprecord amp xdrs xdr_st amp xdrs amp pbuf Fichier serveur c include soct h Variables globales positionnees dans les procedures readp et writep extern int nbcarlu Nombre d octets lus sur socket extern int nbcar ecrit Nombre d octets ecrits sur socket serveuripc int sock descripteur socket int nsock descripteur socket int retour variable retour struct sockaddr_in server adresse serveur creation socket sock socket AF_INET SOCK_STREAM
58. ffre de noouveaux services am lioration du confort d utilisation e Avantages partage et optimisation des ressources nouvelles fonctionnalit s et am lioration des performances souplesse et disponibilit e Inconv nients d pendance aux performances et la disponibilit du r seau probl mes de s curit on devient souvent d pendant de la machine la moins s re 1 4 3 R partition vs parall lisme R partir les traitements ou les distribuer sur les machines les plus adapt es n implique pas que les traitements seront effectu s en parall le Mais r partir les traitements est aussi une fa on de les parall liser 1 4 4 Transparence e Possibilit d acc der des ressources ou des services sans conna tre leur localisation e Pour le d veloppeur d applications possibilit d utiliser les m mes prim itives d acc s o que se situent le service ou la ressource d sir vision d une seule interface et d un seul ordinateur e Transparence vision unifi e d un syst me au lieu d une collection d objets ind pendants Plusieurs types de transparence e transparence d acc s des op rations identiques permettent l acc s des objets locaux ou distants 16 transparence de localistion objets accessibles sans avoir conna tre leur localisation physique transparence sur la concurrence des acc s plusieurs utilisateurs doivent pouvoir acc der simultan ment
59. fprintf sterr erreur registerrpc rac n exit 2 49 e NB enregistrer le service ne veut pas dire qu il est disponible Il faut aussi avoir l existence d un d mon pour r aliser ce service endormi et r veill la demande ou cr lorsque le service est appel 3 Fonction svc run e Solution la plus simple pour rendre un service disponible le pro cessus qui demande l enregistrement avec resgisterrpc est aussi le processus d mon du service e Apr s enregistrement il se met en attente de demandes avec svc_run e R alise une attente par appel select liste des descripteurs sus ceptibles de r veiller le processus en vue d une lecture contient le descripteur de la socket associ e au service RPC accessible via la variable externe svc_fds e Quand aucun message n est disponible sur cette socket le processus se met en attente e svc_run n a pas de retour sauf en cas d erreur 4 Effacement du service e Disparition service devrait tre signal e au d mon portmap pmap_unset prog vers unsigned long prog Numero de programme unsigned long vers Numero de version e Le programme suivant efface le service ariht main n v int n char v unsigned long prog vers sscanf v 1 1 amp prog sscanf v 2 1 amp vers pmap_unset prog vers avec les param tres 858993459 0x33333333 et 1 le service arith est effac des tables de
60. hine described in host file The application can then be started from any node pum starts the PVM console used to interactively control and modify the virtual machine both in terms of host nodes and processes pum may be started and stopped multiple times on any of the hosts e set of library procedures communication and synchronization proce dures used from C or FORTRAN Several facilities for handling processes to create and terminate processes to communicate between processes to synchronize processes to modify the parallel virtual machine and to manipulate process groups 9 1 2 The PVM3 user library We only describe the main procedures of the FORTRAN PVM user library Complete version of PVM3 user library PVM 3 user s guide and refer ence manual 11 available on netlib Advanced features overviewed in 6 66 Notations tid integer identifier of the PVM process ntask integer number of processes tids integer array array of PVM process identifiers bufid integer identifier of a buffer msgtag integer message label encoding integer message coding bytes integer length of a message in bytes info integer erro message task character name of an executable file group character group identifier size integer size of the group xp what data array stride integer stride between two elements nitem integer number of elements Contr
61. ient indique site num ro de porte vers o renvoyer le r ponse e En pratique noms symboliques et op rations de d signation cach es aux utilisateurs 43 6 2 Principes du protocole 19 Le protocole doit permettre e Identification des proc dures e Authentification de la demande 1 Authentification des proc dures e Proc dures regroup es en un programme r alisant un service e g NFS e Programme identifi par un entier ainsi que chaque proc dure num ro de NFS 100003 et lecture proc dure 6 Chaque programme poss de de plus un num ro de version e Appel fonction distante requ te un d mon de la machine distante en lui transmettant num ro de programme de version et de proc dure d mon lancera dialogue avec un processus de service ex cutant la proc dure demand e e Echange d informations avec XDR e Tout service contient la proc dure 0 qui ne fait rien rien mais permet de tester sa disponibilit 2 Num ros de programme e Entiers longs allant de 0x00000000 Oxffffffff Intervalle hexad cimal Usage 0x00000000 Ox Lfffffff R serv 0x20000000 Ox3fffffff Non r serv 0x40000000 Oxdfffffff R serv 0x60000000 Oxffffffff R serv Table 2 Num ros de programme RCP 3 Authentification e Possibilit pour un client de s identifier aupr s du serveur s curit des acc s e Messages chang s au cour
62. ille de tampons en mission et en r ception iohandle identifie la ressource permettant de lire ou d crire les donn es XDR c d pointeur sur un fichier socket TCP ou tout objet permettant de ranger des donnes dans des m moires tampons readproc writeproc adresse de 2 proc dures d finir Tampon de r ception vide readproc appel e par le filtre XDR pour lire les donn es Quand le tampon d mission est plein appel de writeproc par le filtre pour crire les donn es Par exemple int readproc iohandle buf nbytes char iohandle identificateur ressource char buf 5 adresse buffer int nbytes H taille buffer iohandle peut tre un pointeur sur un fichier une socket TCP o tout objet permettant de ranger des donn es dans des tampons 32 e Flot d enregistrements fonctionne en criture ou en lecture en positionnant x_op du handle XDR e Il existe 3 proc dures suppl mentaires xdrrec_endofrecord pour sp cifier la fin d un enregistrement force l criture flush du tampon xdrrec_skiprecord utiliser par le r cepteur pour lire enregistrement suivant en particulier avant premi re lecture xdrrec_eof le r cepteur peut ainsi savoir si il reste des donn es lire dans le tampon Macros relatives aux flots e Obtention de la position courante int xdr_getpos xdr_handle XDR xdr_handle handle e Positionnement dans le
63. inf rieurs Notions de Protocole et Interface sont une repr sentation de ce mode de fonctionnement e Interface d un service fonctions logicielles ou mat rielles et r gles d acc s pour utiliser ce service e Protocole conventions d finissant les changes entre les entit s coop rant pour r aliser un service e Relations entre protocoles et interfaces Interface d finit l acc s au service protocole d finit sa r alisation Construction d un protocole souvent bas e sur des protocoles de niveau inf rieur en acc dant leurs interfaces protocoles en couches Figure 11 Protocoles de l Internet e HTTP HyperTexte Transfer Protocol Web e TFTP FTP Trivial File Transfer Protocol e TCP Transmission Control Protocol transport en mode connect 19 autres services Internet Protocol IP reseau longue distance Figure 12 Les protocoles et services TCP IP UDP User Datagram Protocol transport en mode non connect IP Internet Protocol interconnexion de r seaux routage FTP RCP transferts de fichiers TELNET RLOGIN terminal virtuel SMTP messagerie 2 1 2 Protocoles de transport e Fonctions Assurer la communication entre processus Protocoles de bout en bout pas de vision des sites interm diaires Les applications ne voient pas les protocoles de niveau inf rieur e Probl mes Protocole de transport utilise protoco
64. interconnexion plus rapide et syst mes homog nes en g n ral Il y a convergence entre ces deux classes d architectures et la fronti re est floue clusters et clusters de clusters e des syst mes d exploitation r partis comme MACH et CHORUS savent g rer les deux versions de UNIX multiprocesseur Figure 8 Peer to Peer SETI home souvent m mes environnements de d veloppement 11 12 point d acc s l l interface application _ me sso commanteton 0 Figure 9 Composants d un syst me informatique 1 2 9 Grid Computing motivations e Use 500 000 PCs to help searching for extraterrestrial intelligence e Data and Signal processing analysis e Computers download a MB dataset from Arecibo Radio Telescope when they are idle e Results are sent back to SETI team e In average 55 TFlops e Gives inspiration to a number of compagnies Google from J Dongarra e 2000 queries per second 150 x 106 per day e 100 countries e 3 x 10 documents in the index e 15 000 Linux systems in 6 data centers e Each query eigenvalue problem on a transition probability matrix 1 between page i and j means there is an hyperlink from i to j 1 3 Syst mes informatiques 1 3 1 Notion d interface e Ensemble des fonctions accessibles aux utilisateurs d un service e Chaque fonction est d finie par 13 son format et sa syntaxe mode d emploi sa sp cification son effet e Pri
65. ions e Envoi et r ception de messages e Questions Synchronisation entre envoi et r ception Quand peut on r utiliser la donn e envoy e Bufferisation des communications Mode de communication Synchrones Asynchrones e Envoi r ception synchrones Le premier arriv attend l autre notion de rendez vous 60 e Envoi R ception asynchrones L metteur et le r cepteur ne s attendent pas e Unenvoi asynchrone peut cependant tre bloqu par la non consommation du message par le r cepteur sera d taill par la suite Emetteur et r cepteur n ont pas tre tous les deux synchrones asynchrones Envoi R ception bloquants ou non bloquants e Envoi R ception bloquants La ressource est disponible en retour de la proc dure e R ception non bloquante simple un param tre de retour indique si l information est disponible e Envoi R ception non bloquants g n raux Retour de la proc dure sans garantir que la donn e ait t envoy e re ue L utilisateur ne peut pas r utiliser l espace m moire associ au risque de changer ce qui sera envoy Il faut donc pouvoir tester attendre la lib ration si envoi ou la r ception effective de la donn e Send Recv Dest Source data Ireq ren voie aussi un num ro de requ te Test Ireq et Wait Ireq Envois asynchrone bloquant et non bloquant R ceptions bloquantes asynchrones O va l
66. ire et adpat able qu une architecture centralis e ajout de n ud sans arr t du syst me Mais passage de 10 100 sites pas toujours transparents pour les utilisa teurs 11 4 Repr sentation d un calcul r parti e Application r partie structur e en un ensemble fixe de processus e Processus communicant unit de r partition Encapsule un ensemble de variables locales dont les valeurs d finissent l tat courant du processus Comportement ex cute s quentiellement une suite d instructions atomiques Ex cution du processus suite d v nements dont des envois et r ception de messages Identification identification par processus nom symbolique e g URL ou num ro IP Connaissane locale un processus n a qu une coannaissance tr s par tielle du calcul global on admet qu il conna t son identification ses voisins via les canaux de communication et son tat interne e Communication par messages Echanges de messages via canaux logiques point point asynchrones uni bidirectionels FIFO i e respectant la chronologie d envoi en r ception Peut tre repr sent sous forme de graphe sommets processus ar tes canaux el rl message point point diffusion avec mission e2 perte de message e3 Calcul r parti repr sent sous forme d un ensemble d v nements produits par chaque processus v nements internes ou envois ou r ceptions de
67. la fois les mod les m moire partag e et transfert de message communications entre processus disponible et optimis sur une large gamme de calculateurs et r seaux de calculateurs PICL de l Oak Ridge National Laboratory portable sur une large gamme de multiprocesseurs m moire distribu e e PVM Univ Tennessee Univ Emory Oak Ridge Nat Lab pour r seaux h t rog nes de calculateurs aussi disponible sur multiprocesseurs e MPI le standard pour le transfert de message 59 8 3 Envoi et r ception de messages Environnement d ex cution des communications e Chaque processus est identifi par un num ro d instance rang dans un groupe ou communicateur e L enveloppe d un message doit permettre la caract risation et le traite ment du message Elle contient le num ro de l metteur le num ro du r cepteur le label du message la taille du message Types de communication classiques e communications point point one to one change d information entre 2 processus e communications collectives dans groupe communicateur one to many broadcast fan out d un processus vers un ensem ble de processus many to one collect fan in un processus collecte des informations issues d un ensemble de processus many to many change global d informations entre plusieurs pro cessus Communications point point quelques quest
68. le de r seau IP qui perd des messages ou les d livre 2 fois ne respecte pas Vordre d mission limite la taille des messages e Protocole de transport doit garantir aux applications D livrance des messages Respect de l ordre d mission Pas de limitation de taille Synchronisation et contr le de flux e Exemples UDP minimal TCP avec garanties RPC int gr un lan gage 20 2 1 3 Identification des processus 2 1 5 Protocole TCP e Protocole de transport fait communiquer des processus sur des h tes e Permet de transmettre un flot d octets bidirectionnel entre un processus diff rents les identifier metteur et un processus r cepteur e Identification par num ro interne pid UNIX inad quate e Propri t s Li e un OS particulier Fiabilit garantie de livraison d s qu une liaison physique existe Identifie un processus individuel alors que l on a besoin d identifier Pr serve l ordre d mission une classe de processus quivalents rendant un service processus peut dispara tre et tre remplac par un autre e Contr le de flux r cepteur peut demander l metteur de r duire son d bit Solution ei Sere sits Z e Contr le de gestion limitation du d bit de l metteur pour viter de sa e Identification indirecte au moyen de portes turer le r seau e Porte point d entr e pr d fini sur une machine identifi par un num ro e NB contr
69. lusters et r seaux de calculateurs Accessible sur les sites netlib http www enseeiht fr ou sur le Web voir par exemple http www mcs anl gov mpi index html Versions publiques disponibles CHIMP EPCC DISI Univ Genova LAM Univ Notre Dame MPICH Argonne Nat Lab Pr sentation largement inspir e de 12 Caract ristiques de MPI e D finition d un processus MPI groupe et num ro dans le groupe e Message contexte et un num ro de message relatif au contexte e Contexte entier utilis pour d finir des flots de messages ind pendants e exemple appel par une application parall le d une librairie effectuant des changes de messages e Buffers avec d finition de structures h t rog n it des messages e Echange de messages bloquants non bloquants synchrones bufferis s Utilisable pour le calcul h t rog ne e Communication collectives et d finition de sous groupes Mod le de programmation SPMD 125 fonctions dont 6 de base MPI Init MPI Finalize MPI Comm size MPI Comm rank MPI Send MPI Recv Environnement 77 enregistrement call MPI Init info e terminaison call MPI Finalize contexte par d faut MPI COMM WORLD t ches num rot es 0 N 1 cr ation de nouveaux contextes d finir des nouveaux groupes de proces sus et un nouveau contexte Example Hello world include mpi h include lt stdio h gt int main argc argv int argc char
70. lysis of the efficiency of the parallel execution of a program complex problem by itself e Time measures and speed up estimations often not sufficient to under stand the behaviour of a parallel application e Automatic tracing of parallel execution indispensable tool both to vi sualize the parallel behaviour and to debug e PVM allows to control which events are generated and where messages will be sent quite complex to use e XPVM tracing tool exploiting automatically features of PVM e PVM s tracing facilities generate extra traffic in the network will per turb program execution e We show traces obtained during parallel execution of matrix vector prod uct Target vitual machine heterogeneous set of 4 RISC workstations Master process located on computer node rosanna julia slave michele slave rosanna sharon slave Ts Ti He al View Info Computing fe Overhead Waiting Message Figure 18 XPVM trace of the static parallelisation of the matrix vector product 76 No exploitation of potential of fastest computer sharon idle most of the time 9 2 MPI standard pour le transfert de message 1 Effort de d finition d un standard de transfert de message pour les util isateurs de d veloppeurs 2 Objectifs e portabilit simplicit e utilisation plus large du calcul distribu e implantation par les constructeurs e Fig en 1994 3 Pour multiprocesseurs c
71. m3 h integer from_tid p_id bufid type recvlen my_id info lda parameter 1da 1000 double precision a lda lda x 1da y 1da one zero integer incx n m i data zero 0 0 one 1 0 Enroll this program in PVM_3 call pvmfmytid my_id Get the tid of the master s task id call pvmfparent p_id receive broadcasted data number of columns and vector x type 0 call pvmfrecv p_id type bufid call pvmfunpack INTEGER4 n 1 1 info call pvmfunpack REAL8 x n 1 info receive my block of rows 10 type 1 call pvmfrecv p_id type bufid call pvmfunpack INTEGER4 m 1 1 info do 10 i 1 n call pvmfrecv p_id type bufidR call pvmfunpack REAL8 a 1 i m 1 info continue perform matrix vector on my block of rows incx 1 call dgemv N m n one a lda x incx zero y incx send back results to master process type 2 call pvmfinitsend PVMRAW bufid call pvmfpack REAL8 y m 1 info call pvmfsend from_tid type info leave PVM environment call pvmfexit info stop end Makefile for Compilation Link PumArch and PumDir correspond respectively to target computer and to location of the PVM library F77 usr lang f77 FOPTS 0 u Specification of the target computer 74 PvmArch SUN4 Location of PVM libraries PvmDir usr local pvm3 1ib PVM libraries C FORTRAN Group PVMLIB_C PvmDir PvmArch libpvm3 a PVMLIB_F
72. mmation par transfert de messages e Permet d exprimer la communication et la synchronisation e C est le mod le le plus r pandu en calcul r parti mais ce n est pas le seul voir par ex LINDA e Il n apporte pas de solution tous les probl mes pos s e Caract ristiques expression du parall lisme la charge du programmeur distribution des donn es la charge du programmeur change de donn es explicite prise en compte possible d un r seau h t rog nes de calculateurs avec gestion des pannes Mod le pelure d oignon pour l change de message Chaque niveau peut tre construit au dessus du pr c dent 58 e Niveau le plus bas adressage au niveau canal proc dures pour transf rer des paquets sur des liens e Adressage au niveau processus ventuellement plus d un processus par processeur change de message en donnant l adresse d un processus Exemples Nx sur iPSC Vertex sur nCUBE Express PARMACS PVM MPI e Niveau plus lev d abstraction m moire partag e virtuelle LINDA espace de tuples partag ou r parti Hypoth se d ex cution e Machine compl tement connect e e Routeur automatique de messages les deux hypoth ses ci dessus ne sont pas toujours vraies Transputers Librairies portables pour la programmation d applications parall les distribu es P4 de Argonne National Laboratory offre
73. ncipe de base s paration r alisation et interface Description de l interface ind pendante de r alisation Facilite la portabilit passage une autre implantation du service 1 3 2 Exemples de services e Informations bulletin m t o infos e Moteur de recherche sur le Web e Courrier lectronique e Forums de discussion news e Utilisation d un calculateur distant telnet e Commerce lectronique 1 3 3 R le d un syst me d exploitation Fournit une interface avec le mat riel e Dissimule d tails de mise en uvre e Dissimule limitations physiques taille m moire processeurs partage les ressources machine virtuelle e Gestion des processus et de la m moire e Gestion des communications et des acc s protection droits d acc s 1 3 4 Interfaces d un syst me d exploitation En g n ral deux interfaces e API Application Programming Interface utilisable partir des programmes s ex cutant sous le syst me ensemble d appels syst mes en C pour UNIX e Interface utilisateur ou commande utilisable par individu connect textuelle ou graphique ensemble de commandes x textuelle e g rm graphique e g d placer un fichier avec la souris vers la corbeille 14 1 4 Applications r parties e Donn es ou traitements r partis ou distribu s la mise en uvre d une op ration n cessite d utiliser plusieurs machines e Traitement coop ra
74. ns IBM AT 9 ans 170 000 ans APPLE MAC 23 ans 450 000 ans Table 1 Vitesse de certains calculateurs sur un probl me Grand Challenge d apr s J J Dongarra 9 1 2 2 Parall lisme e Ex cution simultan e de d instructions l int rieur d un programme e A l int rieur d un processeur micro instructions traitement pipelin recouvrement d instructions ex cut es par des unit s distinctes transparent pour l utilisateur g r par le compilateur ou durant l ex cution Entre des processeurs distincts e suites d instructions diff rentes ex cut es synchronisations implicites compilateur ou explicites utilisateur 1 2 3 Comment obtenir de hauts d bits m moire e L acc s aux donn es est un probl me crucial dans les calculateurs actuels e Accroissement de la vitesse de calcul sans accro tre le d bit m moire goulot d tranglement MFlops plus faciles que MOctets pour d bit m moire Temps de cyle processeurs 1 GHz 1 ns e Temps de cycle m moire lt 20 ns SRAM lt 60 ns SRAM e Solutions Plusieurs chemins d acc s entre m moire et processeurs Plusieurs modules m moire acc d s simultan ment entrela age par exemple Acc s m moire pipelin s M moire organis hi rarchiquement e La fa on d acc der aux donn es peut affecter la performance Minimiser les d fauts de cache Minimiser la pagination
75. oins une interface de communication et quelques services r partis gestion de fichiers par exemple UNIX avec introduction sockets RPC puis NFS Avantages continuit et r utilisation mais moins modulaire 88 Environnements d ex cution r partie e Probl me de base des syst mes r partis prise en compte de l h t rog n it mat rielle et logicielle e Objectif faire communiquer et coop rer des composants h t rog nes e Mod le adopt sch ma de communication client serveur et notion de bus logiciel Bus logiciel permet d acc der des services sp cifi s par leur interface enregistr es dans des annuaires permettant de trouver le ou les n uds serveurs e Norme de fait CORBA Common Object Request Broker d fini par VOMG Object Management Group Architecture c est un bus logiciel objet qui se place entre le syst me d exploitation et les applications 11 3 Conception d un syst me r parti e Concepteurs cherchent souvent concevoir un syst me r parti qui a lair centralis e On cherche masquer certaines des difficult s due la r partition mais impossible masquer totalement e Propri t s de transparence permettent de masquer tout ou partie de la r partition des donn es et des traitements 1 Transparence d acc s acc s identique que la ressource soit locale ou distance 2 Transparence de localisation d signation de la ressource ind pendante de sa
76. ol and Activation of processes Remark To use the predefined options and the error message coding the file fpvm3 h must be included in the FORTRAN code include usr local pvm3 include fpvm3 h e Procedure for enrolling a process into PVM call pymfmytid tid At its first call the pumfmytid procedure creates a PVM process pumfmytid returns the process identifier tid and may be called several times If the host node does not belong to the parallel virtual machine then an error message is returned e Leave PVM call pvmfexit info pumfexit indicates to the local daemon pumd3 that the process leaves the PVM environment The process is not killed but it cannot anymore communicate via PVM communication procedures with the other PVM processes e Kill another PVM process call pvmfkill tid info pumfkill kills the PVM process identified by tid e Starting other processes on the virtual machine call pymfspawn task flag where ntask tids numt Starts ntask copies of executable file task flag allows to control the type of computer on which will be activated the processes Predefined values of flag PvmDefault PVM chooses the computers PvmArch where defines a target architecture PvmHost where specifies a target computer PvmDebug processes are activated in debugging mode 67 numt processes actually activated Task identifiers first numt positions of tids ntask Error codes neg values last nt
77. pteur socket char buf buffer unsigned int n Nombre d octets a ecrire int necr necr write sock buf n nbcarecrit necr Positionnement erreur sir si pas car ecrit if necr 0 necr 1 return necr 41 6 Appels de proc dure distance RPC 6 1 Introduction e Introduit par SUN pour implanter NFS e Outil de haut niveau pour la r alisation du sch ma client serveur e Principe Effet vu du processus doit tre identique pb erreurs pannes pertes de messages e Avantages Forme et effet identique un appel local x Pas de modif des applications en passant l appel distant x Mise au point en local x Simplicit d utilisation Niveau d abstraction Ind pendance par rapport aux protocles de communication pas besoin d apprendre un protocole de bas niveau x R utilisation possible du code y compris dans un environnement h t rog ne e Difficult s Situations complexes en cas de panne x Processus client et serveur peuvent tomber en panne ind pendamment x Incertitude introduite par le r seau pertes retard Restrictions sur les param tres pb de passage de structures com plexes e Sous UNIX protocole sous jacent UDP pour la grande majorit des cas rarement TCP Partage du serveur entre plusieurs clients e Un serveur peut servir plusieurs clients 42 e Pour le serveur Gestion des requ tes
78. quel il appartient Avantage moins de probl mes suite aux d faillances d un client ou d un serveur e Inconv nients comportement diff rent entre acc s un fichier local et un fichier distant droits d acc s un fichier ne sont test es qu louverture d un fichier local par un processus et plus ensuite Toutes les op rations compatibles avec ces droits sont ensuite autoris es Avec un fichier distant on peut avoir une criture qui choue alors que lopen a r ussi droits d acc s modifi s par le prori taire du fichier qui n est pas le propri taire du processus acc dant le fichier M me type de probl me avec suppression de fichiers suppression d un fichier r f renc par plusieurs processus 4 Probl me des droits d acc s e NFS utilise le protocole RPC et authentification du type UNIX AUTH UNIX e A chaque appel nsfd re oit identit de l utilisateur et du groupe propri taires du processus client pour tester les droits e Probl me lorsque les syst mes ne sont pas administr s par les m mes personnes et lorsque l utilsateur n a pas le m me num ro d identification sur les machines e Probl me avec le root de num ro 0 Via NFS il perd ses droits identification transmise 2 nobody 5 Les pages jaunes yellow pages NIS Network Information Service Base de donn es distribu es pour l administration du r seau Solution pour la mise
79. r ses voisins Topologies disponibles e Grille Cartesian mesh MPI Cart create MPI_ Cart _coords coordonn es d un processus dans la grille e Autres topologies disponibles tores Types de donn es e El mentaires existant en C ou Fortran MPI INT e Vecteurs donn es s par es par un stride constant e Acc s indirect par un tableau d indices gather scatter e Structures d finies par l utilisateur en sp cifiant le nombre d l ments la distance entre ces l ments et leur type MPI Type structure nb array_of len array_of displs array _of types amp new type Objectifs de MPI 2 gestion dynamique de processus e extensions temps r el client serveur e put get e C et Fortran 90 79 9 3 PVM versus MPI e PVM tr s r pandu mais MPI r sultat d un effort de standardisation e Constructeurs supportent ala fois PVM et MPI mais PVM est plus ancien e Pas de gestion de t che en MPI cr ation destruction allocation mais SPMD largement utilis e Pour HPF MPI est int ressant par sa richesse e MPI tr s riche 126 fonctions 24 fa ons d envoyer un message quelques fonctions suffisent la plupart du temps e MPI plus adapt aux MPP mais PVM plus adapt aux r seaux h t rog nes mais diff rences de performance disparaissent e Conclusion MPI richesse des communications point point communications globales non bloquantes topologie virtuelle de processeur
80. re et de r seaux d interconnexion temps P Org physique eee d acc s non uniforme Org logique Partag e Distribu e Partag e multiprocesseurs espace d adressage global e M moire commune partag e par un faible nombre de processeurs SMP a m moire partag e au dessus de messages m moire partag e virtuelle e Eventuellement des outils de programmation distincts transferts de mes Distribu e mulationde messages change de messages sage entre les clusters buffers e Exemples HP CONVEX SGI SUN Clusters de PC CONVEX Exemplar Memory Network Shared Memory ae En Cluster Memory a Memory 4 Network Network Interconnection Network LM LM LM ED we 1 Py fat nn G ros gt COTH e Figure 5 Exemple d architecture clusteris e Figure 3 Exemple d architecture m moire partag e 1 2 7 R seaux de Calculateurs e Evolution du calcul centralis vers un calcul distribu sur des r seaux de calculateurs Interconnection Network Puissance croissante des stations de travail Int ressant du point de vue co t Processeurs identiques sur stations de travail et MPP LM LM LM LM e Calcul parall le et calcul distribu convergent mod l
81. ri et outils d aide la validation Quelques standards existent appels de proc dure distante mais protocoles souvent adapt s une classe d applications e Probl mes g n raux exclusion mutuelle interblocage atomicit r plication ou issus de la r partition des traitements et des donn es terminaison d une application r alisation d un consensus Langages de programmation e A priori une interface de programmation API permettant change de message devrait suffire e g sockets e Introduction de structures de contr le pour faciliter la programmation non d terminisme en r ception avec possibilit s d associer chaque type de message attendu une action sp cifique Appel de proc dure distance mod le client serveur probl me il faut introduire un langage de d finition de l interface IDL pour appeler les proc dures distantes g n ration automatique du traite ment des appels c t client et serveur Syst mes d exploitation e Ils assurent entre autre l interface avec le r seau de communication e Deux approches possibles Conception de nouveaux noyaux d ex cution r partie en utilisant des micros noyaux gestion m moire p riph riques parall lisem et communication Les autres services gestion de fichiers par exemple services hors du noyau e g Chorus et Mach Extension des syst mes d exploitation centralis s en ajoutant au m
82. s Absence dans MPI de gestion de processus d acc s des m moires distantes de gestion de threads PVM tol rance aux fautes gestion des taches et mod le MPMD MPI 2 devrait mettre tout le monde d accord 10 Concepts avanc s 10 1 Introduction e R partition Peut tre construite par ajout d outils et de services permettant Vinterop rabilit entre machines et syst mes h t rog ne Utilisation de syst mes d exploitation con us pour la r partition comme Mach et Chorus environnement homog ne m me syst me d exploitation e Convergences Threads pour la gestion du parall lisme Int gration des services dans des architectures coh rentes Approche objet pour le gestion des ressources e Internet computing servlets applets e Objets r partis 80 10 2 Syst mes d exploitation r partis 14 On se limite voquer Mach et Chorus e Organis s autour d un micro noyau fournissant des services de base Ordonnancement des t ches threads ou activit Gestion de la m moire virtuelle Communication entre activit s quelle que soit leur localisation IPC e Autour du noyau on trouve des serveurs fournissant un ensemble de services modulaires Ces serveurs permettent de construire un syst me d exploitation complet e IPC r alisent la communication entre noyau et serveurs Quelques d finitions e Thread entit minimale active
83. s Performance sur des matrices 512 par 512 1 2 4 8 16 24 KSR1 64 bits 27 5 25 4 42 9 81 9 165 4 305 4 418 3 iz J Table 3 Performance in Mflops of GEMM with matrices of order 512 on a KSR1 Milops 4 5 Number of processors Multiplication matricielle optimis e e Parall lisation sur des sous matrices e Code s quentiel optimis proche de 30 MFlops e Pas de tableaux de travail priv s Version parall le nblig int m nb nbcol int n nb c ksr tile i1 j1 tilesize i1 1 j1 1 strategy mod cxksr x amp private i j l ib kb jb do 60 ji 1 nbcol do 70 ii 1 nblig i i1 1 nb 1 j j1 1 nb 1 ib min m i 1 nb 99 100 References 1 oOo 10 11 12 13 14 P Amestoy M Dayd 2001 Calcul R parti Cours 3 me Ann e Informa tique INPT ENSEEIHT F Andr M T Segarra 2000 Mol NE un syst me g n rique pour la construction d applications mobiles Calculateurs Parall les R seaux et Syst mes R partis 12 1 2000 9 29 Ph D Anfray 1996 Une Pr sentationde MPI PARANOTES Avril 96 R Balter Modes de structuration d applications r parties Universit J Fourier Grenoble http sirac imag fr Beguelin A Dongarra J Geist A Manchek R a d Sunderam V 1991 A User s Guide to PVM Parallel Virtual Machine Tech Rep ORNL TM 11826 Oak Ridge National Laboratory Oak Ridge Tennessee Beguelin A
84. s pumfbufinfo is particularly useful in conjunction with pumfprobe or when the label or the source of the message to be received have not been specified Management of process group The procedures for managing process groups form a layer on top of the PVM layer They are provided into a separated library libgpvm3 a A group server pvmgs is automatically activated at the first called to a procedure of the libgpvm3 a library Main characteristics of PVM groups e Any PVM process can join a group pymfjoingroup and pvmfleave e A process can belong to several groups e A message can be broadcasted to a PVM group from any PVM process pvmfbcast e Synchronization within a group can be performed using barriers pymfbar rier e Useful procedures pymfgettid pymfgetinst pvmfgsize PVM 3 3 has several collective communication routines such as pvmfre duce that performs a global arithmetic operation e g global maximum or global sum across a group Must be called by all processes in the group final result is sent to a member specified as root Gather scatter routines are also available There is also a way of managing with system signals Manufacturer implementations of PVM 70 e Manufacturers IBM CRAY often provide a tuned implementation of the PVM communication library on top of native communication calls shared memory or virtual shared memory Portability and efficiency of parallel code e Performanc
85. s des appels de proc dures distantes in cluent cette identification e Protocole id pendant du syst me sous jacent plusieurs styles d au thentification possibles abscence authentification UNIX d finition nouveaux styles 44 6 3 Implantation sous UNIX e Met en jeu un certain nombre de fichier et de processus particuliers e D veloppement de service possible plusieurs niveaux 1 Services ports Internet et processus e Service num ro de programme e Appel proc dure d un service r alisation de l appel par un pro cessus charg de l ex cution du service e Communication entre processus de service avec module appelant via socket Internet sur UDP ou TCP pluis rarement e Socket associ e au num ro de port du protocole correspondant e Deux possibilit s pour le processus de service Processus cr une fois pour toutes et en coute sur le port as soci Port associ fait partie d un ensemble de ports sur lequel un processus particulier est en coute e g inetd Ce processus cr e le processus de service si n cessaire 2 Processus portmap e Processus correspondant un service RPC particulier associer un num ro de port un num ro de service PRC donn e Doit tre actif pour acc der au m canisme RPC sur une machine donn e e Tout nouveau service doit tre signal portmap avec des fonctions de la bilbioth que standard m canisme d enregistrement de
86. s et notes de cours 2 me ann e Informatique et Math matiques Apppliqu es ENSEEIHT Toulouse 17 G rard Padiou Pr cis de r partition d finition et probl matique Cours et notes de cours 3 me ann e Informatique et Math matiques Apppliqu es ENSEEIHT Toulouse 18 Equipe Syst mes Op ratoires Sys mes Op ratoires Syst me UNIX Travaux Dirig s et Travaux Pratiques ENSEEIHT Toulouse 19 Jean Marie Rifflet La communication sous UNIX Collection Informatique Ediscience International 1992 20 Michel Riveill Construction d applications r parties Introduction Notes de Cours INPG ENSIMAG 1999 102
87. sockets UDP Flot d enregistrement avec les sockets TCP e Exemple Echo d une cha ne de caract res Client envoie au serveur un certain nombre de buffers de caract res et le serveur renvoie chacun des buffers en cho La taille des buffers est envoy e au serveur avant la premi re mission Echo avec flot m moire et sockets UDP 14 Fichier gen x Description RPCGEN des donnees echangees typedef string st lt 16384 gt Longueur de chaine maxi Fichier commun h include lt stdio h gt include lt fcntl h gt include lt sys types h gt include lt errno h gt include lt netdb h gt Taille maxi d echange entre client et serveur define TAILLEMAXI 16384 Fichier soct h include lt commun h gt include lt sys socket h gt include lt netinet in h gt Numero de port utilise par les sockets define PORTS 6258 Fichier client c include soct h clientipc int sock Descripteur socket struct sockaddr_in server Adresse serveur struct sockaddr_in sclient Adresse client Creation socket sock socket AF_INET SOCK_DGRAM O Binding obligatoire en mode datagramme bzero amp client sizeof sclient sclient sin_familly AF_INET sclient sin_addrs s_addr INADDR_ANY sclient sin_port htons 0 bind sock struc sockaddr amp sclient sizeof sclient Affectation de la structure
88. t du serveur 1 Ecriture des fonctions e Toute fonction existante peut tre int gr e avec quelques modifica tions param tres et r sultats un service RPC e Un seul param tre pointant sur une zone m moire contenant les divers param tres structure li la n cessit d utiliser XDR pour coder ces param tres 47 e Idem pour les r sultats pointeur de type char sur une zone con tenant le r sultat de la fonction adresse en zone statique exemple h include lt rpc types h gt include lt rpc xdr h gt define ARITH_PROG 0X33333333 Numero de programme define ARITH_VERS1 1 Numero de la version 1 define ADD_PROC 1 Numero de la procedure add define MULT_PROC 2 Numero de la procedure mult define SQRT_PROC 3 Numero de la procedure rac struct couple float ei e2 33 int xdr_couple xdr_couple c include exemple h xdr_couple xdrp p XDR xdrp struct couple p return xdr_float xdrp amp p gt e1 amp amp xdr_float xdrp amp p gt e2 Fonction 1 add c include exemple h char add p struct couple p static float couple res res el p gt el p gt e2 return char amp res Fonction 2 mult c include exemple h char mult p struct couple p static struct couple res res el p gt el p gt e2 res e2 p gt el p gt e2 return char amp res
89. tations XDR des valeurs e R cepteur d code les donn es e XDR utilisable en m moire sur des fichiers ou travers le r seau Biblioth que XDR ensemble de fonctions C Figure 14 Utilisation de XDR 5 3 Flot et filtre XDR e Flot XDR suite de donn es au format XDR e Filtre XDR proc dure encodant ou d codant un certain type de donn es entier r els e Les filtres XDR lisent ou crivent des donn es dans les flots acc d s par l metteur et le r cepteur e Deux groupes de primitives XDR Cr ation et manipulation de flots XDR Conversion de donn es et transfert dans ces flots Flots XDR e Trois types de flots XDR Flots standard d entr e sortie criture lecture de donn es sur un fichier 29 Flots en m moire codage de donn es en m moire Flots d enregistrement permet de d limiter les donn es en enreg istrements Pointeur sur une structure XDR handle D fini dans lt rpc xdr h gt donne des informations sur les op rations effectu es sur le flot XDR XDR_ENCODE encodage XDR DECODE d codage XDR FREE lib ration de l espace m moire allou par une op ration de d codage il y a plus simple Avec XDR_ENCODE les donn es cod es en XDR par le filtre sont crites dans le flot associ Avec XDR_DECODE les donn es d cod es au format machine sont lues dans le flot associ 5 3 1 Flot standard d entr e sortie
90. tif dialogue entre deux applications pour r aliser une t che e Interop rabilit capacit des syst mes partager des donn es ou des traitements via des interfaces standards syst mes ouverts aptes com muniquer dans un environnement h t rog ne e Evolution au cours du temps change des applications sur des syst mes diff rents s envoient des informations e g fichiers l partage les ressources sont accessibles directement par plusieurs machines e g partage de fichiers l coop ration les machines coop rent en vue de r aliser un traitement 1 4 1 Classes d applications r parties e Coordination d activit s e Communication et partage d information biblioth ques virtuelles Travail coop ratif Edition coop rative T l conf rence Ing nierie coop rative Applications Temps R el Contr le de proc d s Syst mes embarqu s avionique Localisation de mobiles Services grand publics Presse lectronique T l vision interactive Commerce lectronique 1 4 2 Objectifs des syst mes r partis e Optimiser l utilisation des ressources puissance de calcul capacit s de stockage m moire disque capacit s graphiques p riph riques imprimantes e Simplifier le travail de l utilisateur am lioration des performances par r partition des donn es et des raitements o
91. tion of message into the active buffer data are unpacked into the destination arrays 68 Various options to receive data are provided pvmfrecv blocking receive pvmftrecv timeout receive pvmfnrecv nonblocking receive pvmprecv combines blocking receive and unpacking e Management of buffers Clear initialize send buffer call pymfinitsend encoding bufid clears the send buffer and prepare it for packing a new message Encoding scheme used during data packing defined by encoding Predefined values of encoding in FORTRAN PvmDefault The XDR encoding used heterogeneous network of computers PvmRaw No encoding native format of the host node PvmInPlace Data are not copied into the buffer which only contains the size and pointers to the data Several buffers can be used simultaneously but only one is active buffer for send ing receiving data Procedures to create release buffers pumfmkbuf pumffree buf to get set the active send receive buffer pumfgetrbuf pumfgetsbuf pumf setsbuf pumfsetrbuf are designed for this purpose ePacking unpacking data call pymfpack what xp nitem stride info pumfpack packs an array of data of a given type into the active send buffer A message containing data of different types may be built using successive calls to pumfpack nitem elements chosen each stride elements of the linear array xp of type what are packed into the buffer Predefined values of what STRING
92. troduit la notion d acteur superviseur qui s ex cute dans un espace d adressage propre avec des instructions privil gi es e Chorus fournit un m canisme plus simple que Mach pour d signer les ports et les objets Espace utilisateur micro noyau Figure 20 Chorus Aspects syst me du Web m canismes de cache e Int r ts d un cache 82 Introduit un niveau interm diaire d acc s rapide car local R duit temps moyen d acc s en conservant informations les plus utilis es R duit le trafic entre les niveaux de stockage de l information e Web bien adapt Informations changent peu souvent dans la plupart des cas On peut regrouper les demandes x Cache individuel sur disque x Cache local pour un d partement Cache r gional e Probl mes Choix des informations conserver Politique de mise jour du cache en particulier quand il est plein Rafra chissemnt des informations Coop ration entre caches Gestion des caches e Politique de remplacement FIFO dans l ordre des arriv es RANDOM choisir un document au hasard SIZE liminer le document le plus gros gestion court terme LRU Least Recently Used hypoth se de localit fr quemment utilis e Coh rence comment garantir que les documents sont jour Invalidation le serveur pr vient le cache quand l original est modifi id al mais co t gestion
93. un service lorsque n cessaire e N cessite d tre root 1 Fichier inetd conf e Contient la liste des services supervis s par inetd These are standard services ftp stream tcp nowait root usr sbin tcpd in ftpd l a telnet stream tcp nowait root usr sbin tcpd in telnetd e Un service doit tre aussi r pertori dans rpc e Pour traiter exemple on doit donc ajouter A etc inetd conf arithd sunrpc_udp wait root usrf etc rpc arithd arithd 858993459 1 A etc rpc arithd 858993459 arithd 2 Modifications sur le serveur RPC e Serveur cr par inetd apr s que celui ci ait accept une connexion sur le port du service select puis accept e inetd lance le processus de service fork puis exec et lui transmet la socket de service via le descripteur 0 e Enregistrement du service r alis une fois pour toutes A son lance ment inetd informe portmap des services qu il prend en compte portmap cr avant inetd e Le code des fonctions de service doit tre modifi pour rendre le contr le au processus inetd au lieu de main appel exit au lieu de return 3 Authentification des requ tes e Importante pour les serveurs dont le propri taire est root e Authentification doit permettre l identification du client dans divers syst mes e Divers types d authentification Style d authenfication Dans le domaine UNIX absence d authentification AUTH_NULL ou authenfi
94. une repr sentation standard des entiers courts ou longs pour dsigner les ports UDP ou TCP ou les adresses IP e Passage d une repr sentation r seau une repr sentation interne avec ntohl ou ntohd ou transformation inverse avec htonl ou htons 5 2 Fonctionnalit s Services offerts e Permet de d crire et de repr senter des donn es ind pendamment de la machine e Alternatives un format commun tel XDR Transmettre des donn es en ASCII lourd accroissement taille des donn es perte de pr cision ventuelles due aux conversions Convertir au cas par cas autant de programmes de conversion que de formats IEEE universel sur les stations de travail Conventions e 1 format pour la repr sentation des entiers 32 bits big endian octet de poids fort dans petite adresse codage IEEE pour les r els e Longueur des donn es toujours multiple de 4 octets ajo t ventuek de 0 e Donn es non typ es metteur et r cepteur doivent conna tre le type des donn es changer vite un codage du type e Inconv nient transcodages qui ne sont pas toujours n cessaires 28 e Mais co t n gligeable par rapport au temps de transmission et traitement syst matique Encodage et d codage e Emetteur encode les donn es s rialisation gr ce aux primitives de la biblioth que XDR e Cette op ration cr e un flot d informations flot XDR constitu des repr sen
95. uoi des traitements parall les exemples dans le domaine 1 2 du calcul scientifique Besoins de calcul non satisfaits dans beaucoup de disciplines Objectif actuel supercalculateur 1 Terabytes 1 Teraflops Performance uniprocesseur proche des limites physiques Cycle 1 ns 2 GFlops avec 2 flop s Calculateur 1 TFlops 50 processeurs calculateurs massivement parall les Architectures parall les Multiprocesseurs clusters r seaux de machines 1 2 1 Comment accro tre la vitesse de calcul Technologies plus rapides TTL Schottky ECL AsGa Probl mes Conception des puces Refroidissement Reste insuffisant 1 ns temps pour qu un signal parcoure 30 cm de cable Temps de cycle 1 ns 2 Gigaflops avec 2 flops SA 100 GB 10GB 100MB 3D P 48 Hour Weather Mod 2D airfoil Oil Reservoir Structural Signature Biology 72 Hour Pharmaceutical Design Weather ing chemical Dynamics Global Change Human Fkuid T Vehical Dynamics fe Circulation Fluid Dynamics Superconductor Modelling Structutal Biology Quantuin Chromodynamics Vision Figure 1 Grand challenge problems Machine Probl me de Probl me petite taille Grand Challenge TFlops computer 2 secondes 10 heures CM2 64K 30 minutes l an CRAY YMP 8 4 heures 10 ans ALLIANT FX 80 5 jours 250 ans SUN 4 60 1 mois 1500 ans VAX 11 780 9 mois 14 000 a
96. ure distance pour les traitements Pour les donn s communication par m moire partag e ou par fichiers partag s Notion de m moire partag e r partie ou m moire partag e virtuelle ou m moire partag e distribu e Objectif fournir un espace d adressage global mod le de pro grammation centralis LINDA BBN KSR x Difficult de r alisation sur une architecture distribu e viter une trop forte synchronisation des acc s cette m moire partag e r partie x Utilisation de la r plication augmentation du parall lisme d acc s la m moire coh rence des copies Souvent implantation au dessus de transferts de messages hard soft M moire partag e virtuelle Approches e Mod les coh rence faible BBN e Mod les bas s sur un m canisme de cache ou de pagination m moire avec r pertoires distribu s KSR Convex SPP e Mod les espace de tuples Base de donn es tuples partag e 93 Figure 26 M moire partag e virtuelle Mod le de programamtion la Linda d p t retrait et consultation d objets Exemple JavaSpaces e Mod les objets r partis partag s Espace d objets r partis partag s Langage objets extension d un lange existant expression de la distribution parall lisme synchronisation D signation universelle d objets Gestion du partage des objets synchronisation coh rence image unique d
97. ure 13 Client Serveur avec communications inter UNIX e M canismes d adressage e Client processus demande l ex cution d un service sp cifi par interface D mon sendmail Adresses uucp e Serveur processus r alise le service Domaine de noms Internet e En g n ral client et serveur sur deux machines distinctes e i La Courrier Int r t du sch ma client serveur Bo tes aux lettres r y e Bien structur Envoi de courrier Lecture du courrier Fonctions bien identifi es Autres commandes S paration entre interface du service et r alisation client ne conna t que l interface 3 Communication entre processus sous UNIX Client et serveur peuvent tre modifi s remplac s ind pendamment 3 1 Introduction e S curit e Communications entre processus sur une m me machine intra UNIX Client et serveur s ex cutent dans des domaines diff rents Tubes pipes nomm s e Gestion des ressources Files de messages Serveur peut tre partag entre plusieurs clients M moire partag e et s maphores Sockets ot interface TLI Implantation du mod le client serveur 1 e Client et serveur processus e Entre processus sur des syst mes distants inter UNIX e Communiquant par messages Sockets Requ te param tres d appel sp cification du service requis TLI et streams R ponse r sultats flags d ex cution ou d

Download Pdf Manuals

image

Related Search

Related Contents

MANUAL DO UTILIZADOR  Patriot Memory DDR2 2GB (2 x 1GB) PC2-8500  multiwave active  FRI-0110 取扱説明書  FA-5587-3 FA-5588-3 - BM  Marley Cooling Tower Geareducer Model 34.4 and 3400 User Manual  User Manual - Xpress Platforms    Manuel d`utilisation ARM-S - GMI  Manual del Producto - SQLGate for SQL Server  

Copyright © All rights reserved.
Failed to retrieve file