Programmation des systèmes réparties

Embed Size (px)

DESCRIPTION

Programmation des systèmes réparties. Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 221 Université de Paris XII Val-de-Marne 61 avenue du Général de Gaulle 94010 Créteil cedex. Architectures parallèles. Premières machines. - PowerPoint PPT Presentation

Text of Programmation des systèmes réparties

  • Programmation des systmes rpartiesFrdric Gava (MCF)gava@univ-paris12.frLACL, btiment P2 du CMC, bureau 221Universit de Paris XII Val-de-Marne61 avenue du Gnral de Gaulle94010 Crteil cedex

  • Architectures parallles

  • Premires machines 1976 : Cray I: refroidi au gaz liquide 1981 : Cyber 205, 50 Mflops 1986 : Cray X-MP (713 MFlops) 1991 : Cray Y-MP (16 GFlops) 1995-2006 : Grappes de PC Super-ordinateurs parallles et vectoriels Calcul globalis ou grilles de calcul gographiquement distribues

  • Exemple grappe de PCs

  • Une grappe de lINRIA

  • Super-ordinateursLe earth-simulator au Japon, environ 5000 processeursLe Tera-10 du CEA (France) est class par mis les 5 plus puissantes machines

  • Le paralllisme ? On distribue les donnes sur p=4, 32, 5000 ordinateurs : Chacun calcule sur sa part des donnes On schange les rsultats On recommence si ncessaire On espre que le calcul soit complt p fois plus vite : Mais: lchange des donnes prend du temps temps relatif inchang depuis plus de 20 ans change 20, 100, 1000 x plus lent quun calcul sil ny a pas de bouchon !

  • Parallliser cest distribuerDonnes

  • Parallliser cest acclrerCALCUL

  • Mais aussi communiquer et synchroniser

  • Comment mesurer ?LCela limite les performances G

  • Vitesse de calculKilo Mega Giga TeraLoi de Moore : lefficacit des processeurs double tout les 18 mois (normalement vrai jusquen 2017 mais aprs ?)

    Graph1

    -0.6020599913

    -0.1804560645

    2.5185139399

    2.7442929831

    3.3424226808

    4.7781512504

    6

    7.6989700043

    8.8530895299

    10.2041199827

    10.2041199827

    11.0921870961

    12.6989700043

    log Flops/s

    s

    Flops: multiplications en virgule flottante

    Flops/sAnneQuoilog Flops/s

    0.251/1/41Z3 de Konrad Zuse-0.6

    0.661/1/44Mark I-0.2

    3301/1/46ENIAC2.5

    5551/1/51UNIVAC-I2.7

    22001/1/52IBM 7013.3

    600001/1/71Intel 40044.8

    10000001/1/76Cray-I6.0

    500000001/1/81Cyber 2057.7

    7130000001/1/86Cray XMP8.9

    160000000001/1/91Cray YMP10.2

    160000000001/1/02Grappe LIFO10.2

    1236480000001/1/03T3E 128 processeurs11.1

    50000000000001/1/05NEC Earth simulator12.7

    s

    &A

    Page &P

    log Flops/s

    (g,p,L,s)

    Paramtres BSP observs en 2002

    ps1/L M/s1/g Mmots/s

    t3e-25629661.1260

    t3e-25649660.9382

    t3e-25689650.6327

    t3e-256169610.4253

    t3e-256249640.47222

    t3e-256329660.41177

    arile2410.0418

    illiac84990.038

    illiac88880.027

    illiac816950.013.7

    illiac8248802.3

    illiac8329001.7

  • Vitesse des communicationsCRAY T3E, haut de gamme circa 2002Mme la fibre optique ny peut rien car la vitesse de la lumire est finie et donc communiquer cote cher

    Nb Processeurs Mflops/s 1/L M/s 1/g Mmots/st3e-256(2)20001,1260t3e-256(4)40000,9382t3e-256(8)70000,6327t3e-256(16)150000,4253t3e-256(24)22000,47222t3e-256(32)280000,41177

  • Le problme de lefficacit Le but faire le total (addition) dun ensemble de nombre donne ; le nombre dentiers additionner sera toujours le mme On va rpartir ces nombres suivant deux nombres de processeurs (humains), 5 et 10 Pour cette exprience, je vais demander 10 volontaires Chacun des volontaires fait la somme des entiers qui lui sont allous Ds que le volontaire a termin, il se met prs de moi Puis les volontaires se runissent pour faire la somme total On analysera ensuite lefficacit globale des volontaires

  • Exemple4+82+15+9Volontaire :123Total : 12+14+3=29

  • Total avec 5 processeurs4+8+7+32+1+9+85+9+6+16+7+4+13+4+5+1Volontaire :12345

  • Total avec 10 processeursVolontaire :5+624+819+231+743+854+561+673+987+492+310

  • Moralit Les communications cotent cher La synchronisation aussi Ce nest pas parce que lon a plus de processeur que le calcul sera plus rapide : on parle defficacit de lalgorithme parallle En gros : plus on a de processeurs plus il faut de gros problmes sinon on fait perdre du temps au processeurs (par rapport une machine parallle avec moins de processeurs)

  • Diffrentes architectures (1) On peut classer les machines parallles suivant leur efficacit, leur nombre de processeurs, le types des processeurs/rseaux/mmoires etc. On peut nanmoins et grossirement classer les machines parallles suivant 2 catgories : Les machines mmoire partages Les machines mmoire distribues Le modle client/serveur

  • Mmoires partagesLes processeurs multi-core comme les dual-core : les processeurs accde directement la mmoire vive ; trs efficace mais encore coteux et limit en nombre de processeurs (16 maxi dans le commerce)Ici, cest lapanage des grosses, commerciales et coteuse (100k 1M euros) machines massivement parallles comme les Cray T3E, SGI Origin 2000, IBM SP avec 64, 128, 256 processeurs. Mais trs efficaces. Les processeurs accdent tous une mmoire vive via un rseau => communications aussi efficaces que lecture mmoire

  • Mmoires distribusLes processeurs communiquent via le rseaux ; cest le domaine des grappes de machines. Possibilit de machines peu cher avec un TRES grand nombre de processeurs mais nanmoins, encore aujourdhui, des communications plus lentes que prcdemment. Possibilit de construire pour pas cher sa propre machine parallleUne machine matre (serveur) distribue les donnes et les calculs aux esclaves (client) et le matres rcolte les rsultats. Ce modle de machine parallles a t utilis par exemple pour le Gnthon, SETI@HOME etc. en utilisant les temps de calculs non-utilis par les particuliers. On a donc une trs grande capacit de calcul mais avec les problmes suivant : il faut que le problme soit trivialement dcomposable, il faut vrifier les donnes calculs pour viter les pirates (on fait de la redondance de calcul puis on prend le rsultat le plus rendu), communications parfois trs coteuses.

  • Diffrentes architectures (2) On peut aussi classer les machines parallles suivant les programmes parallles qui y sont utiliss Pour cela, on classe suivants les instructions et les donnes

    Single InstructionMultiple InstructionsSingle DataSISDMISDMultiple DataSIMDMIMD

  • SIMD Chaque instruction du processeur manipule paralllement (dans les circuits imprims) plusieurs donnes : on a donc plusieurs calculs la fois pour chaque instruction On trouve ce type dinstructions dans les acclrateurs graphiques (du processeur ou de la carte graphique) : on souhaite manipuler plusieurs pixels/polygones la fois les processeurs avec co-processeurs arithmtiques : on souhaite calculer plusieurs additions la fois pour acclrer les gros calculs numriques etc.

  • MISD Plusieurs instructions manipulent paralllement une seule et unique donne !? En fait possible avec des programmes dis en pipe-line : des donnes circulent sur un circuits de processeurs (ou de processus, cest dire avec plusieurs processus sur un mme processeur) et chaque processus ne fait quune seule et unique opration Exemple :

  • Futurs du paralllisme ?(qui vivra verra)

  • Les grilles de calcul Un graal (super)-ordinateur distribues gographiquement Du calcul la demande, comme de llectricit Nombreux projets et ralisations : GRID5000 Grille du CERN Globus etc.

  • Taxonomie Une machine parallle=plusieurs processeurs Meta-computing = plusieurs machines parallles Calcul pair--pair = chaque machines est reli une ou plusieurs autres machines (changes de fichiers) Modle Clients-Serveurs = des serveurs rpartissent les calculs des clients ; ceux-ci se connectent, calculent, redonnent le rsultats aux serveurs etc. Global-computing = toutes les machines du mondes vue comme une seule ENORME machine (le graal) Mobile-computing = un utilisateur veut lancer une application ; un agent informatique se balade sur le net pour trouver une machine suffisamment puissante pour excuter cette application ; puis revient sur la machine de lutilisateur pour lui fournir le rsultat etc.

  • Les problmes Scurit : applications dtruisant les fichiers etc. autorisation sur quelles machines ? sret dexcution : une application plantant la/les machine(s) pour gner les autres applications etc. Performance : prdiction des communications rpartition des ressources physiques une petite application (calculette) a telle besoin dautant de ressource ? scurit : une application faisant des millions de calculs inutile pour gner les autres etc. Portabilit : grande htrognit des machines Tolrance aux pannes : comment faire quand une machine se dconnecte (panne de courtant etc.) ? La recherche en informatique y travaille (voir site LACL par ex.)

  • Applications Analyse de la structure du web : Qui parle de qui sur les pages perso ? Que peut-on savoir sur mon entreprise via le web et par regroupement dinformation ? Quelles sont les rseaux pirates ? Scurit informatique : ce protocole de commerce est-il vraiment sr ? Quel effet aurait une panne sur des informations critiques ? Le protocole de vote lectronique est-il fiable ? Un pirate peut-il tous casser dans le rseau de mon entreprise ? Et tellement dautres choses Intelligence artificiel (interaction homme-machine comme un e-vendeur ou apprentissage automatique pour la recherche de ptrole daprs des relevs topographiques et gologiques) Calcul formelle, dmonstration automatiques, assistant de preuves (les sujets de Bac S peuvent tre entirement rsolue par des machines) etc.